Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2003
pepeperezj pepeperezj is offline
Registrado
 
Registrado: dic 2003
Posts: 2
Poder: 0
pepeperezj Va por buen camino
Question Problema con ADO

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.
Responder Con Cita
  #2  
Antiguo 21-12-2003
pepeperezj pepeperezj is offline
Registrado
 
Registrado: dic 2003
Posts: 2
Poder: 0
pepeperezj Va por buen camino
Cool

Se me olvidaba, utilizo Delphi 7 y MySQL 4.

Salu2.
Responder Con Cita
  #3  
Antiguo 21-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Quien sabe, quizá por culpa de los campos persistentes, ...

En todo caso, ¿ hay alguna razón para aprovechar tanto un TADOQuery ?. Si simplemente pones 2 TADOQuery, uno para las consultas y otro para las inserciones, te ahorraras este problema.

Además te recomiendo que no modifiques el contenido de la propiedad SQL. Simplemente pón consultas parametrizadas. Algo del tipo :

Consulta : SELECT * FROM B WHERE FECHA = :FECHA

Inserción : INSERT INTO B (CAMPO1, CAMP2) VALUES (:CAMPO1, :CAMPO2)

Ahora el código de los botones te quedará :

Código:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  adoConsulta.Params.ParamValues['FECHA'] := Date;
  adoConsulta.Open;
  for i:=1 to adoConsulta.RecordCount do begin
    listbox1.items.add(adoConsulta.FieldByName('CAMPO1').AsString);
    adoConsulta.Recordset.MoveNext;
  end;
  adoConsulta.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  adoInsercion.Params.ParamValues['CAMPO1'] := 8;
  adoInsercion.Params.ParamValues['CAMPO2'] := 8;
  adoInsercion.ExecSQL;
end;
Saludos
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:41:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi