crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Как считать значение поля SQL таблицы в переменную
soskol-ist
  опции профиля:
сообщение 20.4.2009, 11:33
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 20.4.2009
Пользователь №: 697

Спасибо сказали: 0 раз(а)




Репутация:   0  


помогите, каким способом лучше записать значение из столбца sql таблицы в переменную.
мне нужно посчитать значение по некоторой формуле, и потом записать его в новый столбец таблицы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 20.4.2009, 11:42
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(soskol-ist @ 20.4.2009, 12:33) *
каким способом лучше записать значение

А какие способы ты знаешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soskol-ist
  опции профиля:
сообщение 20.4.2009, 11:51
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 20.4.2009
Пользователь №: 697

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(SABROG @ 20.4.2009, 12:42) *
Цитата(soskol-ist @ 20.4.2009, 12:33) *
каким способом лучше записать значение

А какие способы ты знаешь?

я только начал разбираться с qt, знаю что можно таблицу запихнуть в модель и оттуда считать, но как пока не разобрался.
QSqlTableModel model_vozvrat;
model_vozvrat.setTable("spr_vozvrat");
model_vozvrat.setFilter("kod_tovara = " + record.value("kod_tovara").toString());
model_vozvrat.select();

а вот как обратиться к записи не знаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 20.4.2009, 11:58
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Тебе именно из модели надо данные читать или из QTableView?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soskol-ist
  опции профиля:
сообщение 20.4.2009, 12:09
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 20.4.2009
Пользователь №: 697

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(SABROG @ 20.4.2009, 12:58) *
Тебе именно из модели надо данные читать или из QTableView?

принципиальой разницы нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 20.4.2009, 12:33
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


    QModelIndex item = model->index(row, column);
    qDebug() << item.data().toString();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2009, 12:40
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


soskol-ist, если тебе не нужно отображать данные в таблице, а только получить значение поля, для неких внутренних действий.
То проще воспользоваться QSqlQuery.

примерно так:
  QSqlQuery        q(db);
  QString        qstr, qerr;
  bool            ok;
    
    qstr = QString("SELECT a.F_ID FROM REFPOINT a WHERE a.F_OBJNAME = '%1'")
            .arg(combobox->currentText());
    q.exec(qstr);
    ok = q.first();
    if (!ok)
    {
        qerr = q->lastError().text();
        qDebug() << "No query, Reason:" << qerr;
    }
    //береём нулевой столбец и приводим его к строке
    strpoint = q.value(0).toString();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soskol-ist
  опции профиля:
сообщение 21.4.2009, 14:21
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 20.4.2009
Пользователь №: 697

Спасибо сказали: 0 раз(а)




Репутация:   0  


SABROG схема, представленая тобой выдает столбец целиком, мне же надо записать значение конкретного поля в переменную.

Цитата(Litkevich Yuriy @ 20.4.2009, 13:40) *
soskol-ist, если тебе не нужно отображать данные в таблице, а только получить значение поля, для неких внутренних действий.
То проще воспользоваться QSqlQuery.

примерно так:
  QSqlQuery        q(db);
  QString        qstr, qerr;
  bool            ok;
    
    qstr = QString("SELECT a.F_ID FROM REFPOINT a WHERE a.F_OBJNAME = '%1'")
            .arg(combobox->currentText());
    q.exec(qstr);
    ok = q.first();
    if (!ok)
    {
        qerr = q->lastError().text();
        qDebug() << "No query, Reason:" << qerr;
    }
    //береём нулевой столбец и приводим его к строке
    strpoint = q.value(0).toString();

непонятно зачем тут присутствует элемент combobox.
спасибо конечно, но мне нужно взять значение из одного поля столбца, и поизвести вычисления по следующей формуле T+=ti/N; где N-это количество строк в столбце, ti-i-ая строка в столбце. А потом все записать с помощью SQL запроса в базу.
по сути вопросов два:
1) как записать конкретное поле в переменную?
2) как посчитать количество строк в столбце/табице?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.4.2009, 14:38
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(soskol-ist @ 21.4.2009, 18:21) *
непонятно зачем тут присутствует элемент combobox.
это просто кусок кода из моего исходника.

Цитата(soskol-ist @ 21.4.2009, 18:21) *
1) как записать конкретное поле в переменную?
Цитата(soskol-ist @ 21.4.2009, 18:21) *
//береём нулевой столбец и приводим его к строке
strpoint = q.value(0).toString();


Цитата(soskol-ist @ 21.4.2009, 18:21) *
2) как посчитать количество строк в столбце/табице?
ты имеешь в виду кол-во строк в выборке? Если да, то смотри QSqlRecord::size()

Цитата(Litkevich Yuriy @ 21.4.2009, 18:33) *
Если да, то смотри QSqlRecord::size()
пардон, см. int QSqlQuery::size () const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soskol-ist
  опции профиля:
сообщение 21.4.2009, 15:58
Сообщение #10


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 20.4.2009
Пользователь №: 697

Спасибо сказали: 0 раз(а)




Репутация:   0  


спс за помощь, решил так:
QSqlQuery query1("SELECT T FROM spr_vozvrat");    
    if ( query1.isActive() )
    {
        while ( query1.next() )
            {                
                QString name = query1.value(0).toString();
                tau=+name.toFloat()/query1.size();                
                qDebug() << tau;
            }
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.12.2024, 17:22