Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
Agregar registros a una tabla con datos

Hola a todos,

usando delphi 7 y mis tablas en access.
tengo lo siguiente:

tabla detalle
cns__detalle
numero_transacion
fecha_transacion
cuenta
descripcion
debito
credito


tabla detalle_cheques
cns_cheques
numero_cheques
fecha_cheques
cuenta_cheques
descripcion_cheques
debito_cheques
credito_cheques

lo que quiero es lo siguiente a mi tabla detalle agregarle los registros de
mi tabla detalle_cheques en un parametro de fecha.

mi tabla detalle tiene registros.

si me pueden dar una manito por fa.

gracias mil

Alcides
Rep.Dom.
Responder Con Cita
  #2  
Antiguo 06-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por alcides
lo que quiero es lo siguiente a mi tabla detalle agregarle los registros de mi tabla detalle_cheques en un parametro de fecha.
No entiendo esto de "en un parametro de fecha"... Quieres agregar en la tabla detalle los registros de detalle_cheques que tengan cierto valor en fecha??

Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3)
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABLA2
WHERE CAMPOX = :Parametro
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 06-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
gracias delphi.com.ar,

parametro de fecha: los registros que esten contenido por ejemplo entre las fechas 01/02/2005 hasta 28/02/2005.


gracias mil

Alcides
Rep.Dom.
Responder Con Cita
  #4  
Antiguo 07-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3)
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABLA2
WHERE CAMPOX Between :Parametro1 and :Parametro2
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 07-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
Código:
INSERT INTO Detalle (numero_transacion, fecha_transacion, debito, credito)
SELECT numero_cheques, fecha_cheques, debito, credito
FROM detalle_cheques
WHERE fecha_cheques Between :PFECHA_INICIAL and :PFECHA_FINAL
esto es lo que tengo y presenta el error 'commandtext does not return a result set'
Responder Con Cita
  #6  
Antiguo 07-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Creo uqe estas usando Open en vez de ExecSql
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 10-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
gracias vtdeleon,
una duda

esto es lo que tengo.
Código Delphi [-]
qry_detalle.SQL.Clear;
try
  qry_detalle.SQL.Add('INSERT INTO DETALLE(numero_transacion, fecha_transacion, cuenta, descripcion, debito, credito)');
  qry_detalle.SQL.Add('SELECT numero_cheques, fecha_cheques, cuenta, descripcion, debito, credito');
  QRY_DETALLE.SQL.Add('FROM detalle_cheques');
  qry_detalle.SQL.Add('WHERE fecha_cheques Between :PFECHA_INICIAL and :PFECHA_FINAL');
  qry_detalle.ExecSQL;

y mi adoquery, como lo defino en el form.

gracias mil

Alcides
Rep.Dom.

Última edición por delphi.com.ar fecha: 10-01-2006 a las 20:52:11.
Responder Con Cita
  #8  
Antiguo 10-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te faltaría pasarle los valores a los parámetros

Código Delphi [-]
  ...
  qry_detalle.SQL.Add('WHERE fecha_cheques Between :PFECHA_INICIAL and :PFECHA_FINAL');

  qry_detalle.Params[0].AsDateTime := dtpFechaDesde.Date;
  qry_detalle.Params[1].AsDateTime := dtpFechaHasta.Date;

  qry_detalle.ExecSQL;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
Gracias Delphi.com.ar,

cambie y realice esta rutinita para agregar registro de una tabla a otra y resulta que solo me agrega un registro y finaliza.


Código PHP:
       Tbl_Detalle.Insert;
       
qry_detalle_cheques.Close;
       
qry_detalle_cheques.Parameters.ParamByName('pfecha_inicial').Value := strtodate(fecha_inicial.Text);
       
qry_detalle_cheques.Parameters.ParamByName('pfecha_final').Value   := strtodate(fecha_final.Text);
       
qry_detalle_cheques.open;
    if 
qry_detalle_cheques.RecordCount 0 then begin
       Tbl_detalle
.FieldByName('numero_transacion').Value := qry_detalle_chequesnumero_cheques.Value;
       
Tbl_detalle.FieldByName('fecha_transacion').Value  := qry_detalle_chequesfecha_cheques.Value;
       
Tbl_detalle.FieldByName('cuenta').Value            := qry_detalle_chequescuenta_cheques.Value;
       
Tbl_detalle.FieldByName('descripcion').Value       := qry_detalle_chequesdescripcion.Value;
       
Tbl_detalle.FieldByName('debito').Value            := qry_detalle_chequesdebito.Value;
       
Tbl_detalle.FieldByName('credito').Value           := qry_detalle_chequescredito.Value;
       
Tbl_detalle.FieldByName('ccdebito').Value          := 0;
       
Tbl_detalle.FieldByName('cccredito').Value         := 0;
       
Tbl_detalle.FieldByName('dia_transacion').Value    := 0;
       
