Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
ВнизОшибка при передаче параметра в запрос Найти похожие ветки
← →
vitv © (2007-04-23 11:16) [0]при передаче параметра в запрос происходит ошибка:
arithmetic exception, numeric overflow, or string truncation
← →
ЮЮ © (2007-04-23 11:24) [1]Не того типа параметр передал. Или вообше неопределил какой-то параметр запроса.
З.Ы. запрос и код задания параметров - в студию
← →
vitv © (2007-04-23 11:35) [2](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
← →
vitv © (2007-04-23 11:38) [3]DataModule25.PodscotPrav.Close;
if sDBLookUpComboBox7.Enabled=false then
DataModule25.PodscotPrav.ParamByName("f1").AsString:="%"
else
DataModule25.PodscotPrav.ParamByName("f1").AsString:=inttostr(DataModule25.fakul tet.fieldbyname("id_fak").AsInteger);
if sDBLookUpComboBox8.Enabled=false then
DataModule25.PodscotPrav.ParamByName("f2").AsString:="%"
else
DataModule25.PodscotPrav.ParamByName("f2").AsString:=DataModule25.kurs.fieldbyna me("KURSN").AsString;
if sDBLookUpComboBox9.Enabled=false then
DataModule25.PodscotPrav.ParamByName("f3").AsString:="%"
else
DataModule25.PodscotPrav.ParamByName("f3").AsString:=inttostr(DataModule25.grupp a.fieldbyname("id_gru").AsInteger);
DataModule25.PodscotPrav.ParamByName("f4").AsString:=inttostr(DataModule25.Seans Vop.fieldbyname("seans").AsInteger);
DataModule25.PodscotPrav.Open;
← →
vitv © (2007-04-23 11:44) [4]FireBird 1.5.1
← →
Reindeer Moss Eater © (2007-04-23 11:46) [5]Текст ошибки приведен не полностью. Ключ к разгадке как раз в конце сообщения.
← →
vitv © (2007-04-23 11:53) [6]
> Reindeer Moss Eater © (23.04.07 11:46) [5]
> Текст ошибки приведен не полностью. Ключ к разгадке как
> раз в конце сообщения.
<
> FireBird 1.5.1 ?
/I>
← →
ЮЮ © (2007-04-23 11:58) [7]Текст запроса тоже приведен не полностью.
Ну и зачем числа к строкам приводить?
and RV1.gruppa = f3
DataModule25.PodscotPrav.ParamByName("f3").AsInteger := DataModule25.gruppa.fieldbyname("id_gru").AsInteger;
DataModule25.PodscotPrav.ParamByName("f4").AsInteger := DataModule25.SeansVop.fieldbyname("seans").AsInteger;
← →
vitv © (2007-04-23 12:02) [8]Некоторые параметры такстовые, некоторые числовые
← →
DrPass © (2007-04-23 12:04) [9]
> Не того типа параметр передал. Или вообше неопределил какой-
> то параметр запроса
> FireBird 1.5.1
Готов поспорить, он указал кодировку Win1251 при создании базы, и не указал lc_ctype=1251 при подключении к ней
← →
vitv © (2007-04-23 12:11) [10]весь запрос:
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
← →
Reindeer Moss Eater © (2007-04-23 12:12) [11]Готов поспорить, он указал кодировку Win1251 при создании базы, и не указал lc_ctype=1251 при подключении к ней
Поднимаю ставку.
Готов поспорить, что сама ошибка не из за
при передаче параметра в запрос
:)
← →
vitv © (2007-04-23 12:17) [12]С другими запросами всё ок
← →
ЮЮ © (2007-04-23 12:27) [13]> Некоторые параметры такстовые, некоторые числовые
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:30) [14]
> Готов поспорить, он указал кодировку Win1251 при создании
> базы, и не указал lc_ctype=1251 при подключении к нейПоднимаю
> ставку.Готов поспорить, что сама ошибка не из за при передаче
> параметра в запрос :)
lc_ctype=1251-а где это указывается?
← →
vitv © (2007-04-23 12:30) [15]
> Готов поспорить, он указал кодировку Win1251 при создании
> базы, и не указал lc_ctype=1251 при подключении к нейПоднимаю
> ставку.Готов поспорить, что сама ошибка не из за при передаче
> параметра в запрос :)
lc_ctype=1251-а где это указывается?
← →
Desdechado © (2007-04-23 12:31) [16]В параметрах подключения.
← →
ЮЮ © (2007-04-23 12:39) [17]Куда like понаставил к числовым полям? Или FireBird 1.5.1 уже так далеко от народа?
Оказываеися и MS SQL давно уже там. А мы всё привыкли к явному и корректному приведению типов :)
← →
vitv © (2007-04-23 12:39) [18]у меня ibexpert. В параметрах базы только кодировка и набор символов экранного шрифта.
← →
vitv © (2007-04-23 12:47) [19]
> Куда like понаставил к числовым полям? Или FireBird 1.5.
> 1 уже так далеко от народа? Оказываеися и MS SQL давно уже
> там. А мы всё привыкли к явному и корректному приведению
> типов :)
А если значение не передаётся параметру, то как быть.
Если =,то на % ругается.
← →
DrPass © (2007-04-23 12:47) [20]
> у меня ibexpert
А причем тут IBExpert? Ты запрос в программе выполняешь? Вот в программе в параметрах базы и надо указать.
← →
vitv © (2007-04-23 12:54) [21]
> > у меня ibexpertА причем тут IBExpert? Ты запрос в программе
> выполняешь? Вот в программе в параметрах базы и надо указать.
>
В параметрах IBDatabase прописать?
← →
vitv © (2007-04-23 13:01) [22]
> vitv © (23.04.07 12:54) [21]
> > > у меня ibexpertА причем тут IBExpert? Ты запрос в программе
> > выполняешь? Вот в программе в параметрах базы и надо указать.
> > В параметрах IBDatabase прописать?
ПРОВЕРИЛ! ТАМ ЭТОТ ПАРАМЕТР СТОЯЛ!!!
← →
DrPass © (2007-04-23 13:19) [23]
> ПРОВЕРИЛ! ТАМ ЭТОТ ПАРАМЕТР СТОЯЛ!!!
Тогда наоборот, убери :)
← →
vitv © (2007-04-23 14:28) [24]То же самое....Я в шоке.
← →
vitv © (2007-04-23 14:55) [25]
> > Куда like понаставил к числовым полям? Или FireBird 1.
> 5.> 1 уже так далеко от народа? Оказываеися и MS SQL давно
> уже > там. А мы всё привыкли к явному и корректному приведению
> > типов :)А если значение не передаётся параметру, то как
> быть.Если =,то на % ругается.
Возможно это реализовать по-другому?
← →
vitv © (2007-04-23 15:10) [26]Я ПОНЯЛ В ЧЁМ ДЕЛО!!!
Дело в операции деления. Т.е. когда результат запроса делим на результат второго запроса, то :(
← →
vitv © (2007-04-24 11:49) [27]Разобрался с этим, но всплыла и другая проблема:
(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
← →
Desdechado © (2007-04-24 12:37) [28]http://www.ibase.ru/devinfo/ibrusfaq.htm
← →
vitv © (2007-04-24 14:07) [29]СПАСИБО ВСЕМ ЗА ПОМОЩЬ!!!
> Desdechado © (24.04.07 12:37) [28]
> http://www.ibase.ru/devinfo/ibrusfaq.htm
;)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.047 c