Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Немогу открыть файл mdb в запросе AdoQuery [D7, Access]


Михаил ©   (2009-03-11 10:12:00) 

Здравствуйте! Есть программа на 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 16:54:00) [1]


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


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

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

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


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


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


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


sniknik   (2009-03-11 16:03:00) [3]

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


sniknik   (2009-03-11 16:03:00) [4]

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


Немо   (2009-03-11 15:14:00) [5]

а так если?

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


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


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


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


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

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


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

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


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


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


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


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

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

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

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


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

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


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


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


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

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

Что-то типа.

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

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

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


Palladin   (2009-03-11 10:27:00) [12]


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

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


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


> SELECT * FROM MyTable


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

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

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

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


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

SELECT * FROM MyTable


Наверх

Титульная страница Поиск, карта сайта Написать письмо