crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Отображение таблицы данных, выбранных из БД
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 10.10.2008, 16:26
  А тебе зачем указатель?
Цитата
model = new QSqlTableModel ( parent, QSqlDatabase::database("my_connection") ) ;

и все

Это вариант для уже созданного и открытого соединения, если их несколько в программе
AD Дата 10.10.2008, 16:17
  ВСЕ! Спасибо - разобрался. Я создавал модель, а потом только вызывал функцию подключения к БД!


А вообще пожелание троллям такое бы сделать, чтобы в конструкторе QSqlTableModel вместо такого:
QSqlTableModel ( QObject * parent = 0, QSqlDatabase db = QSqlDatabase() ) 

/// вместо db указатель бы на db


вот такое бы сделать:
QSqlTableModel ( QObject * parent = 0, QSqlDatabase *db = &QSqlDatabase() ) 

/// вместо db указатель бы на db


Хотя, я могу многого не понимать и поэтому так рассуждаю. Если что, поправьте, пожалуйста!
Litkevich Yuriy Дата 10.10.2008, 16:11
  ну тогда показывай как ты их получаешь и помещаешь в комбобокс.
AD Дата 10.10.2008, 16:09
  Вот это шутки:
QSqlDatabase(invalid)
:huh:

Хотя в комбобоксе он выводит ВСЕ три таблицы из этой базы данных.
Litkevich Yuriy Дата 10.10.2008, 16:04
  Если у тебя разрешена консоль в проекте ты должен видеть результат соединения с БД, примерно так:
Цитата
QSqlDatabase(driver=""QODBC"", database=""ESTOP"", host="""", port=-1, user=""NNN"", open=true)
(это в моей программе)

А у тебя что в консоли?
AD Дата 10.10.2008, 15:59
 
Цитата(Litkevich Yuriy @ 10.10.2008, 16:51) *
Добавь после строки:
modelTable -> setTable(specTable); // QSqlTableModel
такой код:
qDebug() << modelTable->database()->tables();

Действительно, странно! Возвращает пустой список!!!! :unsure:
Litkevich Yuriy Дата 10.10.2008, 15:51
  Добавь после строки:
modelTable -> setTable(specTable); // QSqlTableModel
такой код:
qDebug() << modelTable->database()->tables();
AD Дата 10.10.2008, 15:41
 
Цитата
AD, попробуй в модели таблицу явно задать (Models) и убрать сортировку и фильтр, посмотри, что тогда select() вернёт

Нет, это не помогает. Значение - false
Litkevich Yuriy Дата 10.10.2008, 15:29
  AD, попробуй в модели таблицу явно задать (Models) и убрать сортировку и фильтр, посмотри, что тогда select() вернёт
AD Дата 10.10.2008, 15:23
  Cамое интересное, что при написании такой конструкции:
QSqlQuery query;
query.exec("select * from Models where 2 > 1 order by modelID");
while(query.next())
{
    int id = query.value(0).toInt();
    string modelType = query.value(1).toString().toStdString();
    int k = 90;
}

- которая эквивалентна, по сути, предыдущей, я могу видеть нормальные значения id and modelType в дебаггере.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 23:27