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; end
else MessageDlg('Debe seleccionar un registro para eliminarlo',
mtInformation, [mbYes], 0);
Salu2.