Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consolidar 2 Bases de Datos 1 Tabla (https://www.clubdelphi.com/foros/showthread.php?t=45130)

freddiaz07 23-06-2007 15:38:18

Consolidar 2 Bases de Datos 1 Tabla
 
Hola Amigos Buenos Dias Saludos de antemano.

Mi duda quiero consolidar 2 bases de datos A Y B contienen ambas la misma informacion. Quiero Sumar las existencias si el Cod del Articulo es igual a la otra tabla de la otra base de datos y asi hacer un ciclo como guardar esos resultados en otro query para mostrarlos en qreport


Código Delphi [-]
 
adoconnection1.DefaultDatabase = DB1;
adoconnection2.DefaultDatabase = DB2;
 
 
Adoquery1.Sql.Add('Select Codigo, Existencia From Inven');
Adoquery2.Sql.Add('Select Codigo, Existencia From Inven');
 
while not Adoquery1.Eof do
Adoquery1.First;
Adoquery2.First;
if Adoquery1.Fields.Fields[1].Asstring = Adoquery2.Fields.Fields[1].Asstring
begin
Edit1.Text := doquery1.Fields.Fields[1].Asstring + Adoquery2.Fields.Fields[1].Asstring;

Esa es la Estrucutura que tengo pero me da error al querer sumar las dos querys. y la otra duda es de sumar como guardar esos valores en otra tabla para mostrarlos en un Reporte.


Gracias.

jhonny 23-06-2007 16:45:51

El error puedo ser porque seguramente te falta la A de Adoquery1, fijate bien en el siguiente codigo, escrito por ti:
Código Delphi [-]
Edit1.Text := doquery1.Fields.Fields[1].Asstring + Adoquery2.Fields.Fields[1].Asstring;

Seguramente debe ser asi:
Código Delphi [-]
Edit1.Text := Adoquery1.Fields.Fields[1].Asstring + Adoquery2.Fields.Fields[1].Asstring;
Aunque debería llevar un espacio para diferenciar un codigo del otro:
Código Delphi [-]
Edit1.Text := Adoquery1.Fields.Fields[1].Asstring + ' '+Adoquery2.Fields.Fields[1].Asstring;

Espero te sirva pero, Si no es eso, indicanos cual es el error que te muestra, para ver si ese error nos ayuda un poco mas.

Caro 23-06-2007 16:57:21

Hola

Cita:

Empezado por freddiaz07
Edit1.Text := doquery1.Fields.Fields[1].Asstring + Adoquery2.Fields.Fields[1].Asstring;

Si quieres sumar recuperando con AsString no se podra, que tipo tiene tu campo en tu BD si es entero lo puedes recuperar con AsInteger, pero sino entonces tendrias que hacer las conversiones

Código Delphi [-]
Existencia1:=Adoquery1.Fields.Fields[1].AsInteger;
Ecistencia2:=Adoquery2.Fields.Fields[1].AsInteger;

edit1.Text:=IntToStr(Existencia1+Existencia2);

Saludos

courtois 23-06-2007 23:13:12

y que evita que hagas eso con una consulta join sql??

freddiaz07 24-06-2007 17:26:07

El error no es ese que le falta la A
 
Hola Amigos gracias por sus repuestas pero el Error de la a es mio que no lo copie gracias. el error que me da es que no determina si es String o Extender el valor, esa suma la muestro en un edit y me muestra es campo1+campo2 como cadena de texto. el tipo de campo de la tabla es BCD.

Otra duda despues de conseguir sumar correctamente las existencias como guardaria esos registros para mostrarlos en un reporte el resumen


Base de Datos1 Base de Datos2
Cod=001 Cod=001
Existencia=10 Existencia=3

Resultado
Cod=001
Existencia=13


y asi sucesivamente con todos los cod que sean iguales.


Gracias de antemano


La franja horaria es GMT +2. Ahora son las 03:12:25.

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