Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Вниз

Немогу открыть файл 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
11-1214116630
Trejder
2008-06-22 10:37
2010.03.21
Delphi + KOL = WinCE?


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


1-1243761846
Dr.Andrew
2009-05-31 13:24
2010.03.21
Как упростить конструкцию Smallint(Pointer(@apeaks[i, 0])^) ?


1-1243160913
RWolf
2009-05-24 14:28
2010.03.21
ShareMem: конфликт версий


2-1263473743
sana
2010-01-14 15:55
2010.03.21
Работа с массивом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский