|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2020, 19:34 | #1 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
ADOTable, в свойстве Connected нажимаю кнопку Build (Use Connection String), появляется окно и тут же закрывается - Ошибка при указании пути к БД
Здравствуйте. Работаю с ADOTable. Вот появилась проблема: установила на форму ADOTable, в свойстве Connected нажимаю кнопку Build (Use Connection String), появляется окно и тут же закрывается. Даже не могу прочитать, что за окно и что в нем. Прописать путь к БД не могу.
Проблема эта не только в новом проекте, но и в тех, что давно работают. Появилось это неожиданно, может, глюк в Delphi? (Перезагрузка компа и переустановка delphi не помогли)Смогла поймать скрин появляющегося окна, ничего не понятно) видео тоже процесса прилагаю) Спасибо за советы. |
06.06.2020, 08:32 | #2 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
Ну что, никто не сталкивался с такой проблемой?
|
08.06.2020, 21:53 | #3 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Не сталкивались.
Есть вариант, который может ответить на вопрос: "что виновато и что делать". Надо создать текстовый файл с расширением UDL в папке с проектом и там где находится файл БД (имя файла значения не имеет, но для порядка лучше чтобы было такое же как и имя исполняемого файла проекта). Файл можно создать так: - в блокноте в новом текстовом документе вставить какой-нибудь символ (1 или пробел) и сохранить с расширением udl, но не txt (с нужным именем); символ нужен чтобы сохранение было без капризов; - открыть снова этот же документ в блокноте и, убрав этот символ, сохранить файл, так чтобы он был нулевого размера (в уже существующий файл блокнот позволяет сохранять и нулевой размер). Затем запустить его в Wondows как обычный исполняемый файл. Винда знает что это за файл и должна отрыть точно такой же диалог, какой открывается в Delphi по кнопке "Build" для формирования строки соединения. Открывается этот диалог, разумеется, не в среде Delphi. Если и в этом случае будет такая же беда как и в Delphi, значит проблема в операционной системе. При благополучном исходе, т.е. если диалог будет адекватным и в нем можно сформировать строку соединения, придется использовать этот файл вместо строки соединения: в диалоге, который появляется в свойстве ConnectionString компонента ADOConnection надо будет отметить "Use Data Link File" и через кнопку Browse указать файл UDL, который был сформирован. Этот прием с файлом позволит хотя бы определить источник проблемы. |
09.06.2020, 08:10 | #4 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
Все получилось!) Файл открывает окно) Но в списке поставщиков нет варианта "Microsoft.Jet.OLEDB.4.0", которым я подключала свою базу Access.
Все равно, спасибо за отклик!!!) |
09.06.2020, 08:36 | #5 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Получается, что причина проблемы всё же в Delphi.
А если в списке, открытом в винде, перечислены не все драйверы поставщиков, то там нет 32 битных драйверов, а на компе установлена 64 битная ОС. Можно предложить такой вариант обхода и этой проблемы. И современные Windows поддерживают bat-файлы. Такие файлы выполняются как и обычные exe. А так как они содержат текст, то их можно создавать так же в блокноте. Попробуйте сформировать bat-файл с такой текстовой командой: C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\Oledb32.dll", OpenDSLFile file.udl (все это в одну строку) Здесь вместо file.udl, который идет после команды через пробел, вписывается свой файл udl, который можно вставить и с полным путем к нему. Тогда вместо запуска udl файла нужно будет запускать file.bat (имя как и в udl произвольное), который должен показать диалог формирования строки соединения со всеми драйверами, которые установлены на машине. Во всяком случае, на винде 10 у меня это работает. Желательно перед тем как это делать убедится, что файл Oledb32.dl находится по пути, указанному в команде. А в Delphi, понятно, нужно будет указывать сформированный файл с расширением udl. bat-файл нужен только для формирования строки соединения. Последний раз редактировалось Прик; 09.06.2020 в 08:38. |
10.06.2020, 09:00 | #6 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
Ну хоть так! Спасибо еще раз)
|
10.06.2020, 09:20 | #7 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
|
10.06.2020, 09:37 | #8 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
Все указала, файл bat запускается. Потом опять моргает окошко, как в первом моем сообщении.И все выключается.
|
10.06.2020, 10:11 | #9 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Судя по картинке запуск был не bat файла, а команда выполнялась в командной строке окна cmd.exe. Надо испытать всё же bat файл, который запускается напрямую как обычный ехе, предварительно его создав. Правда в нашем случае это вряд ли поможет, но лучше рассмотреть все варианты.
Значит напрямую UDL файл запускается без проблем, кроме той, что показывает неполный список провайдеров, а в среде Delphi, при выполнении команды в cmd или в bat файле получаем артефакт? Если так, то увы, - сложный случай. Разве только опытный сисадмин сможет помочь. |
16.06.2020, 17:15 | #10 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 157
|
Вроде делала все по вашей инструкции)
Ладно, буду городить что-нибудь) Спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi можно ли через кнопку добавить свой текст в чужое окно пример в свойстве браузера в поле Объект? | falsebegin | Общие вопросы Delphi | 0 | 26.01.2020 05:48 |
После ошибки окно консоли закрывается и я не могу посмотреть, что за ошибка. | NAN_13 | Общие вопросы Delphi | 10 | 30.03.2017 01:29 |
при нажатии на кнопку появляется новое окно | I_am_ | Win Api | 2 | 08.12.2014 14:51 |
DBGrid: При нажатии ConectionString>Build не появляется окно | Katus | БД в Delphi | 17 | 29.12.2011 12:26 |