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 11-11-2008
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
TClienteDataSer, TDataSetProvider, ADO

Hola gente del foro.
Primero que nada les cuento que estoy aprendiendo a usar TClienteDataSer, TDataSetProvider.... mi conexion la establesco con ADOConnection a una BD MySQL.
Me lei varios tutoriales... uno de ellos es este. Segui al pie del cañon tal cual esta en dicho tutorial... y funciono.
Pero a la hora de implementarlo con ADO, me vino el dolor de cabeza.
Si alguien tiene un tutorial hecho con ADO y seria tan amable de ponerlo a mi disposicion... estaré mas que agradecido.
Para usar TClienteDataSer, TDataSetProvider no es aconsejable usar ADO?
__________________
No es lo mejor, pero es lo que hay...
Responder Con Cita
  #2  
Antiguo 11-11-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Ambos componentes son genéricos y pueden ser utilizados con cualquier grupo de componentes para acceso a datos nativo (ADO, dbExpress, IBX, BDE), y cualquier otro que soporte la interfaz IProviderSupport.

Cita:
Empezado por Ayuda de Delphi
The provider communicates with DataSet using the IProviderSupport interface. This interface is available in all datasets, although in TDataSet most of the IProviderSupport methods are simple stubs that either do nothing or generate an exception. The dataset classes that ship with the IDE (dbExpress datasets, BDE-enabled datasets, ADO-enabled datasets, InterBase Express datasets, and client datasets) override these protected methods to implement the IProviderSupport interface in a more useful fashion. If you are using custom dataset components, check with the vendor whether they can work with a dataset provider.
Lo mejor es que expliques cómo lo estás haciendo y qué problemas concretos ocurren. Esperamos más información. Gracias.

Al González.
Responder Con Cita
  #3  
Antiguo 11-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pues funciona perfectamente.
¿Puedes explicar mejor qué problema tienes?

Si quieres ver cómo se hace una conexión ADO (Access) y un TClientDataset puedes revisar el ejemplo "Realizar búsqueda incremental y visualizarla sobre un DBGrid" de mi página web.

El ejemplo es para otra cosa, pero está hecho utilizando TClientDataset, así que tal vez te sirve de muestra.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 11-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, yo hice mis pruebas con BDE, ADO y DBExpress este ultimo es el que utilizo y no tuve problemas, como te dicen, explica mejor el problema exacto que tienes.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 12-11-2008
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
Les planteo el problema, Tengo que realizar una Gestion de Pautas publicitarias y cada pauta con sus respectivos integrantes que la realizaron.

El Id de Pauta es autoincrementable... lo que significa que voy a obtener el nro de pauta despues del hacer un post, luego applyUpdate(0).
El alta sin cargar los item de la pauta se hace sin problema...
La eliminacion de la misma... me dice 'Información de columna clave insuficiente para realizar la operación Update o Refresh'. Que este error me sale creo y segun tengo entendido porque en la tabla existen claves foraneas.
Aqui va una pregunta.... ¿Devido al error que les comente la eliminacion la debo hacer a atraves un query o algo estoy haciendo mal al intentar hacerlo a atraves del ClientDataSet?
Código Delphi [-]
procedure TfrmGestionPautas.actEliminarExecute(Sender: TObject);
begin
 dsPauta.DataSet.Delete;
{dtModulo.qryEliminar.SQL.Clear;
 dtModulo.qryEliminar.SQL.Text:= 'DELETE * FROM pauta WHERE id_pauta = ';
 dtModulo.qryEliminar.SQL.Add(dbgPauta.Fields[0].Text);
 dtModulo.qryEliminar.ExecSQL;
 end;

el ClienteDataSet va el sgte codigo
Código Delphi [-]
procedure TdtModulo.cdspautaAfterDelete(DataSet: TDataSet);
begin
cdspauta.ApplyUpdates(0);
cdspauta.Refresh;
end;

Hasta aqui fue el problema de la eliminación....

He aqui el problema cuando quiero cargar los integrantes de la pauta.
Si bien logre que guarde en la BD... siempre me guarda con la clave de la primera pauta guardada... mire el codigo y no tengo idea porque lo hace... tengo entendido que el DataSetProvider se tiene que encargar de eso.
Otra cosa.. supuestamente tengo cargado los integrantes de la primera pauta... en tiempo de ejecución no lo logro ver los datos como maestro/detalle... ya que para la primera pauta no se refleja sus integrantes...
Para mas detalle las grillas estan enlasadas por datasource--> DataSet--> clientedataset-->DataSetProvider-->qryPauta-->AdoConnection

Espero haber sido claro en lo que estoy preguntado y gracias por su voluntad en ayudar...
__________________
No es lo mejor, pero es lo que hay...
Responder Con Cita
  #6  
Antiguo 13-11-2008
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
Despues de probar y probar logre que ande... pero de todas formas hay algo que no me mantiene conforme....
La relación maestro/detalle anda perfecto siempre y cuando el detalle se haga una consulta a una solo tabla... si yo utilizo tabla extras para armar la consulta la relacion maestro/detalle no funciona...

les dejo la consulta con lo cual no funciona..

Código SQL [-]
SELECT i.id_pauta, i.genero, i.dni,
CONCAT(per.apellido,', ',per.nombre) AS integrante, i.id_act,
 a.nombre
FROM (persona AS per INNER JOIN (integrantes AS i INNER JOIN 
pauta AS pta ON i.id_pauta = pta.id_pauta) ON 
(per.genero = i.genero) AND (per.dni = i.dni))
 INNER JOIN actividad AS a ON per.id_act = a.id_act

Con la consulta anterior estableci la relacion maestro/detalle a traves de id_pauta....
tambien probe haciendo la consulta de la siguiente forma y tampoco funciono...
Código SQL [-]
SELECT i.id_pauta, i.genero, i.dni,
CONCAT(per.apellido,', ',per.nombre) AS integrante, i.id_act,
 a.nombre
FROM (persona AS per INNER JOIN (integrantes AS i INNER JOIN 
pauta AS pta ON i.id_pauta = pta.id_pauta) ON 
(per.genero = i.genero) AND (per.dni = i.dni))
 INNER JOIN actividad AS a ON per.id_act = a.id_act
WHERE i.id_pauta=:id_pauta

No da ningun tipo de error pero tampoco funciona...

por favor alguien se apiade de mi y me ayude a resolver el problema...
desde ya muchas gracias
__________________
No es lo mejor, pero es lo que hay...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Delphi 2007 - Maestro detalle TIBDataSet+TDataSetProvider+TClientDataSet GuerreroDelphi Conexión con bases de datos 5 11-07-2008 22:00:10
Como hacer uso de TDatasetProvider? mpedra Providers 0 24-11-2006 20:12:12
cambiar opciones tdatasetprovider fjolivares Conexión con bases de datos 0 29-12-2003 19:46:28


La franja horaria es GMT +2. Ahora son las 15:34:43.


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