Forum Delphi.cz

Databáze => MS SQL => Téma založeno: Kraťas 30-06-2013, 01:16:35

Název: ADOQuery s compact SQL parametry při exeqSQL - spadnutí app bez varování
Přispěvatel: Kraťas 30-06-2013, 01:16:35
Aplikace na Delphi XE s MS Compact SQL 4.0 s použitými parametry - bez varování na příkazu ExecSQL spadne:

    with TADOQuery.Create(nil) do
    begin
      Connection := connData; //což je TADOConnection s "Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=D:\Aplikace.sdf;"
      SQL.Text := 'INSERT INTO diagnozy (kod, zna, poh, vod, vdo, naz) VALUES (:kod, :zna, :poh, :vod, :vdo, :naz)';
      Parameters.ParamByName('kod').Value := foNemoc.Edit1.Text;
      Parameters.ParamByName('zna').Value := foNemoc.Edit2.Text;
      Parameters.ParamByName('poh').Value := foNemoc.Edit3.Text;
      Parameters.ParamByName('vod').Value := foNemoc.Edit4.Text;
      Parameters.ParamByName('vdo').Value := foNemoc.Edit5.Text;
      Parameters.ParamByName('naz').Value := foNemoc.Edit6.Text;
      try
        ExecSQL; //tady se aplikace bez jakékoli chybové hlášky odporoučí do kytek
      finally
        Free;
      end;
    end;

Na standardní databázi MSSQL vše proběhne OK. Laborování s parametry TADOQuery k ničemu nevede. Nesetkal se někdo s podobným ? Díky.
Název: Re:ADOQuery s compact SQL parametry při exeqSQL - spadnutí app bez varování
Přispěvatel: Stanislav Hruška 30-06-2013, 09:47:16
Nie som v tom nejako znalý ale TADOQuery je primárne určený na vrátenie nejakého DataSet-u. Na takéto účely sa používa zásadne TADOCommand (ak som si nepomýlil názov). Netuším či to pomôže, ale za pokus to stojí.
Název: Re:ADOQuery s compact SQL parametry při exeqSQL - spadnutí app bez varování
Přispěvatel: Mi.Chal. 30-06-2013, 10:10:17
Nie som v tom nejako znalý ale TADOQuery je primárne určený na vrátenie nejakého DataSet-u.

To bych neřekl, použít to jde na obojí, podle toho, jestli člověk volá Open nebo ExecSql.

Jinak Google nefunguje? :-) Našel jsem třeba http://connect.microsoft.com/SQLServer/feedback/details/679650/sql-server-compact-3-5-sp2-ado-parameterized-queries-crash a vypadá to, že je to prostě bug v CE, ale soudruzi z Redmondu už CE odepsali, takže to fixovat nebudou. Ještě můžeš zkusit si napsat stored proc a volat tu, třeba to projde.
Název: Re:ADOQuery s compact SQL parametry při exeqSQL - spadnutí app bez varování
Přispěvatel: Kraťas 30-06-2013, 13:13:31
Asi používáme každý jiný google  ;D. Já nic takového nenašel, patrně tím, že jsem přidával vyhledávací heslo "Delphi". Jinak díky, pokud je to tak a MS potápí SQL CE, tak raději zůstanu u standardního SQL. Pokud použiju "INSERT INTO tabulka (pole1, pole2) VALUES ('aaa', 'bbb')" tak je to OK.