[Lazarus-es] tquery insertSQL

Rafael Bidegain r.bidegain en gmail.com
Mar Sep 29 18:22:04 CEST 2009


El día 29 de septiembre de 2009 12:38, Claudio Romero
<clauslack en gmail.com> escribió:
> SQLQuery.sql en lugar de SQLQuery.InsertSQL, SQLQuery.DeleteSQL,
> SQLQuery.UpdateSQL   ?
>
> SQLQuery.sql con SQLQuery.ExecSql funciona con bien con los insert,
> update, delete.
> Francamente no se como se usan SQLQuery.InsertSQL, SQLQuery.DeleteSQL,
> SQLQuery.UpdateSQL ?  Por algun forum presentaban algun problema. Pero
> nunca las use.
ok. gracias

>
>
> Sobre la 0.9.24, si te funciona asi no hay problema. Ten en cuenta las comillas.
> Si debes pasar una cadena con comillas (porque lo requiere la base de datos)
> utiliza QuotedStr('hola')   -> en la base llegaria 'hola'
> Sino puedes usar sentencias parametrizadas:(seguro funciona en MySql)
> Ej:(no lo compile :)
> consulta:='insert into p_ucm_t (CODIGO, NOMBRE) VALUES ( :CODIGO, :NOMBRE)';
> SQLQuery1.Sql.clear;
> SQLQuery1.Sql.add(consulta);
> with SQLQuery1.params do begin
>    ParamByName('CODIGO').asinteger:= 21095;
>    ParamByName('NOMBRE').asstring:= 'CLAUDIO';
> end;
> SQLQuery1.ExecSQL;
> //Recuerda las transacciones StartTransaction y luego Commit
justamente estaba por abrir otro hilo para preguntar sobre el uso de parámetros
tu ejemplo me ayudó a resolver el inconveniente.

yo estaba usando algo como esto:

SQLQuery1.Params.CreateParam(ftString, 'mi_cadena', ptInput);
SQLQuery1.Params.ParamByName('mi_cadena').AsString := 'Hola';
SQLQuery1.Params.CreateParam(ftInteger, 'mi_numero', ptInput);
SQLQuery1.Params.ParamByName('mi_numero').AsInteger := 100;
SQLQuery1.SQL.Add('insert into tabla_prueba (cadena, numero) values
(:mi_cadena, :mi_numero)');

pero siempre insertaba valores nulos.
el resolví el problema cuando vi tu ejemplo y advertí que debía
escribir el sql antes de crear y setear los parámetros.

muchas gracias.
-- 
Rafael Bidegain

Ya que los cuerdos no hablan, hablará el loco.
(The Fool, Padraic Pearse)




More information about the Lazarus-es mailing list