pepeperezj
21-12-2003, 14:13:40
Hola, estoy empezando con bases de datos bajo delphi y tengo un
problemilla.
Tengo una base de datos (bajo mysql) con una tabla que se llama b, con
dos campos aa y bb, los 2 de tipo integer.
Engancho a la base de datos a traves de ODBC con un ADOConnection.
Ahora viene el problema: Tengo 2 botones, uno para añadir registros a
la tabla y otro para visualizar el contenido de los registros del
campo bb de la tabla:
CODIGO PARA VER CONTENIDO DEL CAMPO BB:
-----------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select bb from b');
adoquery1.Open;
for i:=1 to adoquery1.RecordCount do
begin
listbox1.items.add(inttostr(adoquery1.recordset.fields[0].Value));
adoquery1.Recordset.MoveNext;
end;
adoquery1.Close;
end;
CODIGO PARA AÑADIR UN REGISTRO:
-----------------------------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into b values (8,8)');
adoquery1.ExecSQL;
adoquery1.Close;
end;
PROBLEMA:
-------------------
Pincho en button2 todas las veces que quiero y funciona perfectamente.
A continuacion pincho en button1 y me carga los valores en una lista
sin problemas. PERO si ahora pincho de nuevo en button2 me da el
mensaje siguiente:
ACCESS VIOLATION AT ADDRESS 1F453E6E IN MODULE MSADO15.DLL
¿Que me falta?
Salu2.
problemilla.
Tengo una base de datos (bajo mysql) con una tabla que se llama b, con
dos campos aa y bb, los 2 de tipo integer.
Engancho a la base de datos a traves de ODBC con un ADOConnection.
Ahora viene el problema: Tengo 2 botones, uno para añadir registros a
la tabla y otro para visualizar el contenido de los registros del
campo bb de la tabla:
CODIGO PARA VER CONTENIDO DEL CAMPO BB:
-----------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select bb from b');
adoquery1.Open;
for i:=1 to adoquery1.RecordCount do
begin
listbox1.items.add(inttostr(adoquery1.recordset.fields[0].Value));
adoquery1.Recordset.MoveNext;
end;
adoquery1.Close;
end;
CODIGO PARA AÑADIR UN REGISTRO:
-----------------------------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into b values (8,8)');
adoquery1.ExecSQL;
adoquery1.Close;
end;
PROBLEMA:
-------------------
Pincho en button2 todas las veces que quiero y funciona perfectamente.
A continuacion pincho en button1 y me carga los valores en una lista
sin problemas. PERO si ahora pincho de nuevo en button2 me da el
mensaje siguiente:
ACCESS VIOLATION AT ADDRESS 1F453E6E IN MODULE MSADO15.DLL
¿Que me falta?
Salu2.