![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при передаче параметра в запрос
vitv © (2007-04-23 11:16:00)при передаче параметра в запрос происходит ошибка:
arithmetic exception, numeric overflow, or string truncation
vitv (2007-04-24 14:07:00) [1]СПАСИБО ВСЕМ ЗА ПОМОЩЬ!!!
> Desdechado © (24.04.07 12:37) [28]
> http://www.ibase.ru/devinfo/ibrusfaq.htm
;)
Desdechado (2007-04-24 12:37:00) [2]http://www.ibase.ru/devinfo/ibrusfaq.htm
vitv (2007-04-24 11:49:00) [3]Разобрался с этим, но всплыла и другая проблема:
(SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.SEANS=RV.seans and
RV1.rezvopros=rv.rezvopros and
RV1.FAKULTET like:f1 and
RV1.otvet like 'Правильно'),-в ибэксперте выполняется,
но в IBQuery- arithmetic exception, numeric overflow, or string truncation,
lc_ctype=1251-прописываю, bad patameters on attach or create database
CHARACTER SET 1251 is not defined
vitv (2007-04-23 15:10:00) [4]Я ПОНЯЛ В ЧЁМ ДЕЛО!!!
Дело в операции деления. Т.е. когда результат запроса делим на результат второго запроса, то :(
vitv (2007-04-23 14:55:00) [5]
> > Куда like понаставил к числовым полям? Или FireBird 1.
> 5.> 1 уже так далеко от народа? Оказываеися и MS SQL давно
> уже > там. А мы всё привыкли к явному и корректному приведению
> > типов :)А если значение не передаётся параметру, то как
> быть.Если =,то на % ругается.
Возможно это реализовать по-другому?
vitv (2007-04-23 14:28:00) [6]То же самое....Я в шоке.
DrPass (2007-04-23 13:19:00) [7]
> ПРОВЕРИЛ! ТАМ ЭТОТ ПАРАМЕТР СТОЯЛ!!!
Тогда наоборот, убери :)
vitv (2007-04-23 13:01:00) [8]
> vitv © (23.04.07 12:54) [21]
> > > у меня ibexpertА причем тут IBExpert? Ты запрос в программе
> > выполняешь? Вот в программе в параметрах базы и надо указать.
> > В параметрах IBDatabase прописать?
ПРОВЕРИЛ! ТАМ ЭТОТ ПАРАМЕТР СТОЯЛ!!!
vitv (2007-04-23 12:54:00) [9]
> > у меня ibexpertА причем тут IBExpert? Ты запрос в программе
> выполняешь? Вот в программе в параметрах базы и надо указать.
>
В параметрах IBDatabase прописать?
DrPass (2007-04-23 12:47:00) [10]
> у меня ibexpert
А причем тут IBExpert? Ты запрос в программе выполняешь? Вот в программе в параметрах базы и надо указать.
vitv (2007-04-23 12:47:00) [11]
> Куда like понаставил к числовым полям? Или FireBird 1.5.
> 1 уже так далеко от народа? Оказываеися и MS SQL давно уже
> там. А мы всё привыкли к явному и корректному приведению
> типов :)
А если значение не передаётся параметру, то как быть.
Если =,то на % ругается.
vitv (2007-04-23 12:39:00) [12]у меня ibexpert. В параметрах базы только кодировка и набор символов экранного шрифта.
ЮЮ (2007-04-23 12:39:00) [13]Куда like понаставил к числовым полям? Или FireBird 1.5.1 уже так далеко от народа?
Оказываеися и MS SQL давно уже там. А мы всё привыкли к явному и корректному приведению типов :)
Desdechado (2007-04-23 12:31:00) [14]В параметрах подключения.
vitv (2007-04-23 12:30:00) [15]
> Готов поспорить, он указал кодировку Win1251 при создании
> базы, и не указал lc_ctype=1251 при подключении к нейПоднимаю
> ставку.Готов поспорить, что сама ошибка не из за при передаче
> параметра в запрос :)
lc_ctype=1251-а где это указывается?
vitv (2007-04-23 12:30:00) [16]
> Готов поспорить, он указал кодировку Win1251 при создании
> базы, и не указал lc_ctype=1251 при подключении к нейПоднимаю
> ставку.Готов поспорить, что сама ошибка не из за при передаче
> параметра в запрос :)
lc_ctype=1251-а где это указывается?
ЮЮ (2007-04-23 12:27:00) [17]> Некоторые параметры такстовые, некоторые числовые
DataModule25.PodscotPrav.ParamByName('f1'). AsString
DataModule25.PodscotPrav.ParamByName('f2'). AsString
DataModule25.PodscotPrav.ParamByName('f3'). AsString
DataModule25.PodscotPrav.ParamByName('f4'). AsString
Не обнаружил никаких других кроме как текстовых
Куда like понаставил к числовым полям? Или FireBird 1.5.1 уже так далеко от народа?
С другими запросами всё ок
Т.е. такой запрос работает ?
SELECT FAKULTET, count(*)
FROM rezultati1vopros
WHERE FAKULTET like '%'
GROUP BY FAKULTET
vitv (2007-04-23 12:17:00) [18]С другими запросами всё ок
Reindeer Moss Eater (2007-04-23 12:12:00) [19]Готов поспорить, он указал кодировку Win1251 при создании базы, и не указал lc_ctype=1251 при подключении к ней
Поднимаю ставку.
Готов поспорить, что сама ошибка не из за
при передаче параметра в запрос
:)
vitv (2007-04-23 12:11:00) [20]весь запрос:
SELECT distinct RV.rezvopros,
(((SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.rezvopros=RV.rezvopros and
RV1.SEANS=RV.SEANS and
RV1.FAKULTET like:f1 and
RV1.KURS like:f2 and
RV1.gruppa like:f3 and
RV1.otvet like 'Ïðàâèëüíî')*1.0000/(SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.SEANS=RV.seans and
RV1.rezvopros=rv.rezvopros and
RV1.FAKULTET like:f1 and
RV1.KURS like:f2 and
RV1.gruppa like:f3 ))*1.0000)*100,
(((SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.rezvopros=RV.rezvopros and
RV1.SEANS=RV.SEANS and
RV1.FAKULTET like:f1 and
RV1.KURS like:f2 and
RV1.gruppa like:f3 and
RV1.otvet like 'Íå ïðàâèëüíî')*1.0000/
(SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.SEANS=RV.seans and
RV1.rezvopros=rv.rezvopros and
RV1.FAKULTET like:f1 and
RV1.KURS like:f2 and
RV1.gruppa like:f3 ))*1.0000)*100,
(SELECT count(RV1.otvet)
FROM rezultati1vopros RV1
WHERE RV1.SEANS=RV.seans and
RV1.rezvopros=rv.rezvopros and
RV1.FAKULTET like:f1 and
RV1.KURS like:f2 and
RV1.gruppa like:f3 ),
V.id_vopros,V.vopros
FROM rezultati1vopros rv,VOPROSY V,fakultety f
where
RV.SEANS=:f4 AND
RV.rezvopros=V.id_vopros