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 02-08-2005
Rafe Rafe is offline
Miembro
 
Registrado: jul 2005
Posts: 26
Poder: 0
Rafe Va por buen camino
al insertar algo en una tabla paradox.....

Hola que tal ? , mi pregunta es la siguiente..... :
Yo tengo una tabla con un listado de productos, representada en un dbgrid, yo quiero que cuando agregue algun producto en esa tabla usando el dbgrid se me agregue en otra tabla que tengo. Uso el evento de la tabla "After Insert" para agregar , pero como hago para almacenar el producto que agrego , lo que hice yo fue esto ... :

Table1.AppendRecord ([table2.FieldByName('Nombre Producto').AsString]
pero me agrega solo vacio , porque no vale nada table2.FieldByName('Nombre Producto').AsString
en la tabla2 es en la que estoy insertando.

Como`podria hacer ??????? gracias!!!!
__________________
[img]c:carita.jpg[/img]
Responder Con Cita
  #2  
Antiguo 02-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Ayuda de delphi
This statement appends a record to the Customer table. Note that Nulls are entered for some of the values, but are not required for missing values at the end of the array argument, i.e. after the Discount field.

Customer.AppendRecord([CustNoEdit.Text,CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]);
Como ves, tienes que pasarle valores a todos los campos.

Otro método podría ser:
Código Delphi [-]
table1.Append;
table1.FieldbyName('lo que sea ').AsString := table2.FieldbyName('nombre producto').asString;

table1.Post;

Otra forma, creando una query de actualizacion:
Código Delphi [-]
var q:Tquery;
begin
  q := Tquery.Create(nil);
try
  q.sql.text := 'INSERT INTO tablaDestino SET campo1 = valor1, campo2 = valor2';
  q.ExecSql;
finally
   freeandnil(q);
end;
end;

A ver cual te gusta más

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 02-08-2005
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Aparte de lo que te bien te dice Lepe, no debes utilizar el evento AfterInser en este caso, ya que este evento va después de insertar pero antes de introducir los datos. Deberías de ponerlo en el evento afterPost de la table2, comprobando si se trata de una inserción.

Código Delphi [-]
if Table2.State = dsInsert then
  // aquí el código para insertar

un saludo
Responder Con Cita
  #4  
Antiguo 02-08-2005
Rafe Rafe is offline
Miembro
 
Registrado: jul 2005
Posts: 26
Poder: 0
Rafe Va por buen camino
pregunta...

Pero como hago para saber cual es el nuevo q inserte(estando siempre en el evento after insert o before insert) ????
__________________
[img]c:carita.jpg[/img]
Responder Con Cita
  #5  
Antiguo 02-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Puedes usar el evento más cercano a guardar los datos: BeforePost, pero haciendo la comprobación del millón:

Código Delphi [-]
  if dsInsert inTableXXX.State then
    // Va a ser guardado por primera vez.
   // todos los datos deberían estar asignados.

La primera vez que se guarde el registro, entrará en el IF, cuando posteriormente se modifique el registro, ya no entra, porque el estado será dsEdit.

Mira en la ayuda de delphi por "TDataSetState type" verás en todos los estados que puede estar un dataset.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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


La franja horaria es GMT +2. Ahora son las 19:27:05.


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