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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2004
PTW PTW is offline
Miembro
 
Registrado: abr 2004
Posts: 55
Poder: 21
PTW Va por buen camino
Access!!

Tengo una aplicacion en Delphi que trabaja con una base de datos en Access.
En mi aplicacion, tengo mis componentes TTable asociado a cada tabla de la base de datos

Al intentar añadir un nuevo registro a una Tabla (A), utilizo los metodos

TablaA.Open;
TablaA.Append;
..........
Inserto los campos de la tabla;
..........
TablaA.Post;
TablaA.CLose;

Pues al hacer eso, me da un error (en el TablaA.Post) diciendo que "No se puede agregrar o cambiar el registro porque se necesita un registro"

¿Por que me da ese error? Antes habia trabajado con Paradox, y nunca me habia dado ese problema. ¿Para manipular una base de datos Access hay que utilizar otros metodos del componente Table?

Muchas gracias por todo
Responder Con Cita
  #2  
Antiguo 13-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Para acceder a Access te recomiendo que utilizes los componentes ADO en lugar de los componentes BDE.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 13-04-2004
PTW PTW is offline
Miembro
 
Registrado: abr 2004
Posts: 55
Poder: 21
PTW Va por buen camino
Ado

Muchas gracias po responder tan rapido

Mis dudas sobre ADO son:

Para utilizar ADO, ¿solo tengo k configurar los componentes ADOCOnnection (cadena de conexion...) ,ADOTable y ADOQuery (en el caso de utilizar consultas)? ¿No hace falta definir la base de datos en ningun otro lado (como suele ocurrir con BDE?

Cuando tienes la aplicacion terminada y vas a instalarla en el cliente ¿ no se debe configurar la base de datos en ningun lado, o ya va implicita en la programacion de la aplicacion (ADOCOnnection)? Me explico. con BDE, cuando tienes terminada la aplicacion, en el cliente debes definir la base de datos en el BDE. ¿EN aDO no se hace nada?

En ADO, ¿se pueden utilizar TADOTable.append, TADOTable.post,......? ¿o existen otros metodos mejores para trabajar con Access?

Y una ultima cosa, me puedes indicar una cadena de conexion para una tabla Access con usuario y contraseña. Como ves estoy un poco verde en ADO , y me urge la terminacion de la aplicacion. De ahi que optara por utilizar BDE.

Muchas gracias por todo y a todos
Salu2
Responder Con Cita
  #4  
Antiguo 13-04-2004
Avatar de luchin001
luchin001 luchin001 is offline
Miembro
 
Registrado: may 2003
Posts: 36
Poder: 0
luchin001 Va por buen camino
Hola
si utilisas BDE, por que en ves de append no utlisas table1.insert para agregar un registro?

table1.active := true;
table1.insert;
......tus campos;
table1.post;
table1.flushbuffers;

luis
Responder Con Cita
  #5  
Antiguo 14-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por PTW
Para utilizar ADO, ¿solo tengo k configurar los componentes ADOCOnnection (cadena de conexion...) ,ADOTable y ADOQuery (en el caso de utilizar consultas)? ¿No hace falta definir la base de datos en ningun otro lado (como suele ocurrir con BDE?
Exacto, solo tienes que configurarlo en el ADOConnection, no es necesario configurarlo en ningún otro lugar.

Cita:
Empezado por PTW
Cuando tienes la aplicacion terminada y vas a instalarla en el cliente ¿ no se debe configurar la base de datos en ningun lado, o ya va implicita en la programacion de la aplicacion (ADOCOnnection)?
No, no hace falta configurarla en ningún lado. Simplemente, actualiza la ConnectionString (por código, antes de hacer el Open de la conexión), para que la ruta a la base de datos sea la correcta en ese Ordenador.

Cita:
Empezado por PTW
Y una ultima cosa, me puedes indicar una cadena de conexion para una tabla Access con usuario y contraseña.
No es necesario, simplemente pulsa el botón que aparece en la propiedad ConnectionString del componente, y pulsa el botón Build para invocar un asistente que te ayudará a construir la cadena de conexión.

NOTA : Para conectar a Access, selecciona el Microsoft Jet 4.0 OleDB Provider.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 15-04-2004
agova agova is offline
Miembro
 
Registrado: may 2003
Posts: 69
Poder: 21
agova Va por buen camino
tu problema inicial "no se puede agregar el registro por que se nesecita ...." vine dado por una sencilla razon INTEGRIDAD REFERENCIAL, esto quiere decir que las restricciones en las relaciones de tu base de datos access no te permiten dar de alta por que necesitas un registro maestro para poder agregar ese registro detalle.

en algunos manejadores SQL(PostgreSQL por ejemplo) esto viene dado por la clausula CONSTRAINT
Responder Con Cita
Respuesta



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 12:48:48.


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