[Lazarus-es] Concectividad a bases de Datos
Ismael L. Donis García
ismael en citricos.co.cu
Jue Nov 4 22:16:04 CET 2010
El lío está por el código que empleaste para mi entender, no por errores de
implementación. Al menos es lo que veo.
Además no necesitas SQLTransaction2.Commit; ya que no has editado nada con
ese query.
No podremos esperar que nos salga todo bien si ponemos cosas mal en el
código.
Mis más sinceros saludos
=========
|| ISMAEL ||
=========
----- Original Message -----
From: "Claudio Romero" <clauslack en gmail.com>
To: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Thursday, November 04, 2010 2:49 PM
Subject: Re: [Lazarus-es] Concectividad a bases de Datos
Funciona, pero no del modo correcto
Aqui hay un ejemplo
http://bugs.freepascal.org/view.php?id=12956
**--
procedure TForm1.Button1Click(Sender: TObject);
begin
//without try .. finally ..
//for this example uses table p_ucm_a with blob field in linux firebird
//I Use a BLOB field, because before this issue caused 'Invalid BLOB ID'
if not opendialog1.Execute then exit;
IBConnection1.open;
//--
if SQLTransaction1.Active then
showmessage('SQLTransaction1.active=true')
else showmessage('SQLTransaction1.active=false');
if SQLTransaction2.Active then
showmessage('SQLTransaction2.Active=true')
else showmessage('SQLTransaction2.Active=false');
SQLQuery2.close;
SQLQuery2.sql.clear;
SQLQuery2.sql.add('select * from p_ucm_a');
SQLQuery2.Transaction:= SQLTransaction2;
if not SQLTransaction2.active then SQLTransaction2.StartTransaction;
SQLQuery2.open;
//--
if SQLTransaction1.Active then showmessage('After SELECT
(SqlQuery2) SQLTransaction1.Active=true')
else showmessage('After SELECT (SqlQuery2)
SQLTransaction1.Active=false');
if SQLTransaction2.Active then showmessage('After SELECT
(SqlQuery2) SQLTransaction2.Active=true')
else showmessage('After SELECT (SqlQuery2)
SQLTransaction2.Active=false');
SQLQuery1.close;
SQLQuery1.sql.clear;
SQLQuery1.sql.add('update p_ucm_a set memo=:memo where clave_adhe=4');
SQLQuery1.Transaction:=SQLTransaction1;
SQLQuery1.params.paramByName('memo').LoadFromFile(opendialog1.filename,ftBlob);
if not SQLTransaction1.active then SQLTransaction1.StartTransaction;
SQLQuery1.ExecSQL;
SQLTransaction1.Commit;
SQLTransaction2.Commit;
//
end;
*--
La segunda consulta usa la primera transacción, en vez de la segunda
transacción. Lo que da unos lios terribles en algunos casos, yo tenia
errores cuando maneja BLOBs.
_______________________________________________
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