Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Kalmah Автор Сообщений: 50 Дата регистрации: 14.09.2011 |
Нужно соединиться с MySQL. Не догоняю как это сделать.
Как я понял с помощью команды SQLCONNECT([cConnectionName | cDataSourceName [, cUserID [, cPassword ]][, lShared]]) Долблюсь уже час не могу понять что писать в cConnectionName | cDataSourceName... |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Еще есть SQLStringConnect(). Изучите.
------------------ Лень - это неосознанная мудрость. |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
_vit Сообщений: 5176 Дата регистрации: 29.07.2002 |
Цитата: |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Исправлено 2 раз(а). Последнее : descent52, 22.11.13 09:59 |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
MSSQL server и MySQL это совсем не одно и то же.
Названия установленных в системе ODBC драйверов можно посмотреть в апплете "ODBC Data Source Administrator" - там есть вкладка Drivers. Запускается апплет из панели управления, или же, проще, через ввод в консоли его имени - odbcad32.exe. При этом для x64 систем нужно быть особенно внимательным, т.к. там имеется 2 версии утилиты - одна для x64 драйверов и DSN-ов (именно она и запускается по умолчанию из панели управления или штатной консоли), и одна для x86 (для фокса как раз она и актуальна). Для запуска конкретно 32-битной версии следует указать полный путь к ней, или же в консоли перейти в соответствующую папку - а лежит она в C:\Windows\SYSWOW64\ (ну буква диска и имя папки винды в теории могут быть и другими - главное что надо смотреть не в system32, а в SYSWOW64). Формат строки подключения лучше всего узнать из документации к используемому драйверу - есть ресурс [url]www.connectionstrings.com[/url] где приведены разные варианты для разных серверов и драйверов - но это не самый точный и актуальный источник информации. Всё же документация к конкретному драйверу куда как более точна и подробна. ------------------ WBR, Igor |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Kalmah Автор Сообщений: 50 Дата регистрации: 14.09.2011 |
В общем получилось у меня так :
Сначала запускаем odbcad32 Получаем окно http://i59.fastpic.ru/big/2013/1122/dc/a65711e86a5b132d636a8ecc33baafdc.jpg Потом жмем кнопку добавить. Получаем окно http://i57.fastpic.ru/big/2013/1122/85/0e9c865f027d3954c2c67ad557391a85.jpg и выбираем наш драйвер. Жмем готово Получаем окно. http://i60.fastpic.ru/big/2013/1122/a4/34715dc9a901c5dc9ee8b4b0e194e7a4.jpg Заполняю так как на картинке. Жмем тест тест проходит. Далее ок. Появляется еще один пользовательский DSN под именем MySQL56 http://i60.fastpic.ru/big/2013/1122/44/0aba2bf83b3aa168420ec59e9d58f344.jpg После этого в фоксе SQLCONNECT('MySQL56') проходит (=1). Хотя мне хотелось-бы не так, т.к. в этом случае наверное ? на каждого пользователя свой ODBC. зы Не знаю как тут картинку нормально разместить. Уж как смог. Исправлено 5 раз(а). Последнее : Kalmah, 22.11.13 17:29 |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну да, так и создаётся DSN - правда к заголовку темы это не имеет прямого отношения SQLCONNECT не работает с "именем драйвера" - он работает либо с DSN, либо с объектом Connection в текущей фоксовой БД. А вот непосредственно с "именем драйвера" работает команда SQLStringConnect - там это имя фигурирует как часть "строки подключения". При этом нет надобности ни в создании DSN, ни в использовании фоксовой dbc...
------------------ WBR, Igor |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Kalmah Автор Сообщений: 50 Дата регистрации: 14.09.2011 |
Направление куда копать вы дали. Спасибо !
|
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
dos32 Сообщений: 1017 Откуда: Ленинград Дата регистрации: 15.01.2008 |
там в примерах есть где-то, как найти что есть в системе, так все-ж удлбне чем явно задавать, мелкие различие версий на клиентах значения иметь не будут.
на базе примера не особенно красиво на бегу тупо выдрав кусок и сделал примерно так, до исх пор так и работает, как и все временное :
ну а потом на базе этого сделал класс, которы кидаю на формы, он в ините сразу и коннектится
ну и возможно там-же сразу пригодится
итого на форму кидаю класс и тупо далее команды, класс при создании коннектится и кодовые строки задает, ну тут у меня по схеме когда каждая форма имеет отдельное соединение. у меня собственно конторский склад сейчас на mysql пашет уже года 3 в связке с инет-магазином. |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Kalmah Автор Сообщений: 50 Дата регистрации: 14.09.2011 |
Отдельное вам dos32 спасибочки за код ! Это то что я и искал !
Исправлено 1 раз(а). Последнее : Kalmah, 23.11.13 21:05 |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Я бы так не советовал делать - он просто перебирает драйвера и будет использовать "первый попавшийся" - более того, если в имени драйвера нету подстроки "MySQL ODBC" то он и вовсе ничего не найдёт.
Это ненадёжно, хотя и позволяет иногда обходится без настройки приложения на каждом рабочем месте. Я предпочитаю абсолютно чёткую и однозначную настройку (да, подобный код может дать полный список драйверов для выбора их не в системном апплете управления ODBC, а в собственно фоксовой форме) - без хитрых поисков ------------------ WBR, Igor |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
dos32 Сообщений: 1017 Откуда: Ленинград Дата регистрации: 15.01.2008 |
ну собственно все так, код наспех сляпан из майкрософтового примера как я и сказал, причем модифицировался на бегу чисто настолько чтоб заработал, можно из него список брать, можно еще что-то, у меня он в итоге так и остался с возможностью принудительной перезаписи в сетапе если что, но поскольку на практике чаще всего у народа OBDC для мускула стоит одна версия или одной достаточно для всех приложений, то в итоге временное иногда приживается .
а сделать уже можно и наверное нужно красивше, у меня оно просто в своей конторе работает, поэтому когда есть много чего недоделанного более полезного, такое можно отложить пока не клюнет, благо заглушка есть. а так в реале ODBC от 3 до 5 версии все строку MySQL ODBC имели, а предложить своим дамам выбирать драйвер из списка мне показалось меньшим злом чем принять его единственность как нормальное явление, тем более по сути софт работал с дровами от 3 до 5 версии и пофиг какой в списке первым найдется , особых проблем с совместимость не было. хотя при перехода с 3 на 5е дрова что-то сделать пришлось, не то кодировки в ините класса задать, не то еще какой-то флаг в OPTION добавить, уже забыл, года 2 не видел как оно работает. а вообще в примерах там вроде как подлиньше, там и DSNы перебираются, но мне они были неинтересны, просто достало что в конторе на части компов новые дрова ODBC появились, а на части еще те которые в дистрибут софтины вшиты, потому потратил ровно столько времени чтоб не вникая выдрать кусок из примера, даже не переписав, благо софт не на продажу а себе в работу. |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
------------------ Без коментариев.. |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Перминов Игорь, СУПЕР!!!
Исправлено 1 раз(а). Последнее : descent52, 27.11.13 14:47 |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вообще-то более правильно брать класс в HOME(1)+"\Ffc\registry.vcx" - а так - ну внутри себя он именно это и делает - те же самые АПИ функции и вызывает И да, там есть и перечислитель DSN-ов, не только драйверов... ------------------ WBR, Igor |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Нееее, ну ваще молодчик простаки Перминов Игорь! Красота!
Исправлено 3 раз(а). Последнее : descent52, 27.11.13 14:49 |
Re: Как узнать имя ODBC драйвера для команды SQLConnect ? | |
---|---|
ViT-o-TiV Сообщений: 15 Дата регистрации: 14.06.2005 |
Спасибо за примеры, как раз нужно было узнать какие ODBC драйверы установлены. Но мне нужно пойти ещё дальше, нужно найти драйвер "SQL Server" и использовать его последнюю версию, если установлено несколько. Сначала было подумал брать информацию из описания (в строке "DriverODBCVer"), но как оказалось там не достоверная информация, например в младшем драйвере стоит версия "10.0", в старшем "3.80".
Смотрел пример из "\Samples\Solution\WinAPI\regodbc.sct", но там тоже про версию ничего нет. Подскажет кто-нить? |
© 2000-2024 Fox Club  |