2013-07-08 3 views
0

Я хочу создать запрос соединения из результата adoquery. И adoquery подключаются к разным ADOConnection.Как создать запрос соединения из разных соединений ADO

  • ADOQuery1 -> ADOConnection1 -> MS Access (MS Jet Driver)

  • ADOQuery2 или ADOTable -> ADOConnection2 -> Microsoft Visual Foxpro

Я хочу создать запрос с соединением в ADOQuery3 и подключиться к ADOConnection1, но запрос из результатов ADOQuery1 и ADOQuery2.

ADOQuery3 -> ADOQuery1 + ADOQuery2.

Но

я не могу использовать ссылку таблицы (ссылка Microsoft Visual FoxPro таблицы) в MS Access, так как он не может использовать режим общего доступа на DBase (Microsoft Visual Foxpro таблицу).

+0

Я не думаю, что это возможно с помощью ADO. Чтобы он работал, вам понадобится механизм SQL на вашем клиенте, установленный на локальном компьютере или встроенный в ваше приложение. Затем импортируйте два набора результатов в этот механизм SQL и запросите их. Есть ряд продуктов, которые могут это сделать - например, NexusDB. –

+0

Посмотрите на http://docwiki.embarcadero.com/RADStudio/XE2/en/Establishing_Master-detail_Relationships_Using_Parameters –

+0

Также ознакомьтесь с http://docwiki.embarcadero.com/Libraries/XE2/en/Data.Win .ADODB.TADOTable.MasterSource –

ответ

1

можно соединить между двумя таблицами, расположенными в различных базах данных доступа, как это:

adq.SQL.Add('select * from'); 
adq.SQL.Add('(c:\DB1.MDB.TABLE1)'); 
adq.SQL.Add('left outer join'); 
adq.SQL.Add('(c:\DB2.mdb.TABLE2)'); 
adq.SQL.Add('on (TABLE1.TABLE2_ID = TABLE2.ID)'); 
adq.SQL.Add('where '); 
// add some restrictions 

Я знаю, что это не сразу решить вашу проблему, я просто думал, что я должен указать на это, может быть, может помочь вам найти решение. (В настоящее время у меня нет времени, чтобы провести собственное исследование.)

+0

Да! Это хорошая идея. Я проверю ваше решение. –