Hola
Lo que pasa es que tengo un programa que hago consultas a cada rato y relleno cosas en tiempo de ejecucion. Entonces no quiero ocupar Componentes que linkeen a componentes del dbGo para que se carguen automaticamente los datos.
Prefiero recorrer los resultados yo y agregarlos como yo quiero.
Bueno, mi problema es el siguiente; como hago consultas a cada rato, si agrego un componente TADOQuery (En diseño) y al ocuparlo surge el problema de tener que hacer otra consulta, y para esto, necesitare otro TADOQuery (Si hago una consulta dentro de otra no puedo ocupar el mismo TADOQuery).
Por ejemplo:
Código:
Query1.Close;
Query1.SQL.Text:='SELECT * FROM Tabla';
Query1.Open;
For i:=0 to Query1.RecordCount-1 do
begin
Query2.Close;
Query2.SQL.Text:='SELECT * FROM Tabla2 WHERE ID='+Query1.Fields[0].AsString;
Query2.Open;
For j:=0 to Query2.RecordCount-1 do
begin
//
end;
end;
Para realizar ese tipo de consultas, necesito dos TADOQuery. Y como hago varias consultas, (El Usuario puede buscar, o ver items con ciertos filtros, etc) puede pasar que se ocupe el mismo TADOQuery y un procedure lo cierre mientras que otro lo esta viendo.
Ahora mi problema no es ete, mi problema es el siguiente:
Puse un TADOConnection seteado para la base de datos (Access)
Y en el codigo puse esto:
Código:
procedure TForm1.Abrir(...);
var
Query1: TADOQuery;
begin
Query1.Connection: ADOConnection1;
Query1.Close;
Query1.SQL.Text:='...';
Query1.Open;
end;
y al ejecutarlo me da un error de EAccessViolation
Cita:
Project Project1.exe raised an exception class EAccessException with message 'Access violation at address C38B0000. Read of address C38B0000'.
|
Entonces, quisiera saber si alguien me puede explicar que paso, y las propiedades que deben tener el TADOConnection y el TADOQuery que yo cree, o si esto definitivamente no se puede y tengo que pensar en otra forma para hacerlo. (Ocupo Delphi 2005).
Bueno, gracias por su tiempo.
Saludos