-
Приветствую всех! Подскажите, пожалуйста, как можно сделать SQL запрос к двум базам Access из Делфи одновременно. Не понимаю как в один ADOQuery "впихнуть" вторую базу и выбрать из нее значения по соответсвующим полям из результата запроса к первой. Буду признателен за подсказки/примеры.
-
Предложение IN Определяет таблицы в любой внешней базе данных, с которой ядро базы данных Microsoft Jet может установить связь, например в базе данных dBASE, Paradox или внешней базе данных с ядром Microsoft® Jet.
Синтаксис Чтобы определить результирующую таблицу:
[SELECT | INSERT] INTO назначение IN {путь | ["путь" "тип"] | ["" [тип; DATABASE = путь]]}
Чтобы определить исходную таблицу:
FROM выражение IN {путь | ["путь" "тип"] | ["" [тип; DATABASE = путь]]}
Ниже перечислены аргументы инструкции SELECT, содержащей предложение IN:
-
> sniknik © (11.09.17 21:22) [1] > Предложение IN
Круто!
> alvltss © (11.09.17 20:37)
Забей:)
-
В общем, попробовал но нифига не получается. Например, простой запрос
Select * from Logs IN [Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Config.mdb; Persist Security Info=False;]
выдает ошибку "Источник данных не найден и не указан драйвер, используемый по умолчанию", хотя все это прописано. Кроме того, выскакивает окно авторизации. Как его отключить в строке подключения непонятно. Если выполнить это запрос при подключенной базе, то выскакивает ошибка "Неправильно определен объект Parameter. Представлены несогласованные или неполные сведения" Как это все победить?
-
> Как это все победить? справку почитать как же еще... полную, для Jet.
> выдает ошибку "Источник данных не найден и не указан драйвер, используемый по умолчанию", хотя все это прописано. хрень прописана. тут даже из приведенного кусочка справки ясно, что твой "простой запрос" кривой, не соответствует ... {путь | ["путь" "тип"] | ["" [тип; DATABASE = путь]]} вот где например тут слово Provider? и вообще сказано что тут полная строка подключения для ado-шного драйвера?
-
> Select * from Logs IN [Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Config.mdb; Persist Security Info=False;]
Select * from Logs IN "D:\Config.mdb"
-
Спасибо тебе, мил человек :) Помогло, буду ковырять дальше...
-
Сделал такой запрос
qry_SQL.SQL.Add('select Seconds from SutvValueTable ' ); qry_SQL.SQL.Add ('INNER JOIN DataTable IN "Q:\Systel\Bin\Zerver.mdb" '); qry_SQL.SQL.Add ('ON SutvValueTable.RegionIndex= DataTable.RegionIndex '); qry_SQL.SQL.Add('AND SutvValueTable.DataIndex= DataTable.DataIndex '); qry_SQL.SQL.Add (' where Seconds= (SELECT max(Seconds ) From SutvValueTable) '); qry_SQL.SQL.Add('and (Status> 4095) and (Status< 8092) and (Status mod 2 = 0) ');
Синтаксическая ошибка. Что тут не так? Может надо указать полный путь в строках 2 и 3 ? Также в первой строке хочу указать поле из DataTable. Но тоже не совсем понятно, с полным путем указывать или как? Подскажите, кто может, плиз....
|