PDA

Ver la Versión Completa : Insertar 2 filas al mismo tiempo en un DBGrid


drakan2k3
16-07-2003, 20:49:10
Salu2 foristas.
El motivo de esta pregunta es el siguiente: Estoy desarrollando un sistema contable y el desarrollo va bien pero me encontré con un problema, que es el siguiente: tengo un dbgrid el cual me muestra unas cuentas contables, asociadas a un código, el problema es que en este dbgrid debo añadir 2 filas al mismo tiempo, cosa que no he podido, ya que solo puedo añadir una sola fila.
Si alguien sabe como poder añadir 2 filas al mismo tiempo, me ayude por favor.
De ante mano muchas gracias.

PD: El dbgrid lo tengo vinculado con un dbnavigator y para añadir una nueva fila utilizo la siguiente sentencia:
DBNavigator1.BtnClick( nbInsert );

__cadetill
16-07-2003, 21:08:46
sabes los valores que tienes que añadir a la tabla (mas que al dbgrid)?
Si es asi, puedes lanzar 2 inserts seguidos.

Sino, creo que no sera posible lo que quieres lograr. En una tabla solo puedes añadir un registro cada vez

andres1569
16-07-2003, 21:09:47
Hola:

Al mismo tiempo, en rigor, es imposible, deberá ser una detrás de la otra, aunqeu el usuario note que han sido al mismo tiempo. Prueba este código, adaptado a tus necesidades, y es mejor que uses el método Insert o Append de la fuente de datos para añadir registros, y no llamara al click del DBNavigator:


// DATAMODULE.Table1 es la tabla sobre la que se apoya el Grid
with DATAMODULE.Table1 do
begin
Insert; // Append si quieres añadirlo al final
FieldByName('ID').AsInteger := NuevoID;
FieldByName('Nombre').AsString := 'Roberto';
...
Post;

Inc (NuevoId); // Para no generar un error de clave duplicada

Insert; // Append si quieres añadirlo al final
FieldByName('ID').AsInteger := NuevoID;
FieldByName('Nombre').AsString := 'Elena';
...
Post;
end;Si no te deja añadir dos filas, quizás sea porque asignas al campo de la clave primaria el mismo valor, y no admite duplicados (fíjate en el campo ID del ejemplo).