| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Lun 19 Ene, 2004 6:38 pm Asunto: Consulta de dos tablas de dos bases de Dabtos |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 20 Ene, 2004 8:05 am Asunto: |
|
|
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 |
|
 |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Mar 20 Ene, 2004 2:34 pm Asunto: |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 20 Ene, 2004 2:42 pm Asunto: |
|
|
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 |
|
 |
Invitado
|
Publicado: Mar 20 Ene, 2004 4:02 pm Asunto: |
|
|
Gracias, Angel, "jala de Maravilla".
PostData: Veo que ya cambiaste de Imagen |
|
| Volver arriba |
|
 |
|