Tbl_detalle.FieldByName('mes_transacion').Value    := 0;
       
Tbl_detalle.FieldByName('ano_transacion').Value    := 0;
       
Tbl_detalle.FieldByName('monto').Value             := 0;
       
Tbl_detalle.FieldByName('posteada').Value          := ' ';
       
Tbl_detalle.FieldByName('usuario').Value           := ' ';
       
Tbl_detalle.Post;
end

porque solo agrega uno? y luego finaliza

gracias mil,

Alcides
Rep. Dom.
Responder Con Cita
  #10  
Antiguo 13-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Chequiaste si el rango de fecha solo arroja un solo registro?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #11  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
gracias vtdeleon,

en el rango de fecha hay 18 registros.


Gracias mil,

Alcides
Rep.Dom.
Responder Con Cita
  #12  
Antiguo 13-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Bueeno, no se me ocurre mas nada, solo veo algo extra~o y que deberia darte error. Por que usas Open y no ExecSQL. Es una transaccion de insercion y no devolvera nada. No te da error?

cual es el rango de fecha?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #13  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
gracias vtdeleon,

el rango de fecha es desde 01/06/2005 hasta 30/06/2005
lee el primer registro y sale

no me da ningun error, sencillamente termina.


Gracias mil,

Alcides
Rep.Dom.
Responder Con Cita
  #14  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
el registro que me transfiere es el ultimo del rango de fecha,


Gracias mil,

Alcides
Rep. Dom.
Responder Con Cita
  #15  
Antiguo 13-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Has una prueba

Conecta un Dbgrid a ese dataset, quita la linea de Insert, dejando el Select, eeh bueno, arreglalo de manera que puedas mostrarlo en un DBgrid y mira a ver que registros te salen

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #16  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
Gracias vtdeleon,

ok, voy hacer la prueba.



Gracias mil,

Alcides
Rep. Dom.
Responder Con Cita
  #17  
Antiguo 13-01-2006
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
gracias mil,
esta es la rutina que finalmente me funciono perfectamente,

Código PHP:
          Tbl_Encabezado.Insert;
          
qry_Encabezado_cheques.Close;
          
qry_Encabezado_cheques.Parameters.ParamByName('pfecha_inicial').Value := strtodate(fecha_inicial.Text);
          
qry_Encabezado_cheques.Parameters.ParamByName('pfecha_final').Value   := strtodate(fecha_final.Text);
          
qry_Encabezado_cheques.Open;
    While 
not qry_Encabezado_cheques.eof do begin
          Tbl_Encabezado
.FieldByName('numero_transacion').Value := qry_encabezado_chequesnumero_cheques.Value;
          
Tbl_Encabezado.FieldByName('fecha_transacion').Value  := qry_encabezado_chequesfecha_cheques.Value;
          
Tbl_Encabezado.FieldByName('tipo_documento').Value    := 1;
          
Tbl_Encabezado.FieldByName('concepto').Value          := qry_encabezado_chequesconcepto_cheques1.Value;
          
Tbl_Encabezado.FieldByName('valor_transacion').Value  := qry_encabezado_chequesvalor_cheques.Value;
          
Tbl_Encabezado.FieldByName('codigo_banco').Value      := 0;
          
Tbl_Encabezado.FieldByName('debito').Value            := qry_encabezado_chequesdebito.Value;
          
Tbl_Encabezado.FieldByName('credito').Value           := qry_encabezado_chequescredito.Value;
          
Tbl_Encabezado.FieldByName('beneficiario').Value      := qry_encabezado_chequesbeneficiario_cheques.Value;
          
Tbl_Encabezado.FieldByName('nulo').Value              := qry_encabezado_chequesnulo_cheques.Value;
          
Tbl_Encabezado.FieldByName('posteada').Value          := ' ';
          
Tbl_Encabezado.Post;
          
Tbl_Encabezado.Close;
          
Tbl_Encabezado.Open;
          
Tbl_Encabezado.Insert;
          
qry_Encabezado_cheques.next
end 
Gracias mil,


Alcides
Rep.Dom.
Responder Con Cita
  #18  
Antiguo 13-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Por que Etiqueta [php]???
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #19  
Antiguo 18-01-2006
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
Pregunto? Se podra ejecutar la misma sentencia que el Insert pero para la sentencia UPDATE ????

Gracias
Responder Con Cita
  #20  
Antiguo 18-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Creo que no es posible, las sintaxis son diferentes.
Código SQL [-]
/*Update*/
update tabla1 set 
campo1=valor1,
campo2=valor2,
campo3=select count(*) from tabla2,
campo4=valor4
where campo5='tata'
/*Insert*/
Insert into tabla1 (campo1, campo2)
values ('tata',213)
/* o tambien insercion en masa */
Insert into tabla1 (campo1, campo2)
Select campo1, campo2 from tabla2
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
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 02:06:39.


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