Hola!
Pues la consulta de este dia es que no se que esta mal al realizar una actualizacion de un registro modificado.
Esta es la descripcion del script que se genero en un componente MDODataset:
Código Delphi
[-]
UPDATE DPPUSR
SET
CODIGO = :CODIGO,
LOGIN = :LOGIN,
CLAVE = :CLAVE,
CATEGORIA = :CATEGORIA,
NOMBRE = :NOMBRE,
PATERNO = :PATERNO,
MATERNO = :MATERNO,
DOMICILIO = OMICILIO,
COLONIA = :COLONIA,
CP = :CP,
CIUDAD = :CIUDAD,
ESTADO = :ESTADO,
RFC = :RFC,
CURP = :CURP,
IFE = :IFE,
TELEFONO = :TELEFONO
WHERE
CODIGO = :OLD_CODIGO
y esta es la manera en que le estoy insertando o actualizando datos:
Código Delphi
[-]
procedure TfrmUsers.btnGuardarClick(Sender: TObject);
var
sContra : String;
i: integer;
begin
btnGuardar.SetFocus;
if VerificaDatos then
begin
with frmDatos.MDOUsers do
begin
sContra := frmDatos.Encripta(edClave.Text);
if cbCategoria.text = 'Instalador' then
i := 1
else if cbCategoria.text = 'Supervisor' then
i := 2
else
i := 3;
if sModo = 'Insertar' then
begin
Insert;
FieldByName('Login').Value := Trim(edLogin.text);
FieldByName('Clave').Value := sContra;
FieldByName('Categoria').Value := i;
FieldByName('Nombre').Value := Trim( edNombre.text);
FieldByName('Paterno').Value := Trim(edPaterno.text);
FieldByName('Materno').Value := Trim(edMaterno.text);
FieldByName('Domicilio').Value := Trim(edDomicilio.text);
FieldByName('Colonia').Value := Trim(edColonia.text);
FieldByName('CP').Value := Trim(edCP.text);
FieldByName('Ciudad').Value := Trim(edCiudad.text);
FieldByName('Estado').Value := Trim(edEstado.text);
FieldByName('Telefono').Value := Trim(edTelefono.text);
Post;
iClave := FieldByName('clave').AsInteger;
lstUsuarios.Items.Add(edLogin.Text)
end
else
begin
Edit;
FieldByName('Codigo').Value := iClave; FieldByName('Login').Value := Trim(edLogin.text);
FieldByName('Clave').Value := sContra;
FieldByName('Categoria').Value := i;
FieldByName('Nombre').Value := Trim( edNombre.text);
FieldByName('Paterno').Value := Trim(edPaterno.text);
FieldByName('Materno').Value := Trim(edMaterno.text);
FieldByName('Domicilio').Value := Trim(edDomicilio.text);
FieldByName('Colonia').Value := Trim(edColonia.text);
FieldByName('CP').Value := Trim(edCP.text);
FieldByName('Ciudad').Value := Trim(edCiudad.text);
FieldByName('Estado').Value := Trim(edEstado.text);
FieldByName('Telefono').Value := Trim(edTelefono.text);
Post;
end;
end;
end;
btnCancelarClick(Sender);
end;
Hasta el codigo de Insertar todo va bien se realiza correctamente. Sin embargo la actualizacion no, me aparece el error de violacion de la clave primaria
---------------------------
Contveh
---------------------------
violation of PRIMARY or UNIQUE KEY constraint "PK_DPPUSR" on table "DPPUSR"
---------------------------
Aceptar
---------------------------
Lo cual entiendo es correcto, sin embargo no logro aterrizar la idea de como evitar eso.
Gracias por su ayuda!!!