Cuando hago modificaciones en una base de datos Delphi solo modifica un registro, ¿Por qué?

Tengo un problema con una base de datos en delphi 7.. El problema es: al momento de modificar los campos de una tabla, nos hace los cambios pero en un registro nada más... Espero que me puedas ayudar... De antemano muchas gracias... Que estés bien

1 respuesta

Respuesta
1
¿Cómo qué en un registro nada más?.
Dame más datos que estas haciendo, que componentes estas usando, que base de datos estas usando y dame un ejemplo de cuando solo te modifica un registro.
Bueno si esta muy raro, pero veamos.
El proceso debe ser así:
Tenemos un TTable el cual lo conectamos a nuestra base de datos, luego le asignamos la tabla que queremos desplegar, ¿correcto?.
Luego ponemos un TDataSource el cual lo conectamos a nuestro TTable, ok.
Luego ponemos un DBGrid al cual le conectamos nuestro DataSource. Ok.
Después ponemos el componente TDBNavigator al cual también le conectamos nuestro dataSource, ok.
Ahora en nuestro TTable tiene un evento llamado onPost el cual se ejecuta al momento de grabar, en ese evento ponemos el codigo: Table1.ApplyUpdates;
Luego en evento onShow de tu form pones Table.Active := true;
Si te das cuenta con el DBNavigator podrás editar, insertar, borrar etc.. sobre el mismo DBGrid. Ok.
Haz este ejemplo y checa a ver si te hace bien las operaciones.
Ok saludos.
Ok... mira a ver si me explico, lo que pasa es que: estoy utilizando como motor de BD el paradox7, y estoy utilizando 6 tablas(tblalumno, tblserviciosbd, tblfolios, tblsaldos, tblusuarios y tblcargocta)y por el momento nada más estoy utilizando puros dbedit y botones para las operaciones, y mi problema es el siguiente: que al momento de hacer una modificación en la tabla de saldos la cual tiene como atributos: No_Control, Nip y Saldo, el primer registro que tengo vamos a suponer que esta así:
1er registro-
No_Control: juan manuel
Nip: 1111
Saldo: 100
2do registro-
No_control: carlos
Nip: 2222
Saldo: 50
Entonces quiero aumentarle el saldo al segundo registro, le quiero poner $100 a su cuenta, pero el registro que se modigica es siempre el primero, la consulta esta bien por que si me arroja los datos de los registros que le pido, eso es a grandes rasgos mi pequeño problema que no eh podido resolver
te pido de favor si me puedes echar la mano... espero que si... muchísimas gracias
que estés bien
mi e-mail: [email protected]
Si perdón el evento es afterPost osea después de grabar.
En cuanto a los DBEdit y botones que estas utilizando no hay problema, yo te decía que hicieras una prueba nada más haciendo lo que te mencione, pero si lo que tienes son botones entonces supongo que tendrás lo siguiente:
Supongo que los DBEdits los tienes conectados a un dataSource y el dataSource pues a tu Table ok.
Y por supuesto cada DBEdit a un campo en especifico ok.
Ahora digamos que queremos insertar y tenemos un botón para eso. Entonces dentro del botón pones Table1. Insert; ok
Eso automáticamente te limpiara los DBEdits y podrás capturar información ok.
Ahora para grabar tenemos otro botón en el cual tienes Table1. Post; ok y como te mencione en el evento afterPost del Table pon Table1. ApplyUpdates; esto te hace el commit a tu base de datos.
Ahora para borrar tenemos otro boton en el cual se tiene Table1.Delete; ok y en el evento afterDelete del Table pones tambien Table1.ApplyUpdates;
Para cuando haces un Edit no requieres de ningún botón ni código extra simplemente modificas directamente la información de algún DBEdit presionas el botón de grabar que ya tienes y listo.
Te resalto que el applyUpdates deberá estar solo en los eventos AfterPost y afterDelete del Table. Ok
Checalo y me dices que paso.
Esa me parece una muy buena opción, pero el evento que me sugieres se llama "OnPost" o "BeforePost" o "OnPostError", ¿lo qué pasa es que no vi el evento "OnPost"... ah y otra cosa lo que estoy utilizando en lugar del DBGrid son puros DBEdit y en lugar del DBNavigator son botones... no habrá problema?
Espero que no...
Saludos!
Muchísimas gracias amigo... si me sirvió y ademas aprendí algo nuevo gracias a ti... nos vemos luego con más preguntas... je je
cuidate... nos vemos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas