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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Actualizar Registros En Una Tabla Paradox

Buen dia a todos, antes que nada queria agradecerles por la colaboracion a todas mis dudas que he formulado en varios temas, vengo a molestarlos uan vez mas con otra duda, pero antes quiero explicar que es lo que estoy haciendo:

Código Delphi [-]
procedure TFrmClientes.BtnConsultarClick(Sender: TObject);
begin
TblCliente.Active:=True;
QryCliente.SQL.Text:='select * from cliente where Cedula=:P1';
QryCliente.Params[0].AsString:=EdtCedula.Text;
QryCliente.RequestLive:=True;
QryCliente.Active:=True;
if (QryCliente.RecordCount>0) then
  begin
  LblNombre.Visible:=True;
  EdtNombre.Visible:=True;
  LblApellido.Visible:=True;
  EdtApellido.Visible:=True;
  LblDireccion.Visible:=True;
  EdtDireccion.Visible:=True;
  LblTelefono.Visible:=True;
  EdtTelefono.Visible:=True;
  BtGuardar.Visible:=False;
  BtBorrar.Visible:=True;
  BtEditar.Visible:=True;
  BtnConsultar.Visible:=False;
  EdtCedula.SetFocus;
  EdtCedula.Enabled:=False;
  end
else
  begin
  MessageDlg('REGISTRO NO EXISTE',mtError,[mbOk],0);
  end;
end;

En este segmento lo que hago es validar si el dato que ingreso en el campo cedula existe en la base de datos, si existe habilita unos objetos que ahi se muestran de lo contrario muestra el mensaje, esta validacion la hago con el objeto de poder actualizar un registro que ya existe en la tabla.

Ahora en este codigo:
Código Delphi [-]
 procedure TFrmClientes.BtEditarClick(Sender: TObject);
begin
EdtCedula.Text:='';
EdtNombre.Text:='';
EdtApellido.Text:='';
EdtDireccion.Text:='';
EdtTelefono.Text:='';
EdtNombre.SetFocus;
QryCliente.UpdateRecord;
QryCliente.Edit;
QryCliente.SQL.Text:='update cliente set Cedula:=P1 and Nombre:=P2 and Apellido:=P3 and Telefono:=P4 and Direccion:=P5';
QryCliente.Params[0].AsString:=EdtCedula.Text;
QryCliente.Params[1].AsString:=Edtnombre.Text;
QryCliente.Params[2].AsString:=EdtApellido.Text;
QryCliente.Params[3].AsString:=EdtTelefono.Text;
QryCliente.Params[4].AsString:=EdtDireccion.Text;
QryCliente.Post;
end;

Lo que trato de hacer es realizar una actualizacion aun registro que ya se encuentra en la tabla pero cuando doy click en el boton para que me ejecute el proceso me aparece un mensaje de error que me dice: "QryCliente: el Dataset no esta en modo insert o update(traduccion al español)", la pregunta que les queria plantear a ustedes es si tengo un error en el codigo, que tengo que corregir, ya que no se cual es el error.

Mil gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 11-01-2008
mzell mzell is offline
Registrado
 
Registrado: jul 2006
Ubicación: La Ceiba, Honduras
Posts: 7
Poder: 0
mzell Va por buen camino
Hola sdiaz1983.

Segun lo que veo, estás combinando dos metodos diferentes para realizar la actualización.

Puedes probar actualizarlo en las siguientes formas:
(estoy asumiendo que los EditBox ya tienen valores asignados)

Forma 1 (Utilizando metodos de dataset):
Código Delphi [-]
procedure TFrmClientes.BtEditarClick(Sender: TObject);
begin
{...}
QryCliente.Edit;
QueryCliente.FieldByName('Cedula').value := EdtCedula.Text;
QueryCliente.FieldByName('Nombre').value := EdtNombre.Text;
QueryCliente.FieldByName('Apellido').value := EdtApellido.Text;
QueryCliente.FieldByName('Telefono').value := EdtTelefono.Text;
QueryCliente.FieldByName('Direccion').value := EdtDireccion.Text;
QryCliente.Post;


Forma 2 (Utilizando los metodos de Query)
Código Delphi [-]
procedure TFrmClientes.BtEditarClick(Sender: TObject);
begin
{...}
QryCliente.SQL.Text:='update cliente set Cedula:=P1 and Nombre:=P2 and Apellido:=P3 and Telefono:=P4 and Direccion:=P5';
QryCliente.Params[0].AsString:=EdtCedula.Text;
QryCliente.Params[1].AsString:=Edtnombre.Text;
QryCliente.Params[2].AsString:=EdtApellido.Text;
QryCliente.Params[3].AsString:=EdtTelefono.Text;
QryCliente.Params[4].AsString:=EdtDireccion.Text;
QryCliente.ExecSQL;
end;

Espero que sea útil esta sugerencia.
Hasta luego.
Responder Con Cita
  #3  
Antiguo 11-01-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
con respecto a su ayuda

Buen dia.

De antemano Le agradezco por haber respondido mi duda, pero probe ambas alternativas, en una me bota un error con respecto a la sentencia
Código Delphi [-]
QryCliente.ExecSql;
que me dice que invalid use of keyword token, y con respecto al otro metodo el registro me lo elimina.

Una cosa que queria depronto complementar es que yo los datos los ingreso al formulario, los editbox no tienen valores preasignados sino que yo se los ingreso estando el programa en ejecucion, no se entonces si en algo cambia las sentencias que usted me explico anteriormente.

Mil gracias por su ayuda y estare pendiente de su respuesta.
Responder Con Cita
Respuesta



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
Actualizar tabla con datos de otra tabla mediante UPDATE Rockin Firebird e Interbase 18 28-11-2007 19:15:42
Registros en DBGrid a una Tabla Paradox koalasoft Varios 9 10-10-2005 21:36:29
Recuperar registros borrados en tabla paradox rmnart Tablas planas 2 16-09-2005 00:58:34
Añadir registros de tabla paradox con asm ciscu Varios 8 03-05-2005 14:12:26
Como actualizar toda una tabla con bastantes registros? IcebergDelphi Firebird e Interbase 4 16-12-2003 14:08:00


La franja horaria es GMT +2. Ahora son las 18:39:14.


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