Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-06-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Question Ahora el error es al editar

¡Les cumplo la amenaza de regresar con este tema!

Resulta que el codigo ya me funciona para insertar sin embargo cuando edito, los campos editados NO se actualizan en el registro que tengo seleccionado. Se actualiza otro registro.

Yo tengo una lista (listBox) donde recupero de la BD los usuarios registrados. Cada vez que hago click sobre ella recupero los datos del usuario seleccionado. Si necesito modificar algo tengo un boton "Modificar" que habilita los text box necesarios. cuando hago click en el boton "Guardar" se ejecuta el codigo que ya se menciono anteriormente y que vtdeleon corrigio amablemente sin embargo como comente anteriormente se actualizan los campos del primer item del listbox. Entonces la conclusion es que antes de colocar el dataset en EDIT le debo de indicar el registro a modificar por medio de su Primary Key. ¿Eso como lo hago? ya que no puedo hacerlo despues de la sentencia EDIT pues al ser una clave primaria se violan las reglas de integridad.

Agradesco su ayuda.
Responder Con Cita
  #2  
Antiguo 14-06-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Cool solucionado..........................

Bueno......

Como no vi demasiado interes en esto lo que hice fue cambiar mi codigo a esto:

Código Delphi [-]
//*******************************Boton de Guardar***********************//
procedure TfrmUsers.btnGuardarClick(Sender: TObject);
var
    sContra : String;
    i: integer;
begin
  //Con el dataset MDOUsers
    with frmDatos.MDOQuery1 do
      begin
        //Verifica que los campos login, contraseña y confirmacion no esten vacios
        if VerificaDatos then
          begin
            //Encriptamos la contraseña
            sContra := frmDatos.Encripta(edClave.Text);
            //Segun el item seleccionado en el Combo
            case cbCategoria.ItemIndex of
              1: i := 1; //'Instalador'
              2: i := 2; // Administrador
              3: i := 3; // Supervisor
              4: i := 4; // Usuario
            end;
            //Si estamos en el modo INSERTAR (Boton Agregar)
            if sModo = 'Insertar' then
              begin
                close;
                sql.Clear;
                sql.Add('INSERT INTO dppUSR (login,clave,categoria,nombre,');
                sql.Add('paterno,materno,domicilio,colonia,cp,ciudad,estado,');
                sql.Add('telefono) ');
                sql.add('VALUES(');
                sql.Add('''' + edLogin.Text + ''',''' + sContra + ''',');
                sql.add('''' + IntToStr(i) + ''', ''' + edNombre.text + ''',');
                sql.Add('''' + edPaterno.Text + ''',''' + edMaterno.Text+''',');
                sql.add('''' + edDomicilio.Text + ''','''+edColonia.Text+''',');
                sql.add('''' + edCP.Text + ''','''+ edCiudad.Text + ''',');
                sql.Add('''' + edEstado.Text + ''',''' + edTelefono.Text +''')');
                ExecSQL;
              end
            else
              begin
                close;
                sql.Clear;
                sql.Add('UPDATE dppUSR SET');
                sql.add('Login = ''' + edLogin.Text + ''',');
                sql.add('Clave = ''' + sContra + ''',');
                sql.add('Categoria = ''' + IntToStr(i) + ''',');
                sql.add('Nombre = ''' + edNombre.text + ''',');
                sql.add('Paterno = ''' + edPaterno.Text + ''',');
                sql.add('Materno = ''' + edMaterno.Text + ''',');
                sql.add('Domicilio = ''' + edDomicilio.Text + ''',');
                sql.add('Colonia = ''' + edColonia.Text + ''',');
                sql.add('CP = ''' + edCP.Text + ''',');
                sql.add('Ciudad = ''' + edCiudad.Text + ''',');
                sql.add('Estado = ''' + edEstado.Text + ''',');
                sql.add('Telefono = ''' + edTelefono.Text + '''');
                sql.Add(' WHERE Codigo = ''' + IntToStr(iCodigo) + '''');
                ExecSQL;
              end;
            //Añadimos a la lista de usuarios el nuevo miembro
            if sModo = 'Insertar' then
              lstUsuarios.Items.Add(edLogin.Text);
          end;
      btnCancelarClick(Sender);
      end;
end;

y pues sanseacabo el problema! cuando edito lo hace en el registro correcto, no protesta porque el campo login este declarado como UNIQUE y pues todos contentos!!!! .....


mmmmmm eso ultimo ni yo me lo crei! Insisto si la sentencia sql ya esta declarada en el "dataset editor" porque no me funciona correctamente o yo la estoy llamando en forma equivoca, algo que debere de continuar investigando pero por el momento ya resolvi mi problema y la aplicacion esta trabajando.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 14:29:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi