Ver Mensaje Individual
  #6  
Antiguo 24-11-2004
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Reputación: 21
defcon1_es Va por buen camino
Hola,
Cita:
Empezado por Calderin
Tengo definido un parámetro :ID, además en el caso de no existir el parámetro
¿Cómo se explica que elimine el registro seleccionado?
Realmente NO tienes ese parámetro, a menos que esté definido en la sentencia SQL de la propiedad SELECTSQL.
En un IBDataSet, sólo tienes acceso a los parámetros que pongas en la sentencia SELECTSQL.

Los "parámetros" de las sentencias INSERTSQL, UPDATESQL y DELETESQL los "sustituye" (internamente)
por el valor de los campos que tienen el mismo nombre, por eso te borra el registro.

Pregunta: Cuando haces un INSERT/APPEND o EDIT del IBDataSet,
¿a que NO le pasas todos los "parámetros" de las sentencias INSERTSQL o UPDATESQL como parámetros (con ParamByName),
sino que asignas los valores correspondientes a los campos (FieldByName o Field[x])?

Yo haría lo siguiente:
Código Delphi [-]
  if not(dmPrincipal.dsetFamilia.FieldByName('ID').IsNull)
  then begin
    if MessageDlg('¿Seguro que desea borrar el registro seleccionado?', 
                       mtInformation, [mbYes, mbNo],0) = mrYes 
    then dmPrincipal.dsetFamilia.Delete; // Borra el reg. seleccionado
  end
  else MessageDlg('Debe seleccionar un registro para eliminarlo', 
                         mtInformation, [mbYes], 0);

Salu2.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita