Установите соединение ODBC из приложения delphi-7 через ADOConnectionstring

Предыстория:

Приложение написано на Delphi-7 или -6 (есть поиск по .exe файлу). Зовут Сигманест.

Я переехал на новый сервер, и осталась база данных SigmaNest, работающая под управлением SQL-сервера. После многих часов устранения неполадок для переноса этой базы данных на новый сервер. Проблема охватила все аспекты этого приложения SQL Server. службы не запускаются по умолчанию, неработающий мастер, отсутствие полнотекстового чего-то, смехотворно много мест, где можно щелкнуть правой кнопкой мыши и т. д. Потеря продолжается и продолжается.

На данный момент у меня есть рабочий SQL-сервер с базой данных SNDBase (sigmanest) на новом оборудовании, но я не могу подключиться с клиента.

Нет, это не может быть правильным, я подумал и поискал альтернативы. 4-5 кликов в рабочей среде MySQL, и я запустил тестовую Linux-систему... Хорошо..

Но теперь дело доходит до проблемы.

SigmaNest использует ini файлы для своей конфигурации.

Итак, внутри одного файла ini я нашел

; 1 = Paradox, 2 = MSSQLServer or MSDE
ADOConnectionString=Provider=SQLOLEDB.1;Data Source=ODIN\SIGMANEST;User ID=sigmanest;Password="";Persist Security Info=True;Initial Catalog=SNDBase;

Окей .. установил драйвер Mysql odbc на клиенте и установил соединение. Все пока работает..

Обратился к google и нашел ADOConnectionsstring для mysql...

ADOConnectionString=DRIVER={MySQL ODBC 5.2a Driver};SERVER=192.168.100.19;PORT=3306;DATABASE=SNDBase;UID=sigmanest;PASSWORD=;OPTION=4;

Но приложение не запускается. просто вернитесь к инструменту конфигурации sigmanest для подключения к базе данных.

Отправил это в SigmaTek, но единственный ответ, который я дал, - это письмо со строкой ADOConnection для сервера MS sql через SQLOLEDB.

Поискал на диске и не нашел никаких файлов dbex*.dll, ведь это означает, что они не используют компонент dbExpress (мое предположение).

Так есть ли какие-то отсутствующие DLL-файлы, которые не поставлялись с приложением. Или такие вещи жестко запрограммированы внутри программы?

У кого-нибудь есть идеи, как действовать?

Или я должен отказаться от мечты mysql и пойти на пустую трату пространства на серверной части sql.

Пер Нильс

PS. SigmaNest.exe имеет отметку времени 2006-05-19 DS.


person pernils    schedule 23.01.2013    source источник
comment
Этот вопрос не здесь, может быть, суперпользователь?   -  person jachguate    schedule 23.01.2013
comment
Это вопрос поддержки поставщика (для SigmaTek) для стороннего приложения, и он не подходит для StackOverflow. Однако тот факт, что для 1 = Paradox, 2 = MSSQLServer or MSDE есть флаги, указывает на то, что это должен быть один из этих трех — MySQL ‹› MSSQLServer/MSDE (MSSQLServer/MSDE — продукты Microsoft, MySQL — нет, и они ни в коем случае не являются прямой заменой каждого из них). Другой).   -  person Ken White    schedule 23.01.2013


Ответы (1)


Извините, но я не знал, куда обратиться с этой проблемой. И stackoverflow, кажется, собрал всех талантливых людей в мире под одной крышей, так сказать.

Кен Уайт: Да, вы правы, я не могу использовать MySQL в этом приложении (после нескольких часов гугления и тестирования).

Во всяком случае, мне удалось установить такое соединение (может быть, что-то полезное для других, некоторые из них связаны с Delphi)

  • Сначала вам нужно загрузить коннектор mysql http://dev.mysql.com/downloads/connector/odbc/

  • Установите соединение ODBC из панели управления-> инструменты администрирования -> Источники данных (ODBC) на вкладке «Пользовательский DSN».

  • Вы создаете новый текстовый файл с блокнотом.

  • Переименуйте файл с расширением .udl

  • Дважды щелкните по нему и заполните диалоговые окна...

  • Откройте файл в блокноте, и там у вас есть строка adoconnection.

Но ваша проблема еще не решена. Разница в SQL и MySQL заставит ваше приложение остановиться. Например, логическое значение в MySQL объявлено как tinyint (0 = false 1 = true)

Обходной путь упоминается здесь http://www.i-logic.com/utilities/MySQL.htm

Так что моя борьба ничего не дала взамен, но что-то из вышеперечисленного могло заинтересовать других.

Пер Нильс..

person pernils    schedule 24.01.2013
comment
Я поднимаю эту тему еще раз. У меня снова проблемы с этим старым приложением, и я ищу замену парадоксу. Приложение может обрабатывать paradox и ms sql. Лучше всего использовать firebird, но у него проблемы с пониманием того, как он работает и как перемещать набор данных. Мне просто интересно, есть ли что-то, что вы можете сделать в MySQL, чтобы изменить тип переменной на лету? Я имею в виду преобразование между логическим значением и tinyint, когда оно запрашивается оператором select из приложения? - person pernils; 26.08.2013