Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.21;
Скачать: CL | DM;

Вниз

Немогу открыть файл mdb в запросе AdoQuery   Найти похожие ветки 

 
Михаил   (2009-03-11 10:12) [0]

Здравствуйте! Есть программа на Delphi7. Требуется создать запрос к одной и той же таблице из двух разных mdb файлов. К первой базе соединение установлено с помощью connection string. Проблема в том, как указать второй файл mdb. Первый вариант sql запроса работает в том случае если в базе нет пароля.
SELECT * FROM [C:\Data.mdb].MyTable

Так как пароль на базу есть, пробовал второй вариант Sql запроса с паролем.

SELECT * FROM [Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Data.mdb;Mode=Read;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=9poferRandomize65536;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1].MyTable;

В этом случае выдаётся ошибка "невозможно найти устанавливаемый ISAM".

В чём загвоздка? Подскажите. Спасибо.


 
Медвежонок Пятачок ©   (2009-03-11 10:16) [1]

SELECT * FROM MyTable


 
Михаил   (2009-03-11 10:26) [2]


> SELECT * FROM MyTable


Это понятно :).

К примеру как будет работать?

SELECT * FROM MyTableA, [C:\Data.mdb].MyTableB where MyTableA.id =  MyTableB.id

Без пароля на базу "Data.mdb" работает, а с паролем пишет "Неверный пароль".


 
Palladin ©   (2009-03-11 10:27) [3]


> Михаил   (11.03.09 10:12) 

В чем проблема создания двух соединений?


 
Михаил   (2009-03-11 10:35) [4]


> В чем проблема создания двух соединений?


Пробовал создать два соединения. В программе требуется перенести отсутствующие данные из одной базы в другую без дубликатов. типа синхронизации.

В данный момент именно так и реализовано. Два соединения запрос в одной базе, потом в цикде выполняется insert ... values . Когда записей много выполняется долго. хочется одним запросом сделать.

Что-то типа.

INSERT INTO B SELECT * FROM A WHERE ID NOT IN (SELECT ID FROM B)

Где таблица "A" с той же структурой что и "B" но находится  в другом mdb.

Вопрос, как его подключить если он с паролем?


 
Медвежонок Пятачок ©   (2009-03-11 10:42) [5]

К примеру как будет работать?

SELECT * FROM MyTableA, [C:\Data.mdb].MyTableB where MyTableA.id =  MyTableB.id

Без пароля на базу "Data.mdb" работает, а с паролем пишет "Неверный пароль".


Нет конечно. Не будет.

Пароль неверный - введи верный


 
Михаил   (2009-03-11 10:43) [6]

NOT IN (... можно будет на INNER JOIN заменить, не суть важно. Главное подключить второй MDB в запросе, либо использовать два ADOCOnnection в одном запросе. Не знаю что будет проще.


 
Михаил   (2009-03-11 10:43) [7]


> К примеру как будет работать?SELECT * FROM MyTableA, [C:
> \Data.mdb].MyTableB where MyTableA.id =  MyTableB.idБез
> пароля на базу "Data.mdb" работает, а с паролем пишет "Неверный
> пароль".Нет конечно. Не будет.Пароль неверный - введи верный


Как его ввести в запросе?  )


 
забыл   (2009-03-11 14:06) [8]

если у одной базы нет пароля, то может она и не будет против, если к ней по паролю попробовать подключится. А та которая просит пароль, пусть получит. св-во такое есть, connectionstring..


 
Михаил   (2009-03-11 14:21) [9]


> забыл   (11.03.09 14:06) [8]
> если у одной базы нет пароля, то может она и не будет против,
>  если к ней по паролю попробовать подключится. А та которая
> просит пароль, пусть получит. св-во такое есть, connectionstring.
> .


В том то и дело, что у обоих mdb одинаковый пароль. К текущей базе пароль применяется из Connection string, а к импортируемой по ходу нет. Так как выводится сообщение "Ошибочный пароль"


 
Немо ©   (2009-03-11 15:14) [10]

а так если?

SELECT
 *
FROM
 MyTableA as A,
 [C:\Data.mdb].MyTableB as B
where
 A.id =  B.id


 
sniknik ©   (2009-03-11 16:03) [11]

в параметры к соединению добавить pwd=пароль;


 
sniknik ©   (2009-03-11 16:03) [12]

к тому что в запросе естественно


 
Михаил   (2009-03-11 16:30) [13]


> sniknik ©   (11.03.09 16:03) [11]
> в параметры к соединению добавить pwd=пароль;


Куда добавить параметр pwd в AdoConnection? Дополнитьельно в ConnectionString или есть какое нибудь дополнительное свойство parameters?


 
Михаил   (2009-03-11 16:54) [14]


> sniknik ©   (11.03.09 16:03) [11]
> в параметры к соединению добавить pwd=пароль;


Огромное спасибо! ) Всё работает.

SELECT * FROM [C:\Data.mdb; pwd = password].MyTable;

Вопрос закрыт.



Страницы: 1 вся ветка

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
2-1263762231
@!!ex
2010-01-18 00:03
2010.03.21
Как сделать форму не замерзающую при вызове диалогов.


2-1263407163
Sunktor
2010-01-13 21:26
2010.03.21
Как установить компонент с расширением pas в CodeGear Delphi 2009


2-1263806738
Alex_h
2010-01-18 12:25
2010.03.21
Отчет Rave. Как разместить TDataMemo?


15-1262293207
Anatoly Podgoretsky
2010-01-01 00:00
2010.03.21
С Новым 2010 годом! Релиз.


2-1263488516
HRustBB
2010-01-14 20:01
2010.03.21
как вызвать процедуру по ссылке?