[Lazarus-es] tquery insertSQL

JoshyFun joshyfun en gmail.com
Mar Sep 29 20:13:58 CEST 2009


Hello Rafael,

Tuesday, September 29, 2009, 7:25:30 PM, you wrote:

RB> podrías indicarme como ejecutar esta linea seteando:
RB> SQLQuery1.InsertSQL.Add('INSERT INTO T1 (Number,Code) values (:Number,:Code)');
RB> yo obtengo  "sql statement not set" cuando ejecuto
RB> SQLQuery1.ExecSQL;

Hace algunos meses que no ando con el SQL así que la sintaxis puede
estar mal :( pero SQLQuery1.ExecSQL SIEMPRE ejecuta lo contenido en
SQLQuery1.SQL los UpdateSQL, InsertSQL y DeleteSQL son para ser usados
por el dbgrid y otros automáticamente, no son para que tu los llames
por código manualmente.

Por ponerlo de otro modo, InsertSQL sólo se ejecutaría si existiera un
método "SQLQuery1.Insert" cosa que no existe.

Básicamente lo que hace un dataset cuando tiene que hacer un insert
es:

if SQLQuery1.InsertSQL<>'' then begin
  OldSQL:=SQLQuery1.SQL;
  SQLQuery1.SQL:=SQLQuery1.InsertSQL;
  for j:=0 to pamaters do begin
  //set paramenters
  end;
  SQLQuery1.ExecSQL;
  SQLQuery1.SQL:=OldSQL;
end;

-- 
Best regards,
 JoshyFun





More information about the Lazarus-es mailing list