[Lazarus-es] tquery insertSQL
Claudio Romero
clauslack en gmail.com
Mar Sep 29 16:24:13 CEST 2009
Bueno te paso lo que uso en mis sistemas, aunque lo uso para Firebird,
lo puedes adaptar para MySql
Le da 2 parametros la sentencia SQL (insert,update,delete)
y la coneccion y listo. En una sola linea hace todo.
Chequea uses db, sqldb (seguro ya las tienes)
Para mi deberias actualizar a la version 0.9.27 svn, que es la proxima
0.9.28, porque la 0.9.24 tenia muchos errores, ya corregidos.
procedure EjecutaSql(consulta:string;IBexecSql:TIBConnection);
var SQLQuery1:TSQLQuery;SQLTransaction1:TSQLTransaction;
begin
try
SQLQuery1:=TSQLQuery.Create(nil);
SQLTransaction1:=TSQLTransaction.Create(nil);
SQLTransaction1.DataBase:=IBexecSql;
SQLQuery1.UsePrimaryKeyAsKey:=false;
SQLQuery1.Transaction:=SQLTransaction1;
//
SQLQuery1.SQL.add(consulta);
try
SQLTransaction1.StartTransaction;
SQLQuery1.ExecSQL;
SQLTransaction1.Commit;
except on e:exception do
begin
SQLTransaction1.Rollback;
ShowMessage('procedure EjecutaSql'+#13+'Error al
ejecutar: '+#13+consulta+#13+e.message);
end;
end;
finally
SQLTransaction1.free;
SQLQuery1.free;
end;
end;
Saludos
El día 29 de septiembre de 2009 11:04, Rafael Bidegain
<r.bidegain en gmail.com> escribió:
> Hola a todos.
>
> Perdón si la pregunta es reiterada. Intuyo que sí lo es, pero despues
> de buscar con google y no encontrar ninguna ayuda no me queda mas
> alternativa que realizarla en la lista.
>
> estoy haciendo una prueba con mysql 5 en linux con lazarus 0.9.24
>
> tengo un componente mysql50connection, un sqltransaction, un sqlquery
> un dataset un dbgrid y un dbnavigator
> con esos elementos ejecuto un select * desde una tabla y funciona.
> (cosa que me permite asegurar que todo esta configurado correctamente)
>
> tengo un error "sql statement not set" cuando intento ejecutar un
> insert de esta manera:
>
> procedure TMySQL.btInsertClick(Sender: TObject);
> begin
> SQLQuery1.Active := false;
> SQLQuery1.SQL.clear;
> SQLQuery1.ParseSQL := false;
> SQLQuery1.InsertSQL.clear;
> SQLQuery1.InsertSQL.Add('insert into tabla_prueba (cadena,
> numero) values ("hola", 10)');
> SQLQuery1.Active := true;
> SQLQuery1.Open;
> SQLQuery1.Insert;
> SQLQuery1.Post;
> SQLQuery1.ApplyUpdates;
> end;
>
> ¿ qué estoy haciendo mal ?
>
> gracias
> --
> Rafael Bidegain
>
> Ya que los cuerdos no hablan, hablará el loco.
> (The Fool, Padraic Pearse)
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
More information about the Lazarus-es
mailing list