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 07-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Question DBGrid y Transacciones ADO

Hola a todos

Es claro que normalmente en una DBGrid se pueden hacer modificaciones, eliminaciones e inserciones directamente, pero me asalta la duda si existe alguna manera en la que este tipo de operaciones se pueda manejar con transacciones o de alguna otra manera. Lo que yo he notado es que la DBGrid hace un post automatico cuando se pasa de una fila a otra.

La pregunta es porque estoy migrando una aplicación que esta en FoxPro 2.6 y alli los usuarios dentro de una grilla hacen basicamente inserciones y modificaciones, y cuando ya tienen listos todos los datos que requieren, los confirman con un boton.

No se si me explique claramente

Agradezco cualquier ayuda que me puedan brindar.
Responder Con Cita
  #2  
Antiguo 07-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Haciendo una búsqueda (uuf) encontré esto:
Solucion de [b]roman[/]
http://www.clubdelphi.com/foros/show...+clientdataset
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 07-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Otra cosa de la cual no me habíá percatado: Este tema no tiene que ver con OOP
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 07-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
pido disculpas, lo puse en OOP por la DBGrid.

Revise el link, pero no se si entendi bien, debo trabajar con un ADODataSet en lugar del ADOTable?
Responder Con Cita
  #5  
Antiguo 07-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Cita:
Empezado por roman
Otra forma de hacerlo- la recomendada en la ayuda de Delphi -es a través de un Provider y un ClientDataSet. Conectas el Provider al Table o dataset que uses mediante su propiedad DataSet y conectas el ClientDataSet al Provider mediante su propiedad ProviderName. El DBGrid lo conectas a través de un DataSource al ClientDataSet en lugar del Table. Los mismos métodos mencionados antes, ApplyUpdates y CancelUpdates aplican, pero ahora al ClientDataSet.
Nunca se mencionó AdoDataSet, pero si de un Dataset(que puede ser un AdoTable, Table, AdoQuery, Query,...)
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 07-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
perdon de nuevo, lo que sucede es que nunca habia utilizado un ClientDataSet y por eso lo estaba confundiendo con el ADODataSet.

Ya entendi como es el asunto y estoy haciendo unas pruebas para ver como funciona.

Gracias Van
Responder Con Cita
  #7  
Antiguo 07-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Dentro de los datos que necesito insertar en la grilla hay un valor autonumerico, pero me lanza un error de violación de llave cuando paso al tercer registro, y el valor autonumerico no se va llenando automaticamente.

Si quito de la tabla el Incremento automatico en SQL Server e ingreso el valor manualmente en la grilla no presenta problemas.
Responder Con Cita
  #8  
Antiguo 07-10-2005
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Pues si usas ADO al crear la forma del grid puedes usar
Conexion.BeginTrans;

y en el boton de aceptar cambios pones:
Conexion.CommitTrans;

y para cancelar cambios:
Conexion.RollbackTrans;

notese que no se refiere a la tabla o query, se refiere al componente de conexion
Responder Con Cita
  #9  
Antiguo 07-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Gracias Luis, la verdad es que los inconvenientes los estoy teniendo con el bendito autonumerico, sea con transacciones o Clientdataset. En las transacciones porque al darle rollback no guarda nada pero si incrementa el autonumerico, y en los Clientdataset no me genera el autonumerico automaticamente.

Sera que me estoy complicando mucho?
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 02:08:29.


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