![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola qué tal.
A ver si comprendo, si estás manejando tablas y los datos de éstas vienen del servidor y la relación se establece en tu sistema, con CacheUpdates, ApplyUpdates, CancelUpdates y RevertRecord lo controlas y dejas que el servidor controle qué usuario actualizó primero el registro. También depende el tipo de sistema que estés desarrollando si es web te recomendaría asignar ID's temporales y cuando confirmen los datos entonces cambias la clave por una definitiva. Si es cliente servidor, lo que a mí me ha funcionado es usar TQuery y TClientDataSet para cosas indefinidas (como es tu caso), con eso tienes el control de "todo" lo que mandes a tu DB. Si es multiusuario..., QUE VALIENTE!!!, yo ocuparía todo lo anterior y un lote de aspirinas. ![]() Saludos. Eduardo Laguna
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda) |
|
#2
|
|||
|
|||
|
Gracias eficsa y elaguna, de ambas parte creo que encontré la solución:
Mi DB es en Firebird, los componente son de DBExpress, y la aplicacion es multiusuario Cliente Servidor.... Asi que me tome ya la Panadol ExtraFuerte.... ![]() En firebird realice lo siguiente:
En un TSQLQuery llamado qCapturaId en la propiedad String hice esto:
En el ClientDataSet utilice estos Eventos: AfterApplyUpdate En el Evento AgendaNewRecord
En el Evento ReconcileError
En el evento OnShow de mi formulario pido que me abra el ClientDataSet y lo ponga en modo Insert, Así que simplemente capturo el id que me me genero Firebird lo inserto en mi tabla agenda y mi tabla Recordar. Bueno me funciono, ahora estoy haciendo las prueba con multiples usuarios y me ah trabajado bien... |
|
#3
|
||||
|
||||
|
Qué bien si ya lo tienes controlado.
Lo de que es multiusuario y Cliente-servidor a la vez, creo que mejor deberías de dejarle todo al servidor. Saludos.
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda) |
|
#4
|
||||
|
||||
|
Yo no uso FB, mas bien MYSQL pero supongo que es el mismo principio ya que no conozco bien los generadores de FB. En MySQL usamos un campo autoincrementado para llevar el control de las claves del registro maestro de manera que un pseudocódigo sería esto:
Código:
Abrimos la transaccion; Try Poner la tabla maestra en mode insercion; Llenamos los datos de la maestra; Agregamos las filas que requiéramos en nuestra tabla detalle dejando en blanco con un valor conocido el campo que lo ligará a la maestra (yo uso -1 por ejemplo) Guardamos la maestra; Obtenemos el campo autoincrementado que se asignó al registro maestro; Sustituimos el campo correspondiente con ese valor en nuestras filas de detalle (que aun no se han guardado) Guardamos la tabla detalle (post); Aplicamos los cambios (commit) Except Hacemos un rollback si ocurre cualquier error end; En FB supongo que el generador hace lo mismo que el campo autoincrementado, ahí los expertos nos dirán.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#5
|
|||
|
|||
|
Cita:
Trato de que mi ClientDataSet se abra para obtener mi id en el evento OnEnter pero si utiliza el usuario la tecla Tab no se abre... aun estoy viendo como hago eso... Gracias chicos Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Insertar datos de una Tabla a otra usando where... | verito_83mdq | SQL | 5 | 15-03-2011 20:28:59 |
| Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 16:36:12 |
| Insertar datos cuando una tabla tiene col con identity | La__X | SQL | 10 | 21-01-2006 01:27:23 |
| Como insertar datos de una tabla en otra tabla? | Salomon | Firebird e Interbase | 1 | 28-08-2003 12:29:40 |
|