Название: Вах, друзья ... шо не так? Скажите неумному. Отправлено: 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 от Ноябрь 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 кто нить знает? |