Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Consulta de dos tablas de dos bases de Dabtos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Consulta de dos tablas de dos bases de Dabtos Responder citando

hola a todos,

quiero hacer una consulta de la tabla A de una base de datos AA y dentro del query otro select de una tabla B de la base de datos BB, pero creo que no se puede,:

Select guia from A
where guia in (
select guia from B
where(fecha > :fecha and fecha < :fecha2
and estado is null and cuenta <> "MAS DE MIL")
order by fecha)

lo que quiero entonces hacer es guardar la información del primer select en un campo MEMO, y tomar la información del MEMO y utilizarla para el otro select.

de la forma:

en el query:
select guia_dhl AS guias from cuentas
where
(fecha > :fecha and fecha < :fecha2
and estado is null
and cuenta <> "MAS DE MIL")
order by fecha

y en la hoja de código:

Memo1->Lines = AnsiString((Query1->FieldByName("guias")));

Pero me manda este error:

[C++ Error] reportetotaldecuentas.cpp(61): E2285 Could not find a match for 'AnsiString::AnsiString(TField *)'
[C++ Error] reportetotaldecuentas.cpp(61): E2031 Cannot cast from 'TField *' to 'AnsiString'

Pueden ayudarme ????
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

El error
Cita:
[C++ Error] reportetotaldecuentas.cpp(61): E2285 Could not find a match for 'AnsiString::AnsiString(TField *)'
[C++ Error] reportetotaldecuentas.cpp(61): E2031 Cannot cast from 'TField *' to 'AnsiString'

puede ser a que no has definido bien el campo al tratar el query. Prueba algo así:
Código:
Memo1->Lines = Query1->FieldByName("guias")->Value;

Con Value te ahorras recordar que tipo de dato es guias.

Por otro lado, si tienes definidos dos elementos TDatabase para gestiopnar las tablas diferentes, no tendrúia por qué haber problema con el query que propones; yo lo hago algunas veces.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Pues que te crees angel, que ahora el error que me manda es:

[C++ Error] reportetotaldecuentas.cpp(61): E2034 Cannot convert 'Variant' to 'TStrings *'

Lo he intentado también como :

[/code]Memo1->Text = Query1->FieldByName("guia")->Value;

pero solo aparece un registro de una consulta que deben ser más de 20.

Puedes ayudarme , o pueden ayudarme?
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Perdón: Puse mal el código. Ahora bien, si te aparece al menos una línea, vamos bien. Para rellenar el memo tienes que recorrer al query:
Código:
Memo1->Lines->Clear();
while (!Query1->Eof)
{
     Memo1->Lines->Add(Query1->FieldByName("guia")->Value);
     Query1->Next();
}

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias, Angel, "jala de Maravilla".


PostData: Veo que ya cambiaste de Imagen
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.