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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2003
mnorza mnorza is offline
Registrado
 
Registrado: ago 2003
Posts: 7
Poder: 0
mnorza Va por buen camino
insertar en tablas maestro detalle

Hola amigos:
Pretendo insertar registros en una tabla maestro si en la tabla detalles no hubo excepciones, es decir, quiero que la transaccion se confirme hasta que la detalle no tenga problema y si tiene problemas pues no insertar nada en la tabla maestro.
Desde ya, gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 23-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Mantén todas las operaciones (contra la tabla maestra y la de detalle) dentro de la misma transacción. Si al final todo fue bien --> Commit, si hubo problemas --> Rollback.

Saludos.
Responder Con Cita
  #3  
Antiguo 24-10-2003
mnorza mnorza is offline
Registrado
 
Registrado: ago 2003
Posts: 7
Poder: 0
mnorza Va por buen camino
Hola:
Ya hice lo que me sugeriste, sin embargo al momento de insertar los registros de la tabla detalle el sistema se queda esperando y no hace nada. La tabla maestro desde luego que tiene una relacion con la detalle de uno a muchos. Tal vez al insertar los registros en la tabla detalle esta espera que antes se haya confirmado la transaccion en la maestro para poder insertar sus registros. Bien pues espero me puedas ayudar nuevamente, desde ya, gracias.
Responder Con Cita
  #4  
Antiguo 24-10-2003
mnorza mnorza is offline
Registrado
 
Registrado: ago 2003
Posts: 7
Poder: 0
mnorza Va por buen camino
Hola:
Ya hice lo que me sugeriste, sin embargo solo funciona si quito en el manejador de base de datos la relacion que verifica que el registro que se esta insertando en la detalle se encuentre en la maestro y yo quisiera conservar esta relacion. De antemano gracias por tu ayuda.
Responder Con Cita
  #5  
Antiguo 24-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por mnorza
Ya hice lo que me sugeriste, sin embargo al momento de insertar los registros de la tabla detalle el sistema se queda esperando y no hace nada.
lo siento, no entiendo qué quieres decir con: "se queda esperando y no hace nada".

Para no ir a ciegas convendría que dieses más datos: servidor (InterBase, Firebird, ...), versión (del servidor y del cliente); si el problema aparece desde una aplicación cliente (supongo que escrita Delphi o C++Builder): componentes de acceso utilizados y un pequeño ejemplo del código donde está el problema.

Saludos.
Responder Con Cita
  #6  
Antiguo 25-10-2003
mnorza mnorza is offline
Registrado
 
Registrado: ago 2003
Posts: 7
Poder: 0
mnorza Va por buen camino
Bien:
El servidro es SQL Server 2000, estoy utilizando el BDE de Delphi 6.
Mi codigo es mas o menos el siguiente

Comienza la insercion de registros:

datamodule1.Dtabase.StartTransaction;
try
datamodule1.UpdSQLRegPed.Query[ukinsert].ParamByName('id_pedimen').AsString :=txtnumped.Text;
.
.
.
etc
datamodule1.UpdSQLRegPed.ExecSQL(ukinsert);

///El codigo anterior es para escribir en la tabla maestro acto seguido:

El codigo para la tabla detalle es similar al anterior.
Si no se levanta ninguna excepcion pues le doy
COMMIT;
si se levanta alguna:
except
datamodule1.Dtabase.Rollback;

Todo lo anterior esta bien hasta la insercion en la maestro pero cuando trato de insertar el primer registro en la tabla detalle ya no muestra el cursor del debuger, se pierde, es cuando te comentaba que si no estara esperando que se confirme la insercion en la tabla maestro para que la detalle pueda insertarse.
Ahora la nueva es que quite en el servidor la regla de validacion maestro/detalle para inserciones, es decir, el servidor verifica que el registro que inserte en la detalle este en la maestro primeramente, bueno pues esta regla la quite y ahora corro el programa y tu sugerencia funciona correctamente. Ahora mi pregunta es si se puede mantener la regla que te comente en lineas anteriores ya que me es de utilidad.
De nuevo gracias.
Responder Con Cita
  #7  
Antiguo 25-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por mnorza
El servidro es SQL Server 2000, estoy utilizando el BDE de Delphi 6.
¿y qué hace una consulta de SQL-Server 2000 en el foro de "InterBase y Firebird"? :?

Bueno, como no tengo claro donde está el problema (en el servidor o en el cliente), ya que yo no trabajo con SQL-Server, te muevo el hilo a "Conexión con bases de datos".

Saludos.

P.D. Veo que eres nuevo por estos foros, así que te aconsejo la lectura de la Guía de estilo de los foros, y la recomendación de ubicar tus mensajes en el foro adecuado. En éste ("InterBase y Firebird"), como comprenderás, tu mensaje está fuera de tema.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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:42:58.


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