Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [qt4] ODBC бинд значений 
V
    Опции темы
GrishinUS
Дата 22.10.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Добрый день!

код:
Код


    QSqlDatabase dbInOut2 = QSqlDatabase::addDatabase("QODBC"); 
..............................
    
    bool connected = dbInOut2.open();
    if (!connected) 
        {
         QMessageBox msgBox;

            msgBox.setText("database : InOut");
            msgBox.setIcon(QMessageBox::Critical);
            msgBox.setDefaultButton(QMessageBox::Save);
            msgBox.setInformativeText(dbInOut2.lastError().text());
            msgBox.setStandardButtons(QMessageBox::Ok);
            msgBox.setDefaultButton(QMessageBox::Ok);
            msgBox.exec();
            
            return 10;
        }
    QSqlQuery query;
    query.prepare("INSERT INTO InOut (KartaNum, DateIn, PostIn, CarID) "
    "VALUES (?, GETDATE(), ?, ?");
    query.addBindValue("747744");
    query.addBindValue("1");
    query.addBindValue("sdrfwe");

    query.exec();


выдает ошибку :

QODBCResult::exec: Unable to execute statement:   [Microsoft][SQL Native Client]
[SQL Server]Incorrect syntax near '@P3'. [Microsoft][SQL Native Client][SQL Serv
er]Statement(s) could not be prepared.

у меня в запросе нет '@P3'!!

пробовал еще биндить с помощью
bind()
говорит что у объекта query такой метод не найден.
PM MAIL ICQ   Вверх
GrishinUS
Дата 22.10.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



вобщем экспериментальным путем установлено, что ошибка возникает если смешивать бинды со вставкой GetDate().
Например, вот так запись в таблицу прохдит :

Код

    query.prepare("INSERT INTO InOut3 (grishin, dateIn) "    
    "VALUES('ruhfusd', GetDate())");


и вот так тоже :
Код

        query.prepare("INSERT INTO InOut3 (grishin, dateIn) "    
        "VALUES(":grishin1");
    query.bindValue(":grishin1", "123");


Вопрос теперь в том как забиндить текущую дату?
PM MAIL ICQ   Вверх
crossly
Дата 22.10.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.10.2008

Репутация: нет
Всего: нет



QDate::currentDate();
PM MAIL   Вверх
GrishinUS
Дата 22.10.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.9.2006
Где: Самара

Репутация: нет
Всего: нет



Цитата(crossly @ 22.10.2008,  13:04)
QDate::currentDate();

вообще на клиенте может стоять некорректная дата, так что нужна дата с sql сервера. Ладно, короче говоря втопку этот бинд, сделал вот так :

Код

    query.prepare("INSERT "
    "INTO InOut "
    "    (KartaNum "
    "    , DateIn "
    "    , PostIn "    
    "    , CarID) "
    "VALUES ("
    "    '555' "
    "    , GETDATE() "
    "    , 12 "
    "    , '" + qstrID + "')"
    );
    
    query.exec();


Хороший форум -- что не напишешь, все решается (=
PM MAIL ICQ   Вверх
crossly
Дата 22.10.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.10.2008

Репутация: нет
Всего: нет



ну если так не нравится .... то мона вообще тупо постваить поле даты в запросе в конец... и биндить как тебе хочется..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.