![]() |
|
|
![]()
|
|
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
Подскажите пожалуйста! У меня вот такой вопрос. Мне удалось QT подключить к MS SQL Server, но не удается создать таблицу и ввести данные, вот код:
|
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
этот QSqlDatabase живёт до выхода из функции. попробуй как-то так
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
К сожалению не помогло!
|
|||
|
||||
| loneybibi |
|
||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
А может просто именовать соединение и при использовании QSqlQuery указывать
соединение по имени:
Потом использовать так:
-------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||
|
|||||
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
А можно по подробнее, как создать именованное соединение? Это надо ставить новый экземпляр MSQLServer и именовать его?
|
|||
|
||||
| loneybibi |
|
||||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
MS SQL Server тут не причем. Вы когда создаете соединение назначаете ему имя: static bool createConnection()
А потом используете, я правда не помню как там точно указать соединение но должно быть так (посмотрите в примерах) :
-------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||||
|
|||||||
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
Все равно не получается создать таблицу! Может я не те шаги делаю. Я допустим, создаю базу данных в SQL Server Management Studio, затем бытаюсь с ней работать. Версия MSQL Server 2012, а QT 4.8.3. С SQLite работает на ура! И что значит использовать родной драйвер, вместо драйвера QODBC?
|
|||
|
||||
| loneybibi |
|
||||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Вы кстати вообще собирали драйвер QODBC? Потому что не помню как в Windows но у Qt на linux при установке open source версии в комплекте идет только один драйвер - QSQLITE. Проверить существующие собранные драйвера можно сделать так:
Если в консоли не увидите нужный вам драйвер, вам нужно его собрать в ручную самому. Еще я вспомнил что ODBC имеет такое понятие как Connection String, поищите в интернете об этом, у вас в подключении вообще этого нет, а должно быть что то вроде этого:
Да и вообще чем не вариант перенести подключение к БД из отдельной функции в main(). И вообще советую тренироваться на MySql там и с драйверами легче и он бесплатный! Это сообщение отредактировал(а) loneybibi - 29.11.2012, 14:47 -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||||
|
|||||||
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
Да драйвер QODBC я собрал в ручную. Проверил так как вы написали:
В консоле вывелись доступные драйверы в том числе и QODBC Connection String я пробовал. Дело в том, что подключение к базе данных происходит, а вот ввод данных ну ни как! Наверное все таки воспользуюсь MySQL как вы посоветовали. Просто моя задача научится работать с базами данных при помощи QT, а какую СУБД использовать не так уж и принципиально. А SQLite говорят слишком урезанный, поэтому выбор пал на Microsoft SQL Server. Спасибо за советы! |
|||
|
||||
| loneybibi |
|
||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Я просто последний раз с MS Sql работал лет 5 назад ... поэтому не знаю что там сейчас.. Но про Connection String помню.. И действительно лучше будет поставить MySql собрать под нее драйвера и делать что угодно.. Если надо будет могу ссылку кинуть как драйвера под QMYSQL собрать. QSQLITE это собственно не то что бы урезанная вариация, это база данных для работы только в файле (файловая база данных) . Она не имеет никаких сетевых решений насколько я знаю. Сам пользуюсь mysql и советую! -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||
|
|||||
| nurfet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 18.7.2008 Репутация: нет Всего: нет |
Собрал драйвер 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 Это сообщение отредактировал(а) nurfet - 30.11.2012, 14:07 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |