| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > MS SQL Server и QT |
| Автор: nurfet 28.11.2012, 14:26 | ||
Подскажите пожалуйста! У меня вот такой вопрос. Мне удалось QT подключить к MS SQL Server, но не удается создать таблицу и ввести данные, вот код:
|
| Автор: nurfet 28.11.2012, 15:26 |
| К сожалению не помогло! |
| Автор: loneybibi 28.11.2012, 15:59 | ||||
| А может просто именовать соединение и при использовании QSqlQuery указывать соединение по имени:
Потом использовать так:
|
| Автор: nurfet 28.11.2012, 17:32 |
| А можно по подробнее, как создать именованное соединение? Это надо ставить новый экземпляр MSQLServer и именовать его? |
| Автор: loneybibi 28.11.2012, 20:38 | ||||||
MS SQL Server тут не причем. Вы когда создаете соединение назначаете ему имя: static bool createConnection()
А потом используете, я правда не помню как там точно указать соединение но должно быть так (посмотрите в примерах) :
|
| Автор: nurfet 29.11.2012, 12:41 |
| Все равно не получается создать таблицу! Может я не те шаги делаю. Я допустим, создаю базу данных в SQL Server Management Studio, затем бытаюсь с ней работать. Версия MSQL Server 2012, а QT 4.8.3. С SQLite работает на ура! И что значит использовать родной драйвер, вместо драйвера QODBC? |
| Автор: loneybibi 29.11.2012, 14:44 | ||||||
Вы кстати вообще собирали драйвер QODBC? Потому что не помню как в Windows но у Qt на linux при установке open source версии в комплекте идет только один драйвер - QSQLITE. Проверить существующие собранные драйвера можно сделать так:
Если в консоли не увидите нужный вам драйвер, вам нужно его собрать в ручную самому. Еще я вспомнил что ODBC имеет такое понятие как Connection String, поищите в интернете об этом, у вас в подключении вообще этого нет, а должно быть что то вроде этого:
Да и вообще чем не вариант перенести подключение к БД из отдельной функции в main(). И вообще советую тренироваться на MySql там и с драйверами легче и он бесплатный! |
| Автор: nurfet 29.11.2012, 19:10 | ||
Да драйвер QODBC я собрал в ручную. Проверил так как вы написали:
В консоле вывелись доступные драйверы в том числе и QODBC Connection String я пробовал. Дело в том, что подключение к базе данных происходит, а вот ввод данных ну ни как! Наверное все таки воспользуюсь MySQL как вы посоветовали. Просто моя задача научится работать с базами данных при помощи QT, а какую СУБД использовать не так уж и принципиально. А SQLite говорят слишком урезанный, поэтому выбор пал на Microsoft SQL Server. Спасибо за советы! |
| Автор: loneybibi 29.11.2012, 20:02 | ||||
Я просто последний раз с MS Sql работал лет 5 назад ... поэтому не знаю что там сейчас.. Но про Connection String помню.. И действительно лучше будет поставить MySql собрать под нее драйвера и делать что угодно.. Если надо будет могу ссылку кинуть как драйвера под QMYSQL собрать. QSQLITE это собственно не то что бы урезанная вариация, это база данных для работы только в файле (файловая база данных) . Она не имеет никаких сетевых решений насколько я знаю. Сам пользуюсь mysql и советую! |
| Автор: nurfet 30.11.2012, 12:52 | ||
Собрал драйвер qsqlmysqld4.dll кинул в System32, пишу:
и почему то не в списке установленных драйверов, пробывал кинуть в директорию с программой все равно не видит, даже советовали кинуть в C:\Qt\4.8.3\plugins\sqldrivers бесполезно. Поздравьте меня, у меня получилось! )) Нужно было просто очистить кеш в Windows, в регистре удалить ненужные записи в ключах, и все заработало HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.debug HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.false |