С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515

Знак равенства в пути к файлу БД Access вызывает ошибку

07.05.2014, 20:18. Показов 2937. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть проблема при подключении к БД Access через ODBC, если в пути к БД встречается знак равенства.
Вот процедура подключения:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// процедура соединения с БД
procedure GetConnectionDB;
begin
  with DBForm.AccessODBCConnection do
  begin
    Driver:='Microsoft Access Driver (*.mdb, *.accdb)';
    UserName:='username';
    Password:='password';
    Params.Clear;
    Params.Add('UID=username');
    Params.Add('UserCommitSync=Yes');
    Params.Add('Threads=3');
    Params.Add('SafeTransactions=0');
    Params.Add('PageTimeout=5');
    Params.Add('MaxScanRows=8');
    Params.Add('MaxBufferSize=2048');
    Params.Add('FIL=MS Access');
    Params.Add('DriverId=25');
    Params.Add('DefaultDir=');
    Params.Add(UTF8ToSys('DBQ=d:\=база=\base.mdb'));
    Connected:=true;
  end;
end;
При выполнении выскакивает ошибка:
[Window Title]
MyProject

[Content]
Could not connect with connection string "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};UID=username;PWD=password;UID= username;UserCommitSync=Yes;Threads=3;Sa feTransactions=0;PageTimeout=5;MaxScanRo ws=8;MaxBufferSize=2048;FIL=MS Access; DriverId=25; DefaultDir=; DBQ={d:\=база=\base.mdb};". ODBC error details: LastReturnCode: SQL_ERROR; Record 1: SqlState: HY000; NativeError: -1044; Message: [Microsoft][Драйвер ODBC Microsoft Access] Недопустимое имя файла.;.

Press OK to ignore and risk data corruption.
Press Cancel to kill the program.

[OK] [Cancel]
Если строку
Delphi
1
Params.Add(UTF8ToSys('DBQ=d:\=база=\base.mdb'));
заменить на
Delphi
1
Params.Add(UTF8ToSys('DBQ=d:\база\base.mdb'));
при этом, естественно, поменять название директории с '=база=' на 'база', то подключение выполняется без ошибок.
В Delphi, если в пути к БД содержится '=', все работает нормально, а вот в Lazarus - ошибка.
Что нужно сделать, чтобы можно было в названии пути использовать знак равенства?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2014, 20:18
Ответы с готовыми решениями:

еременная которой нигде нет(не описана) не вызывает ошибку в большом инете, а на локале вызывает ошибку
Совсем я ничего не понимаю. Переменная которой нигде нет(не описана) не вызывает ошибку в большом инете, а на локале вызывает ошибку. ЧТО...

ADO+Access картинки и загрузка по пути к файлу
Есть готовая база, в которой картинка (одна) сохраняется прямо в ОЛЕ поле Аксеса. Но это не вариант, т.к. 4 картинки и вес базы - 16Мб. Как...

Операция delete вызывает ошибку Access violation at address
Доброго времени суток, уважаемые форумчане! Компьютер HP omnibook xe4100, Mobile Intel Celeron 1.14ГГц, ОЗУ 480Мб ОС Windows XP SP2....

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
07.05.2014, 23:21
Попробуй поменять строку на
Pascal
1
Params.Add(UTF8ToSys('DBQ=d:/=база=/base.mdb'));
, что будет? В принципе, разницы быть не должно, в смысле пути. и с прямым и с обратным слэшами файлы находятся...
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
08.05.2014, 06:17  [ТС]
UI, да, разницы нет, в том смысле, что та же самая ошибка: "Недопустимое имя файла". :-(

Добавлено через 23 минуты
P.S.
Оказывается, проблема немного шире, чем я предполагал.
Также не работает, если в названии пути файла встречаются символы !@(){},[]
Странно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2014, 06:17
Помогаю со студенческими работами здесь

Знак равенства
Как правильно поставить знак равенства. Потому что при такой попытке всё время результат неверный: if ($q = 1) {echo "OK";} ...

Подключение библиотеки вызывает ошибку "access violation"
При запуске программы вылетает ошибка access violation at address 00000. Read of address 00000000. В этот момент запускаю динамическую...

Комбинировать LIKE и знак равенства =
Предположим следующую таблицу. Таблица PROJECT_CLIENTS DEPARTMENT COMPANY 1Electronics A ...

Символьный знак равенства
Как символьный знак равенства по середине как тут?

Скрипт копирования пути к файлу\папке и вставка пути в письмо Outlook
Всем доброго времени суток! Помогите, пож-та, разобраться\дописать скрипт. Есть скрипт на открытие\создание нового сообщения в Outlook....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru