Russian Qt Forum
Ноябрь 25, 2024, 21:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с БД  (Прочитано 2037 раз)
eXeLe
Гость
« : Март 01, 2013, 17:40 »

Создаю небольшое приложение, работающее с БД.
До этого как то писал под линукс по работе с PSQL и вроде все было идеально, но сейчас потребовалось написать под MS SQL Server 2005.
Поставил нужные дрова, с горем пополам смог написать соединение с сервером (так, как делал с PSQL - не вышло, требовало указать драйвер и прочее):

Код:
    QString connectionTemplate = "DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;";
    QString connectionString = connectionTemplate.arg("serverhostname").arg("databsename");
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "connecti");
    db.setDatabaseName(connectionString);
    db.setUserName("eXeLe");
    db.setPassword("123123123");
    bool ok = db.open();


В хэдере прописал:
Код:
QSqlQuery *query;

в cpp-шнике пишу:
Код:
    query=new QSqlQuery(db);
    query->exec("insert into table_name (name) values (123123123)");
Завязываю все на кнопку, запускаю, жму кнопку - ноль реакции.
То что кнопка успешно нажимается и указанный код выполняется - сомнений нет.
В самой базе смотрел через sp_who - коннект от приложения устанавливается.
Однако указанное в exec - не выполняется. Сначала пробовал делать select и его обрабатывать - ничего не обрабатывалось, потом уже перешел просто на insert. В базу ничего не вносится. Тот же запрос, выполненные в SSMS - выполняется успешно.
В чем еще могут быть проблемы?
Записан
Bepec
Гость
« Ответ #1 : Март 01, 2013, 19:59 »

Проблема в том, что у вас нехватает ума смелости написать query->lastError(); и посмотреть что получится.
Записан
eXeLe
Гость
« Ответ #2 : Март 01, 2013, 20:32 »

да, действительно не хватило ума вызвать lasterror =)
как оказалось, роль db_owner и прочие не дают автоматически прав пользователю на селект/инсерт и все остальное.
Записан
Bepec
Гость
« Ответ #3 : Март 01, 2013, 21:46 »

Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.119 секунд. Запросов: 20.