![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Conectar a BD access desde delphi 6
Hola a todos,
el problema es basicamente lo que pongo en el titulo de la consulta. Como conectar desde delphi 6 a una base de datos access. Por desgracia, tenemos un programa que migra datos sólo a access, y quiero pasar luego esos datos a nuestra BD IB. El problema es que no consigo conectar correctamente a access desde delphi. Se agradecerá cualquier ayudita, Muchas gracias a todos, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#2
|
||||
|
||||
|
Si utilizas los componentes ADO no tendrás ningún problema, tienen por ejemplo uno AdoTable con un asistente para crear la conexción directamente a cualquier tabla.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#3
|
|||
|
|||
|
Muchas gracias,
lo probaré Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#4
|
|||
|
|||
|
Hola,
tras las instrucciones que me disteis para usar ADO en Delphi 6, efectivamente he conseguido ver datos de la tabla en cuestion, el problema me surge cuando tengo que guardar datos, de una tabla ADO, a la de IB. Me explicaré. Tengo este código: Código:
//===============================
//========Tomamos los datos desde access a la tabla TODO
//=======copiamos los registros de una tabla a la otra
FrmDmodule.TbADOAsisImport.first;
//mientras no llegue al final de los registros
WHILE not FrmDmodule.TbADOAsisImport.EOF DO BEGIN
With FrmDmodule.TbIBAsistencia_todo do begin
FrmDmodule.TbIBAsistencia_todo.Insert;
FieldByName('CODIGO').Value := FrmDmodule.TbADOAsisImportCODIGO.Value;
FieldByName('GRUPO').Value := FrmDmodule.TbADOAsisImportGRUPO.Value;
FieldByName('FECHA').Value := FrmDmodule.TbADOAsisImportFECHA.Value;
FieldByName('NUMALU1').Value := FrmDmodule.TbADOAsisImportNUMALU1.Value;
FieldByName('ASISTENCIA1').Value := FrmDmodule.TbADOAsisImportASISTENCIA1.Value;
FieldByName('NUMALU2').Value := FrmDmodule.TbADOAsisImportNUMALU2.Value;
FieldByName('ASISTENCIA2').Value := FrmDmodule.TbADOAsisImportASISTENCIA2.Value;
FieldByName('NUMALU3').Value := FrmDmodule.TbADOAsisImportNUMALU3.Value;
FieldByName('ASISTENCIA3').Value := FrmDmodule.TbADOAsisImportASISTENCIA3.Value;
FieldByName('NUMALU4').Value := FrmDmodule.TbADOAsisImportNUMALU4.Value;
FieldByName('ASISTENCIA4').Value := FrmDmodule.TbADOAsisImportASISTENCIA4.Value;
FieldByName('NUMALU5').Value := FrmDmodule.TbADOAsisImportNUMALU5.Value;
FieldByName('ASISTENCIA5').Value := FrmDmodule.TbADOAsisImportASISTENCIA5.Value;
FieldByName('NUMALU6').Value := FrmDmodule.TbADOAsisImportNUMALU6.Value;
FieldByName('ASISTENCIA6').Value := FrmDmodule.TbADOAsisImportASISTENCIA6.Value;
FieldByName('NUMALU7').Value := FrmDmodule.TbADOAsisImportNUMALU7.Value;
FieldByName('ASISTENCIA7').Value := FrmDmodule.TbADOAsisImportASISTENCIA7.Value;
FieldByName('NUMALU8').Value := FrmDmodule.TbADOAsisImportNUMALU8.Value;
FieldByName('ASISTENCIA8').Value := FrmDmodule.TbADOAsisImportASISTENCIA8.Value;
FieldByName('NUMALU9').Value := FrmDmodule.TbADOAsisImportNUMALU9.Value;
FieldByName('ASISTENCIA9').Value := FrmDmodule.TbADOAsisImportASISTENCIA9.Value;
FieldByName('NUMALU10').Value := FrmDmodule.TbADOAsisImportNUMALU10.Value;
FieldByName('ASISTENCIA10').Value := FrmDmodule.TbADOAsisImportASISTENCIA10.Value;
FieldByName('NUMALU11').Value := FrmDmodule.TbADOAsisImportNUMALU11.Value;
FieldByName('ASISTENCIA11').Value := FrmDmodule.TbADOAsisImportASISTENCIA11.Value;
FieldByName('NUMALU12').Value := FrmDmodule.TbADOAsisImportNUMALU12.Value;
FieldByName('ASISTENCIA12').Value := FrmDmodule.TbADOAsisImportASISTENCIA12.Value;
FrmDmodule.TbIBAsistencia_todo.Post;
END;
End; //With
FrmDmodule.TbADOAsisImport.next;
END;//While del TbADOAsisImport
//Cerramos tablas
FrmDmodule.TbADOAsisImport.close;
FrmDmodule.IBTransHyperion.CommitRetaining;
El problema viene al copiar el último registro de la tabla de ADO a la de IB. No es necesario que todos los campos tengan datos, (no se obliga a la BD Access que así sea), pero si en el último registro, no encuentra datos para un campo concreto, ¡¡¿copia los del registro inmediatamente superior????!!!! para rellenar esos vacios??????!!!! Si el registro que no tiene datos en todos los campos, NO es el último, todo funcionará OK Esto es así justo cuando pasa por el Post, antes de pasar por el "next" He puesto para que vaya mostrandome los valores cada pasada, y antes del post ya da el problema. Por favor, alguien puede ayudarme, no se que hacer con este tema. Muchas gracias, virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#5
|
||||
|
||||
|
Cita:
Porque vamos, sin hacer explicitamente un .Prior o .Next es imposible que salte del registro actual al anterior. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#6
|
|||
|
|||
|
he mirado y no, no tengo nada en esos eventos. ¿algo en la configuración del objeto?
Estoy usando un TADOQuery, pero tambien he probado con TADODataSet. Esto es lo que tengo: Código:
object TbADOAsisImport: TADOQuery
Active = True
Connection = ADOBDHyperion
CursorType = ctStatic
Parameters = <>
SQL.Strings = (
'select * from asistencias_todo'
'order by codigo')
Left = 544
Top = 152
object TbADOAsisImportcodigo: TAutoIncField
FieldName = 'codigo'
ReadOnly = True
end
object TbADOAsisImportgrupo: TIntegerField
FieldName = 'grupo'
end
object TbADOAsisImportfecha: TWideStringField
FieldName = 'fecha'
Size = 50
end
object TbADOAsisImportnumalu1: TWideStringField
FieldName = 'numalu1'
Size = 50
end
object TbADOAsisImportasistencia1: TWideStringField
FieldName = 'asistencia1'
Size = 50
end
object TbADOAsisImportnumalu2: TWideStringField
FieldName = 'numalu2'
Size = 50
end
object TbADOAsisImportasistencia2: TWideStringField
FieldName = 'asistencia2'
Size = 50
end
object TbADOAsisImportnumalu3: TWideStringField
FieldName = 'numalu3'
Size = 50
end
object TbADOAsisImportasistencia3: TWideStringField
FieldName = 'asistencia3'
Size = 50
end
object TbADOAsisImportnumalu4: TWideStringField
FieldName = 'numalu4'
Size = 50
end
object TbADOAsisImportasistencia4: TWideStringField
FieldName = 'asistencia4'
Size = 50
end
object TbADOAsisImportnumalu5: TWideStringField
FieldName = 'numalu5'
Size = 50
end
object TbADOAsisImportasistencia5: TWideStringField
FieldName = 'asistencia5'
Size = 50
end
object TbADOAsisImportnumalu6: TWideStringField
FieldName = 'numalu6'
Size = 50
end
object TbADOAsisImportasistencia6: TWideStringField
FieldName = 'asistencia6'
Size = 50
end
object TbADOAsisImportnumalu7: TWideStringField
FieldName = 'numalu7'
Size = 50
end
object TbADOAsisImportasistencia7: TWideStringField
FieldName = 'asistencia7'
Size = 50
end
object TbADOAsisImportnumalu8: TWideStringField
FieldName = 'numalu8'
Size = 50
end
object TbADOAsisImportasistencia8: TWideStringField
FieldName = 'asistencia8'
Size = 50
end
object TbADOAsisImportnumalu9: TWideStringField
FieldName = 'numalu9'
Size = 50
end
object TbADOAsisImportasistencia9: TWideStringField
FieldName = 'asistencia9'
Size = 50
end
object TbADOAsisImportnumalu10: TWideStringField
FieldName = 'numalu10'
Size = 50
end
object TbADOAsisImportasistencia10: TWideStringField
FieldName = 'asistencia10'
Size = 50
end
object TbADOAsisImportnumalu11: TWideStringField
FieldName = 'numalu11'
Size = 50
end
object TbADOAsisImportasistencia11: TWideStringField
FieldName = 'asistencia11'
Size = 50
end
object TbADOAsisImportnumalu12: TWideStringField
FieldName = 'numalu12'
Size = 50
end
object TbADOAsisImportasistencia12: TWideStringField
FieldName = 'asistencia12'
Size = 50
end
end
Código:
object OLD_TbADOAsisImport: TADODataSet
Connection = ADOBDHyperion
CursorType = ctStatic
LockType = ltReadOnly
CommandText = 'select * from asistencias_todo'#13#10'order by codigo'#13#10
Parameters = <>
Prepared = True
Left = 536
Top = 96
object OLD_TbADOAsisImportcodigo: TAutoIncField
FieldName = 'codigo'
ReadOnly = True
end
object OLD_TbADOAsisImportgrupo: TIntegerField
FieldName = 'grupo'
end
object OLD_TbADOAsisImportfecha: TWideStringField
FieldName = 'fecha'
Size = 50
end
object OLD_TbADOAsisImportnumalu1: TWideStringField
FieldName = 'numalu1'
Size = 50
end
object OLD_TbADOAsisImportasistencia1: TWideStringField
FieldName = 'asistencia1'
Size = 50
end
object OLD_TbADOAsisImportnumalu2: TWideStringField
FieldName = 'numalu2'
Size = 50
end
object OLD_TbADOAsisImportasistencia2: TWideStringField
FieldName = 'asistencia2'
Size = 50
end
object OLD_TbADOAsisImportnumalu3: TWideStringField
FieldName = 'numalu3'
Size = 50
end
object OLD_TbADOAsisImportasistencia3: TWideStringField
FieldName = 'asistencia3'
Size = 50
end
object OLD_TbADOAsisImportnumalu4: TWideStringField
FieldName = 'numalu4'
Size = 50
end
object OLD_TbADOAsisImportasistencia4: TWideStringField
FieldName = 'asistencia4'
Size = 50
end
object OLD_TbADOAsisImportnumalu5: TWideStringField
FieldName = 'numalu5'
Size = 50
end
object OLD_TbADOAsisImportasistencia5: TWideStringField
FieldName = 'asistencia5'
Size = 50
end
object OLD_TbADOAsisImportnumalu6: TWideStringField
FieldName = 'numalu6'
Size = 50
end
object OLD_TbADOAsisImportasistencia6: TWideStringField
FieldName = 'asistencia6'
Size = 50
end
object OLD_TbADOAsisImportnumalu7: TWideStringField
FieldName = 'numalu7'
Size = 50
end
object OLD_TbADOAsisImportasistencia7: TWideStringField
FieldName = 'asistencia7'
Size = 50
end
object OLD_TbADOAsisImportnumalu8: TWideStringField
FieldName = 'numalu8'
Size = 50
end
object OLD_TbADOAsisImportasistencia8: TWideStringField
FieldName = 'asistencia8'
Size = 50
end
object OLD_TbADOAsisImportnumalu9: TWideStringField
FieldName = 'numalu9'
Size = 50
end
object OLD_TbADOAsisImportasistencia9: TWideStringField
FieldName = 'asistencia9'
Size = 50
end
object OLD_TbADOAsisImportnumalu10: TWideStringField
FieldName = 'numalu10'
Size = 50
end
object OLD_TbADOAsisImportasistencia10: TWideStringField
FieldName = 'asistencia10'
Size = 50
end
object OLD_TbADOAsisImportnumalu11: TWideStringField
FieldName = 'numalu11'
Size = 50
end
object OLD_TbADOAsisImportasistencia11: TWideStringField
FieldName = 'asistencia11'
Size = 50
end
object OLD_TbADOAsisImportnumalu12: TWideStringField
FieldName = 'numalu12'
Size = 50
end
object OLD_TbADOAsisImportasistencia12: TWideStringField
FieldName = 'asistencia12'
Size = 50
end
end
Código:
object ADOBDHyperion: TADOConnection
Attributes = [xaCommitRetaining]
Connected = True
ConnectionString =
'Provider=MSDASQL.1;Persist Security Info=False;Data Source=Hyper' +
'ion;Mode=ReadWrite'
IsolationLevel = ilIsolated
LoginPrompt = False
Mode = cmReadWrite
Left = 536
Top = 24
end
Muchas gracias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#7
|
|||
|
|||
|
Muchas gracias a todos por la ayuda, al final lo que he hecho ha sido conectar a esa base de datos access mediante BDE, en vez de ADO, y me ha dejado de hacer cosas raras.... lo digo por si alguien se encuentra en el mismo problema, que no se de golpes contra la misma pared que yo.
Gracias de nuevo a todos, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Conectar a MySQL desde Delphi 2005 | hmrvivas | MySQL | 1 | 20-01-2007 18:01:48 |
| Trabajar Access desde Delphi | JoAnCa | Conexión con bases de datos | 4 | 16-08-2006 12:39:49 |
| ejecutar consulta access desde delphi | pepe2000 | Conexión con bases de datos | 1 | 04-05-2006 09:33:42 |
| Conectar a Delphi mediante Access | marc.carrasco | Conexión con bases de datos | 1 | 19-05-2005 22:41:37 |
| Conectar a access desde otro pc | davezf | Conexión con bases de datos | 6 | 08-01-2005 01:24:43 |
|