Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Realizar un Update con MDO

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; //Clave Primaria
                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!!!
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Informacion de columna clave insuficiente para realizar la operacion update o refresh Cabanyaler MS SQL Server 11 04-06-2007 13:25:04
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
El Update permite realizar actualizaciones sobre... ilichhernandez SQL 1 07-12-2005 17:37:08
Realizar un UPDATE solo de aquellos registros que han variado olbeup SQL 3 03-08-2005 17:56:58
¿Como realizar bien un UPDATE? judoboy SQL 11 13-05-2003 14:02:38


La franja horaria es GMT +2. Ahora son las 13:40:38.


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
Copyright 1996-2007 Club Delphi