Autor Téma: ADOQuery s compact SQL parametry při exeqSQL - spadnutí app bez varování  (Přečteno 2020 krát)

Kraťas

  • Host
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.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2775
  • Karma: 26
    • Verze Delphi: XE7 professional
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í.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 566
  • Karma: 23
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.

Kraťas

  • Host
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.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):