Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al usar un mismo ID en formularios distintos (https://www.clubdelphi.com/foros/showthread.php?t=74832)

Vales08 13-07-2011 20:24:21

Problema al usar un mismo ID en formularios distintos
 
Hola Foro!!!~

Haber si me puedo explicar bien, para que me entiendan lo que quiero hacer..
Estoy realizando un programa para sacar turnos en un consultorio.. Para lo cual necesito ingresar registros de Profesionales y sus correspondientes horas y dias que trabaja.. Para eso: Tengo una tabla PROFESIONALES y CALENDARIO (Relacion de 1aN).

Tengo un formulario en el cual cargo registros de Profesionales (Doy de alta), al presionar el botón ~Aceptar/Guardar~ se me abre otro formulario en el cual tengo que ingresar los horarios y días que este último profesional ingresado, trabaja. Pero el problema está en que yo necesito que esos horarios y días se le sean asignados al ID del profesional que estoy cargando.

La pregunta sería, Cómo obtener el último ID que se cargo de Profesionales para usarlo en el formulario de cargar horarios y días, y que estos datos se le asignen a ese mismo ID y no a otro..?

Me explico o hice mucho lio??
Espero se haya entendido y puedan ayudarme..
Desde ya muchas gracias.

PD: Utilizo Dlephi7, Firebird, sql manager 2008..

oscarac 13-07-2011 20:40:15

porque no al grabar en el segundo formulario, asignas a una variable el codigo del especialista que quieres asignar
o si esta en una tabla o query podrias hacer referencia a la tabla o query

algo mas o menos asi
Código Delphi [-]
 
form2.GrabarDatos
Begin
   tblCalendario.Append
   tblCalendarioProfesional.value := Form1.TablaProfesionalCodigo.value
  ...
...
...
end;

Vales08 13-07-2011 20:55:32

Yo hago este codigo:
Código Delphi [-]
DM.DSET_calendarioID_PROF.Value:=DM.DSET_profID_PROF.Value;
que supongo es lo que me estas señalando vos.
DM: Data Module;
DSET_calendario: Data Set Calendario
DSET_prof: Data Set Profesional.

Pero no me guardaba el ID.. Puede ser porque yo tengo un append cuando presiono el boton Aceptar Profesional, entonces ya no me tome el id que guarde? y me tome el registro en blanco?

Si lo pongo en estado de Edicion, al parecer me funciona...

oscarac 13-07-2011 21:01:48

entonces creo que primero deberias hacer un post para que grabe el codigo del profesional y luego empezar a llenar los datos del calendario
o en su defecto saliendo del edit donde se almacena el codigo puedes asignarlo a una variable

Código Delphi [-]
 
tblCalendarioProfesional.value := Form1.VariableCodigo

ecfisa 13-07-2011 21:23:06

Cita:

La pregunta sería, Cómo obtener el último ID que se cargo de Profesionales
Hola.

Otra forma de obtener el último ID ingresado es mediante una consulta:
Código Delphi [-]
...
  with IBQuery1 do
  begin
    Close;
    SQL.Text:= 'SELECT MAX(PROFESIONAL_ID) AS MAX_ID FROM PROFESIONALES';
    Open;
    Max_ID:= FieldByName('MAX_ID').AsInteger;
  end;
...

Saludos.

Vales08 13-07-2011 21:30:26

Sisis las dos formas andan.

Código Delphi [-]
DM.DSET_calendarioID_PROF.Value:=DM.DSET_profID_PROF.Value;

Código Delphi [-]
tblCalendarioProfesional.value := Form1.VariableCodigo

Código SQL [-]
...
  with IBQuery1 do
  begin
    Close;
    SQL.Text:= 'SELECT MAX(PROFESIONAL_ID) AS MAX_ID FROM PROFESIONALES';
    Open;
    Max_ID:= FieldByName('MAX_ID').AsInteger;
  end;
...

Muchas gracias, ya me funciona... Aunque no fue necesario la consulta sql, con el primer odigo me funciono..
Saludos.~


La franja horaria es GMT +2. Ahora son las 20:27:07.

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