Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 09:05   #1
IceExecutioner
Пользователь
 
Аватар для IceExecutioner
 
Регистрация: 04.06.2009
Сообщений: 26
Вопрос "Неизвестная ошибка" ADOQuery

Добрый день!
Есть база Access 2003, в ней 4 таблицы:
surnames(id int,val text),
names(id int,val text), patronimycs(id int,val text),
doctors(id int, id_s int, id_n int, id_p int, birthday date)
Подсоединяюсь к базе через ADOConnection+ADOQuery.
Делаю запрос на выборку данных:
Код:
SELECT t0.id,t00.val AS s,t01.val AS n,t02.val AS p
FROM doctors AS t0,surnames AS t00,names AS t01,patronimycs AS t02 
WHERE (t0.id_s=t00.id) AND (t0.id_n=t01.id) AND (t0.id_p=t02.id)
ORDER BY t00.val,t01.val ,t02.val
И сразу же получаю ошибку (см. вложение)
Выполняю такой же запрос в самой базе Access, всё проходит гладко.
В чём причина?
Изображения
Тип файла: jpg error.jpg (49.9 Кб, 126 просмотров)
IceExecutioner вне форума Ответить с цитированием
Старый 03.08.2011, 09:36   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Покажите строку соединения с Access из ADOConnection. Есть ли парольная защита базы?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.08.2011, 15:49   #3
IceExecutioner
Пользователь
 
Аватар для IceExecutioner
 
Регистрация: 04.06.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Покажите строку соединения с Access из ADOConnection. Есть ли парольная защита базы?
Да, пароль стоит, а также шифрование базы.
Код:
...
str:=Ini.ReadString('DB','Host',AppFilePath+'base1.mdb');
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'
    +'User ID=Admin;Data Source='+str+';Mode=Share Deny None;'
    +'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'
    +'Jet OLEDB:Database Password=12345;Jet OLEDB:Engine Type=5;'
    +'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'
    +'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
    +'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=True;'
    +'Jet OLEDB:Don''t Copy Locale on Compact=False;'
    +'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
IceExecutioner вне форума Ответить с цитированием
Старый 03.08.2011, 16:37   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Пример командной строки для защищенной паролем зашифрованной базы (впрочем для не зашифрованной тоже самое)
Код:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=E:\db2.mdb;
Mode=ReadWrite|Share Deny None;
Persist Security Info=False;
Jet OLEDB:Database Password=12345
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.08.2011, 05:27   #5
IceExecutioner
Пользователь
 
Аватар для IceExecutioner
 
Регистрация: 04.06.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Пример командной строки для защищенной паролем зашифрованной базы (впрочем для не зашифрованной тоже самое)
Код:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=E:\db2.mdb;
Mode=ReadWrite|Share Deny None;
Persist Security Info=False;
Jet OLEDB:Database Password=12345
Строка подключения у меня правильная, хотя можно и было сократить до твоего варианта. Ошибка заключалась в зарезервированых словах ADO, каким являлось names, элементарная замена имени поля на names1 решило все проблемы.
З.Ы. Получается склонения и множественное число зарезервированных слов тоже зарезервированы?=)
IceExecutioner вне форума Ответить с цитированием
Старый 05.08.2011, 09:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

У меня с этим Names проблема и в MS SQL была, заменил на Namesk. Причем без всякого ADO. Видимо зарезервированное слово стандарта SQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Синтаксическая ошибка " или " в чём разница?" vedro-compota PHP 7 07.08.2010 16:45
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06