Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modificar datos de una tabla con el Edit (https://www.clubdelphi.com/foros/showthread.php?t=63312)

Lizette 09-02-2009 06:15:06

Modificar datos de una tabla con el Edit
 
Buen día, tengo una duda y espero me la puedan resolver, de antemano gracias.

Tengo un formulario en donde involucro 2 tablas, cuando elijo la opcion de modificar y sólo modifico los datos que involucran a una de las 2 tablas, o bien a ninguna, y guardo cambios, que consiste en pasar a la table1 y table2 lo que tienen los respectivos edits. Que debe de pasar, aunque no modifique nada y guarde?

* Se deben, por decir, de sobreescribir los datos.

Esk esa es mi idea, pero en mi aplicación me causa error que no encuentra la columna para realizar la actualización, algo así me marca. En caso que nada más, modifique los datos de una tabla, si modifico datos de ambas tablas no me marca error, pero por decir q no modifique nada y le doy guardar cambios, me da error.

Mi código es el siguiente:

Código Delphi [-]
ADOtblPac.Open;
     
       ADOtblPac.Edit;
       ADOtblPac.FieldByName('CveCte').AsString:=EditCvePac.Text;
       ADOtblPac.FieldByName('NombreC').AsString:=EditNom.Text;
       ADOtblPac.FieldByName('ApellidoC').AsString:=EditApe.Text;
       ADOtblPac.FieldByName('CalleC').AsString:=EditCalle.Text;
       ADOtblPac.FieldByName('NoC').AsInteger:=StrToInt(EditNo.Text);
       ADOtblPac.FieldByName('CPC').AsInteger:=StrToInt(EditCp.Text);
       ADOtblPac.FieldByName('TelC').AsString:=EditTel.Text;
       ADOtblPac.FieldByName('CdC').AsString:=EditCd.Text;
       ADOtblPac.FieldByName('ColC').AsString:=EditCol.Text;
       ADOtblPac.FieldByName('RfcC').AsString:=EditRfc.Text;
       ADOtblPac.Post;
       ADOtblPac.Refresh;
       ADOtblPac.Close;
      
      ADOtblFichaId.Open;
      
       ADOtblFichaId.Edit;
       ADOtblFichaId.FieldByName('IdFicha').AsString:=EditHClin.Text;
       ADOtblFichaId.FieldByName('CveCte').AsString:=EditCvePac.Text;
       ADOtblFichaId.FieldByName('FechaNac').AsString:=EditFNac.Text;
       ADOtblFichaId.FieldByName('LugarNac').AsString:=EditLNac.Text;
       ADOtblFichaId.FieldByName('Ocupacion').AsString:=EditOcup.Text;
       ADOtblFichaId.FieldByName('Escolaridad').AsString:=EditEsc.Text;
       ADOtblFichaId.FieldByName('Sexo').AsString:=ComboSexo.Text;
       ADOtblFichaId.FieldByName('Edocivil').AsString:=ComboEdoCivil.Text;
       ADOtblFichaId.FieldByName('FechaElabExp').AsString:=EditPrimCons.Text;
       ADOtblFichaId.Post;
       ADOtblFichaId.Refresh;
       ADOtblFichaId.Close;

Neftali [Germán.Estévez] 09-02-2009 08:57:15

Estaría bien que escribieras el mensaje de error exacto.
Además podrías ejecutar paso a paso ese código para saber exactamente en qué post te marca el error.

roman 09-02-2009 18:41:08

Además de lo que te comenta Neftalí, pienso que deberías tener más control sobre si mandar a guardar o no y así evitar accesos innecesarios.

Una forma de hacer esto es asociando a todos los edits relacionados con una tabla, el mismo evento OnChange, y en él establecer una variable booleana a true, de manera que cuando vaya a actualizar te fijes en el valor de esa variable. Si es false es que no se ha modificado nnguno de los campos y por tanto te puedes ahorrar la actualización.

// Saludos


La franja horaria es GMT +2. Ahora son las 21:40:10.

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