PDA

Ver la Versión Completa : left join con ADOQuery


elcaracas
22-08-2008, 11:23:31
Hola,

Tengo una Base de Datos de Access con un montón de tablas, y quiero hacer la siguiente consulta SQL:
SELECT [Area Section Assignments].Area, [Area Section Assignments].Section, [Area Section Assignments].MatProp, [Area Section Properties].Thickness
FROM [Area Section Assignments] LEFT JOIN [Area Section Properties] ON [Area Section Assignments].Section = [Area Section Properties].Section;

En Access funciona bien. El problema está cuando lo quiero hacer desde mi programa:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT [Area Section Assignments].Area, [Area Section Assignments].Section, [Area Section Assignments].MatProp, [Area Section Properties].Thickness FROM [Area Section Assignments] LEFT JOIN [Area Section Properties] ON [Area Section Assignments].Section = [Area Section Properties].Section");
ADOQuery1->Open();


Cuando ejecuto el código me da un error. No se como hacer un LEFT JOIN con un TADOQuery.

La base de Datos es de Access abierta con un ADOConnection y Provider=Microsoft.Jet.OLEDB.4.0

Alguien Puede Ayudarme!!

Gracias

ElDioni
22-08-2008, 12:21:55
¿Podrías poner el error que te da?.

tcp_ip_es
22-08-2008, 12:46:47
a parte de ponernos el error como bien dice Eldioni, esa consulta es un poco rara no??? haces un left join a la misma tabla y no le das un alias para diferenciarla y tampoco sacas en el select ningun campo de la otra tabla.... uhmmmm no se :confused:

elcaracas
22-08-2008, 13:10:58
El error es un "Error no especificado".

Y no es una consulta a la misma tabla. Una se llama [Area Section Assignments] y la otra [Area Section Properties].

Gracias.

tcp_ip_es
25-08-2008, 09:16:38
upsss pues no vi bien la tabla :D el error te lo lanza delphi o el controlador Microsoft jet.Lo mismo no has instalado la última versión de Microsoft jet. Testea la conexión Ado primero, yo la consulta la veo bien... también puedes intentar hacer la conexión por ODBC (Microsoft OLE DB Provide for ODBC Drivers) .... para ello tendrás que crearte una entrada en la tabla ODBC, (Puedes acceder mediante Panel de Control ->Herramientas Administrativas-> Origenes de Datos (ODBC) y ahí en la pestaña DSN de Sistema te creas una entrada con la conexión a tu BD. Luego desde delphi seleccionas esa entrada..... ahora no se me ocurre más cosas....