![]() |
Obtener un nuevo ID antes de cargar sus respectivos datos
Hola foro!!!
A lo mejor con mi titulo no fui muy explicativa y clara, pero no sabia como narrar muy breve mi inconveniente.. Por eso mismo aqui les explico.. UTILIZO: *delphi 7 *Firebird *sql manager 2008 *ibdataset, ibquery, ib transaction, ibdatabase, data source (Guardados en un Data Module) Tengo que dar de alta un profesional con sus respectivos datos y las coberturas con las cuales este mismo trabaja.. A dichas cobertuas las saco de una tabla llamada CEBERTURAS_MEDICAS, a esto lo hago con dos grillas relacionadas, una conectada a la tabla COBERTURAS_MEDICAS y la otra grilla conectada a una tabla llamada COBER_PROF(relacion entre Profesionales y coberturas medicas NaN).. Para realizar esto yo necesito obtener el Id del profesional que etoy cargando para asignarles las coberturas en el proceso del alta.. Se entiende?? Entonces yo quiero saber como hago para que cuando ingreso al formulario para dar el alta, me guarde el ID y luego pueda seguir cargando los datos que faltan y las coberturas medicas, para luego guardar todo junto. (Menos el ID porque supuestamente ya estaria guardado).. Y obviamente esos datos que yo de de alta se asignen al ID guardado y que no se genere uno nuevo.. Espero puedan ayudarme, lo necesito. Muchas gracias.- |
Hola Vales.
Si no te entiendo mál, interpreto que querés tener en la mano el ID del médico antes de comenzar a cargar las coberturas ya que después de ingresarlas aún te quedan datos del médico por ingresar. Si es así, creo que podrías hacer un Append/Post sobre la tabla médicos al iniciar proceso de alta y luego poner la tabla en estado de edición (Edit) para continuar con la carga. Si tenés campos requeridos, tendrás que asignarles algún valor por defecto (antes del Post), que luego se modificarán en el transcurso del ingreso. Por otro lado si decidis abortar la operación con Rolback o RollbackRetaining, deshace el Post inicial. Saludos.:) |
Hola
Seguro no entiendo bien. Primero dices que se necesita obtener el ID del profesional, si esta en alguna tabla seria solo hacer una llamada sql a ese campo. Pero. Posteriormente dices que se guarde el ID y Luego los datos segun se vallan obteniendo, para eso se necesita hacer, segun entiendo un Update. Saludos |
Cita:
Precisamente por esa razon, explique bien despues que es lo que realmente queria.. Yo aclare que el titulo no era muy explicativo.. Muchas gracias por tu aporte.. |
Cita:
Hola ecfisa!! Claro, eso es lo que quiero.. vos me habias ayudado con el tema de las grillas, que al seleccionar una cobertura por medio de un boton la pase a la otra grilla.. Yo primeramente guardaba todos los datos de un profesional que daba de alta, co un boton guardar/confirmar y luego a ese profesional le asignaba las coberturas, pero se me hacia muy engorroso porque tengo muchos botones y a la vez al terminar de cargar el profesional luego tengo que cargarle en otro formulario los horaios y demas cosas, entonces se complicaba un poco... Ahora probare lo que me dijiste y te comento como me fue... Comento que en un momento pense alg parecido pero no sabia bien como hacer.. Gracias y saludos.- |
Hola
No solo el titulo: Cita:
|
Cita:
|
Hola
Eso lo entiendo, lo que no entiendo es, cual es el problema?. Si haces una llamada a esa tabla por sql te generara el id de ese profesional, si lo quieres mantener activo puedes colocar ese dato en una variable y usarla en donde la necesites. una vez que tengas ese ID, lo demas es simplemente guardar los datos. Eso es lo que entiendo. Saludos |
Ecfisa, al append/post lo realizo en el Onshow? (En el tbsheet del alta) xq lo realizo alli pero al poner el post me salta error:
Cita:
|
Ya encontre el error tenia algunos campos por defecto Not Null y por eso me saltaba el error, me olvide de tener en cuenta tu ultimo consejo
Cita:
Gracias por tu ayuda, me sirvio de mucho!! .- |
Hola Vales.
Recién entro, me alegra que lo hayas resuelto. :) Saludos. |
Cita:
Cada vez que paso a la solapa (tabsheet) Modificacion, en la base de datos me da de alta igual el id, y cada vez que cierro el formulario, tanto con la crux de la ventana, como del boton salir, igual me guarda el id.. Y eso no tiene q suseder porque no quiero registros en blancon guardaddos solo con los id.. Me entiendes?? |
Hola Vales.
En ese caso podes utilizar CachedUpdates en las tablas relacionadas para evitar que los datos que guardaste del médico se consoliden si deciden salir sin almacenar los cambios. Al guardar, por ejemplo: De este modo, los cambios únicamente se guardarán sí las líneas que contienen ApplyUpdates / CommitRetaining se ejecutan. Saludos. |
Ahhh ok, pero igual yo hice un commitretaining en el onshow despues el post y por eso con el RollbackRetaining no hacia nada... Ahora lo saque y me funciona bien...
Espero no tener mas problemitas.. creo q esto fue lo ultimo.. Muchas gracias ecfisa!! |
La franja horaria es GMT +2. Ahora son las 10:24:15. |
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