crossplatform.ru

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


  Ответ в Не могу получить данные из поля типа MONEY
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
silver47 Дата 25.4.2013, 10:45
 
Цитата(Iron Bug @ 25.4.2013, 10:46) *
я что-то не уверена, что SQL это сожрёт. значение типа VARCHAR в поле типа INT обычно переводится через CAST. хотя, насчёт MS SQL я не помню деталей.

SQL это сожрет и MS SQL и PostgreSQL и SQLite, кроме того, чуть выше был вывод qDebug, где видно, что запрос данные то вернул, так что дело не в этом. К тому же это был пример для того чтобы показать проблему, в реальной жизни там значение подставляется через QSqlQuery::bindValue();

Цитата(lanz @ 25.4.2013, 11:13) *
Если используется драйвер ODBC, то он не поддерживает тип MONEY. Можно вместо него использовать DECIMAL, либо в SELECT делать CAST.

Используется ODBC, менять тип поля нельзя. Пока обхожусь CAST.
Думал вообще-то что QVariant не поддерживает тип MONEY, а оказалось что драйвер гм....
lanz Дата 25.4.2013, 8:13
  Если используется драйвер ODBC, то он не поддерживает тип MONEY. Можно вместо него использовать DECIMAL, либо в SELECT делать CAST.
Iron Bug Дата 25.4.2013, 7:46
 
Цитата(silver47 @ 25.4.2013, 9:27) *
saleid = '21144'

я что-то не уверена, что SQL это сожрёт. значение типа VARCHAR в поле типа INT обычно переводится через CAST. хотя, насчёт MS SQL я не помню деталей.
silver47 Дата 25.4.2013, 6:27
 
Цитата(Алексей1153 @ 24.4.2013, 17:04) *
структуру таблицы и запрос в студию, что тут скрывать )


Думаете чем то поможет?

Таблица:
Раскрывающийся текст
CREATE TABLE [dbo].[sale] (
[id] int NOT NULL,
[saleid] int NULL,
[operationid] int NULL,
[peopleid] int NULL,
[itemid] int NULL,
[itemcount] money NULL,
[cost] money NULL,
[printed] bit NULL,
[daytime] datetime NULL
)
ON [PRIMARY]
GO


Запрос любой, затрагивающий значение поля cost или itemcount.
Например:
Раскрывающийся текст

query.exec("SELECT id, cost FROM sale WHERE saleid = '21144'");
query.first();
qDebug() << __FILE__ << __LINE__ << query.value(0) << query.value(1) << query.lastError().text();
[u]Вывод:[/u] ..\BillChecker_Qt_4\widget.cpp 107 QVariant(int, 132967) QVariant(, )

Алексей1153 Дата 24.4.2013, 14:04
  структуру таблицы и запрос в студию, что тут скрывать )
silver47 Дата 24.4.2013, 6:57
  Добрый день.
Столкнулся с такой проблемой: есть данные типа money в БД MS SQL, при запросе SELECT возвращается пустое значение.

Проблема повторяется и на Qt 4.8.4 и на Qt 5.0.1 с Win7.

С чем может быть связано? Спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 2:03