Название: MS SQL + ODBC (и не только) Отправлено: Racheengel от Июль 15, 2007, 15:45 Добрый день.
Возникла следующая проблема: нужно начать работать с базой данных на MS SQL 2000 сервере, используя ODBC. Собрал драйвер, создал DSN в ODBC администраторе и пытаюсь использовать его из программы как: Код: QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); Получаю ошибку следующего содержания: Цитировать [ [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect] В связи с этим несколько вопросов: 1. Как корректно организовать подключение к ODBC? Надо ли указывать какие-либо доп. параметры? Нужны ли специальные значения для user & password? 2. На машине несколько ODBC DSN'ов - как указать, к какому именно я хочу присоединиться? 3. Какие параметры DNS предпочтительней указывать при его создании? Имеется в виду имя и т.д. 4. Если базы данных на сервере нету, она должна создаваться из программы. С MYSQL работает прекрасно. Но будет ли это работать для MS SQL? 5. Надо ли задавать какие-либо определенные параметры для самого SQL сервера и базы данных, чтобы они корретно поддерживались? Название: MS SQL + ODBC (и не только) Отправлено: SABROG от Июль 15, 2007, 16:20 Добавь это
Код:
В ODBC менеджере для источника вроде бы не обязательно устанавливать базу данных по умолчанию. В MSSQL чтобы узнать список таблиц или баз данных надо использовать системные таблицы и процедуры, почитай про это на форуме sql.ru, там отвечали на этот вопрос. Название: MS SQL + ODBC (и не только) Отправлено: Racheengel от Июль 15, 2007, 18:05 ок, спасибо, я тож так сделал, в конце концов,
вроде конектиться начало, но ошибка не пропала... (хотя странно - пишет, что нету источника данных, хотя базу юзает...) То есть вопрос 2 отпал. А вот с остальным пока не очень ясно. Пункт 3 особо беспокоит. Название: Re: MS SQL + ODBC (и не только) Отправлено: WW от Июль 16, 2007, 12:48 Цитата: "Racheengel" 1. Как корректно организовать подключение к ODBC? Надо ли указывать какие-либо доп. параметры? Нужны ли специальные значения для user & password? 2. На машине несколько ODBC DSN'ов - как указать, к какому именно я хочу присоединиться? 3. Какие параметры DNS предпочтительней указывать при его создании? Имеется в виду имя и т.д. 4. Если базы данных на сервере нету, она должна создаваться из программы. С MYSQL работает прекрасно. Но будет ли это работать для MS SQL? 5. Надо ли задавать какие-либо определенные параметры для самого SQL сервера и базы данных, чтобы они корретно поддерживались? по 3. как показали выше. Код: db = QSqlDatabase::addDatabase("QODBC"); можно так, если машина нулевая и твоего DSN'а еще нет. если на локальном сервере будешь запускать, то Server=(local) по 5. в основном не надо. это ближе к администрированию БД. по 4. подключайся к БД master Название: MS SQL + ODBC (и не только) Отправлено: Racheengel от Июль 16, 2007, 13:07 ок, спасибо, попробую через master.
сейчас еще один головняк - заказчег хочет поддерживать и MySql, и M$ сервера. Но версии SQL у них тоже разные, вот пишу врапперы... :( Название: MS SQL + ODBC (и не только) Отправлено: WW от Июль 16, 2007, 13:12 Цитата: "Racheengel" ок, спасибо, попробую через master. сейчас еще один головняк - заказчег хочет поддерживать и MySql, и M$ сервера. Но версии SQL у них тоже разные, вот пишу врапперы... :( страйся юзать стандарт SQL. меньше головняка будет. хотя избежать не удасться. а.. и еще... названия таблиц и полей бери в "". на мс-кий [] забей. Название: MS SQL + ODBC (и не только) Отправлено: Racheengel от Июль 16, 2007, 13:14 да стараюсь...
только там приколы, например M$ "IF NOT EXISTS" не понимает, вместо AUTOINCREMENT надо другие вещи писать, бинд параметров тоже немного по другому... в общем, стандарты у них на все разные... Название: MS SQL + ODBC (и не только) Отправлено: WW от Июль 16, 2007, 13:17 Цитата: "Racheengel" да стараюсь... только там приколы, например M$ "IF NOT EXISTS" не понимает, вместо AUTOINCREMENT надо другие вещи писать, бинд параметров тоже немного по другому... в общем, стандарты у них на все разные... тут опирайся на INFORMATION_SCHEMA. это стандарт. и сам ручками в коде... правда не помню, есть в мускуле оная. в PG точно есть. не говоря уж про коммерческие СУБД |