sdiaz1983
11-01-2008, 04:59:50
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:
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:
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.
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:
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.