Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Se pueden tener 2 tablas abiertas a la vez utilizando ADO y DBgrid? (https://www.clubdelphi.com/foros/showthread.php?t=57883)

alquimista 01-07-2008 12:40:46

Se pueden tener 2 tablas abiertas a la vez utilizando ADO y DBgrid?
 
No tengo mucha idea con BD.

Tengo una conexión a una base de datos access (requisito obligado) con ADO.
Utilizo un Datamodule con una conexión ADO (ADOConnection1) un ADOTable1 con una tabla de la base de datos y un DataSource1 que hace referencia a la ADOTable1

En el programa
utilizo para conectar:
Código Delphi [-]
...if JvOpenDialog1.Execute then
   begin
   strOpenNomBD:=JvOpenDialog1.FileName;
   with (legerdb.DataModule10.ADOConnection1) do
      begin
       Connected:=false;
       ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;'+
       'Data Source='+strOpenNomBD+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+
       'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+
       'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
       Connected:=true;
       end;
    db.DataModule10.ADOTable1.Active:=true;
   db.DataModule10.ADOTable2.Active:=true;
    db.DataModule10.ADOConnection1.Connected:=true;
    db.DataModule10.ADOTable1.Active :=true;
    db.DataModule10.ADOTable2.Active:=true;
    db.DataModule10.datasource2.Enabled:=true;
    end;



En el programa añado un DBNavigator (botones de edición, etc) un DBgrid y todo va bien.
Ahora bien si utilizo otra tabla (ADOtable2 y Datasource2) y pongo el navegador y DBGrid y me aparecen desactivados los controles de la tabla 2.
En el código los activo etc...
¿Ya he dicho que no estoy muy puesto con Base de datos ?
¿Que estoy haciendo mal?

Saludos.

eduarcol 01-07-2008 13:59:12

y estas seguro que estas abriendo (.Active := True) la segunda tabla

alquimista 01-07-2008 15:21:10

Si ya he probado a ponerlo active,tanto en el componente como en el código. Sólo que al hacer pruebas y recompilar los he puesto como comentario. (ya cambio el código anterior)
¿La pregunta es que si se pueden abrir todas las tablas que se quiera a la vez con ADO? o será necesario utilizar otro método y como?

Caro 01-07-2008 15:45:26

Hola alquimista, puedes abrir todas las tablas que quieras con AdoTable, como estas haciendo AdoTable.Active := True; lo que te entiendo es que quieres mostrar cada uno, con un dbgrid y un dbNavigator diferentes por tabla, entonces necesitas un dataSource por cada AdoTable y lo enlazas a su respectivo dbGrid y dbNavigator en su propiedad DatSource de ambos.

Saluditos

alquimista 01-07-2008 16:51:15

Eso es lo que estoy haciendo y no se por que no se me activan dos tablas a la vez.
Delphi 2006, Windows XP SP3, Access creado en versión 2007 pero grabado en formato 2003 (*.mdb) sin relaciones ningunas y campos de texto y número. Lo curioso que en el IDE si que se activa el DBGRID y aparecen los valores metidos y en runtime aparece como desactivada una de las dos tablas. Las activo al crear el form principal.
Gracias...

alquimista 01-07-2008 17:17:22

Solucionado...
Se me quedo el código anterior fuera del formcreate y no me di cuenta.

Activado todo y funciona Ok.

Gracias por las respuestas ya que me han llevado a la solución de que algo había hecho mal.

Gracias


La franja horaria es GMT +2. Ahora son las 23:11:07.

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