![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вернуть результат из вычисляемого поля запроса [D7, IB6.x, FireBird]
Shizuku © (2005-01-17 13:48:00)Не удаётсявернуть результат (значение поля sum_result) в переменную DELPHI из следующего запроса:
SELECT
sum(ANSWER.MARK) AS sum_result
FROM
RESULT
INNER JOIN ANSWER ON (RESULT.REPLY_ID = ANSWER.REPLY_ID)
WHERE
(RESULT.USER_ID = :USER_ID) AND
(RESULT.CREATED = 'NOW')
Запрос тестировалсяв EMS Interbase Manager - Query Builder, где прекрасно возращал требуемый результат.
Для возвратазначения используется код:
if (vartype(dm.IBQuery6.FieldValues['SUM_RESULT']) and
varTypeMask =varInteger) then
showmessage('Тест пройден. Сумма балов :'+string <== Error %.%(dm.IBQuery6.FieldValues['sum_result']))
else
showmessage('Тест пройден. Сумма балов : 0');
end;
Если убрать условие- обработчик, то ошибка:
Project PRIPO.exe raised exception class EVariantTypeCastError
with message 'Could not convert variant of type (Null) into type (String)....'
В отладке:
(vartype(dm.IBQuery6.FieldValues['SUM_RESULT']) and
varTypeMask =varInteger) = inacessible value
dm.IBQuery6.FieldValues['SUM_RESULT']= null (врёт)
Испытывался итакой код:
showmessage('Тест пройден. Сумма балов :'+
dm.IBQuery6.FieldByName('sum_result').AsString)
Результат - пустая строка
Danilka (2005-01-17 14:06:00) [21]приведи, плиз, текст процедуры, которая все это хозяйство делает.
заполняет параметры, выполняет запрос, и т.д.
Danilka (2005-01-17 14:04:00) [22]
> dm.IBQuery6.FieldValues['SUM_RESULT']= null (врёт)
Зачем?
я имею ввиду - зачем ему врать-то? :))