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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вах, друзья ... шо не так? Скажите неумному.  (Прочитано 7300 раз)
Deiv
Гость
« : Ноябрь 02, 2004, 09:39 »

/******************************************************
В чем может быть дело?
Пример стандартный, немного переделанный
не создает таблицу, сволочь
а в конце концов выдает сообщение (в аттаче)
QT 3.3.2 win, XP sp2,
SQL сервак на линухе IBM Informix 9.21, CSDK-2.50
Exel к источнику данных коннектится нормально и делает запросы
QT судя по всему коннектится к источнику, но нифига сделать дальше не может
в qt например есть демка demo
в закладке DATABASE -> SQL explorer
По кнопке Connect:
DRIVER,DATABASE NAME,USERNAME,HOSTNAME,PORT=default
(аналогично тексту внизу)
Некоторое время думает, но потом выдает список таблиц в базе, т.е он сервак на эту тему опросил, тот ответил и QT-прога поняла
Но никакие простейшие запросы (select * from client) или двойной клик по таблице положительного результата не вызывают
или сообщение в аттаче или "Database reported an error"
Не знаю чего делать
******************************************************/

#include <qapplication.h>
#include <qsqldatabase.h>
#include <qdatatable.h>
#include <qsqlcursor.h>
#include <qmessagebox.h>

/* Modify the following to match your environment */
#define DRIVER       "QODBC3"
//QSQLITE"  /* see the Qt SQL documentation for a list of available drivers */
#define DATABASE     "bti"
//:memory:" /* the name of your database */
#define USER         "informix"   /* user name with appropriate rights */
#define PASSWORD     "mix2001"   /* password for USER */
#define HOST         "" /* host on which the database is running */

class SimpleCursor : public QSqlCursor
{
public:
    SimpleCursor () : QSqlCursor( "simpletable" ) {}
protected:
    QSqlRecord* primeInsert()
    {
   /* a real-world application would use sequences, or the like */
   QSqlRecord* buf = QSqlCursor::primeInsert();
   QSqlQuery q( "select max(id)+1 from simpletable" );
   if ( q.next() )
          buf->setValue( "id", q.value(0) );
   return buf;
    }
};

void message(char *str) {
   QMessageBox::message("DBG",str,"OK",NULL,0);
}

int main( int argc, char ** argv )
{
    QApplication a( argc, argv );

    QSqlDatabase * db = QSqlDatabase::addDatabase( DRIVER );
    db->setDatabaseName( DATABASE );
    db->setUserName( USER );
    db->setPassword( PASSWORD );
    db->setHostName( HOST );

    if( !db->open() ){
   db->lastError().showMessage( "An error occured. Please read the README file in the sqltable"
                 "dir for more information.\n\n" );
   return 1;
    }

    message("Point number 1");
    if (!db->tables().contains("simpletable")) {
        message("Point number 2");
   QSqlQuery q("create table simpletable(id int, name varchar(20), address varchar(20))", db);
        q.lastError().showMessage("FAQ");
    }

    SimpleCursor cursor;

    QDataTable table( &cursor ); /* data table uses our cursor */
    table.addColumn( "name", "Name" );
    table.addColumn( "address", "Address" );
    table.setSorting( TRUE );

    a.setMainWidget( &table );
    table.refresh(); /* load data */
    table.show();    /* show widget */

    return a.exec();
}
Записан
Deiv
Гость
« Ответ #1 : Ноябрь 02, 2004, 13:22 »

>>http://www.trolltech.com/developer/changes/changes-3.3.3.html
Qt 3.3.3 is a bugfix release. It maintains both forward and backward
       compatibility (source and binary) with Qt 3.3.2, Qt 3.3.1 and Qt 3.3.0.
**********************
*                          Library
**********************
       General Fixes
       -------------
- QSql
   Fixed crash in ODBC-Driver in connection with Informix SE.

Всем спасибо, вопрос снимаю

А кстати где взять 3.3.3 кто нить знает?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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