![]() |
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 |
Hola.
Para acceder a Access te recomiendo que utilizes los componentes ADO en lugar de los componentes BDE. Saludos. |
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 :rolleyes: , y me urge la terminacion de la aplicacion. De ahi que optara por utilizar BDE. Muchas gracias por todo y a todos Salu2 |
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 |
Cita:
Cita:
Cita:
NOTA : Para conectar a Access, selecciona el Microsoft Jet 4.0 OleDB Provider. Saludos. |
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 |
La franja horaria es GMT +2. Ahora son las 21:38:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi