![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ну вот и грабли с IBX [D7, IB6.x]
Nexel © (2004-12-24 07:23:00)Ввожу в TIBQuey.SQL Следующее
SELECT
"DATE",
KZAK,
NDS,
NOMSER,
NOMSERT,
PP,
PROIZV,
RESTS,
SUM(
PRICE+
((PRICE/100)*:Natz)+
((PRICE/100)*:Stav)+
((PRICE/100)*:Skid)
) AS CLIPRICE
FROM PRICE
GROUP BY "DATE",KZAK,NDS,NOMSER,NOMSERT,PP,PROIZV,RESTS
ORDER BY PP ASC
Соответственно три параметра
Natz
Stav
Skid
И при попытке определить поля получаю
Dynamic SQL Error
Sql Error Code = -607
Array/Blob/Date data types not allowed in arithmetic
Пробовал для параметров и ftBCD и ftFlat и ftCurrency бестолково
если послать запрос задав явно значения Natz,Stav,Skid т.е. убрав параметры заменив их на конкретные числа то все замечательно.... в чем мой косяк может заключаться?
Vemer (2004-12-25 13:22:00) [1]Сделай ХП в базе и вызывай ее в IBQuery типа
Select * From
My_StoredProc(:Natz, :Stav, :Skid);
А внутри ХП делай с параметрами что хочешь )).
Zacho (2004-12-25 11:38:00) [2]Nexel (24.12.04 15:57) [16]
Да просто нельзя использовать параметры в таких конструкциях и IBX тут не причём. Нельзя сделать SELECT :PARAM .. или SELECT FIELD*:PARAM .. и всё тут. Не работает так IB. Параметры в SELECT можно использовать в условиях.
Nexel (2004-12-24 15:57:00) [3]Та же хренотень выскаивает судя по всему косячина еще какая...
Nexel (2004-12-24 15:12:00) [4]Блинство а SP1 для D7 где нарыть можно у меня просто D7 стоит... елки палки...
Sergey13 (2004-12-24 15:04:00) [5]http://ibase.ru/components.htm
7.08 для Д7 с СП1
Nexel (2004-12-24 15:03:00) [6]И сли можно прямую ссылочку плиз на IBX компонент просто баша уже не варит искать его тама
Nexel (2004-12-24 15:00:00) [7]Какой текущий релиз IBX?
Sergey13 (2004-12-24 14:48:00) [8]2[10] Nexel (24.12.04 14:41)
А IBX ты апдейтил? На ibase.ru можно найти.
Nexel (2004-12-24 14:41:00) [9]Да нет это я уже тоже пробовал блин.... задолбался вот и наговорили типа с IBX все круто и клево и вообще зашибисть а на элементарном запросе такой косяк вывалился.... мдя все таки я думаю от BDE рано отказываться еще пока, но все 200% это дело в ПАРАМЕТРАХ УБЕРАЛ ИХ ВСЕ РАБОТАЕТ и одного не могу понять при чем тут массивы, блобы и тем более даты?????
Sergey13 (2004-12-24 14:21:00) [10]Шаманство конечно, но если попробовать
(:Natz*(PRICE/100))+
может *: плохо парсится. 8-)
Nexel (2004-12-24 14:03:00) [11]Млин вот так вот
With QPrice Do
Begin
ParamByName('Natz').AsCurrency:=1;
ParamByName('Stav').AsCurrency:=1;
ParamByName('Skid').AsCurrency:=1;
Open;
End;
Nexel (2004-12-24 14:00:00) [12]Да елки палки по поводу полей это Fields то и значит пытаюсь создать поля это двойной щелчек по TIBQUERY и попытка Add Fields при чем тут код о коде речи еще и нет ошибка вылетает именно на этом уже(на попытке создать объекты-поля):o) (может я конечно и не прав что я их пытаюсь их создать...??? но думаю это делать нужно что то мне подсказывает(шутка)) даже если не создавать объекты поля... один фиг инициализация запроса вот код
With QPrice Do
Begin
ParamByName('Natz').AsCurrency:=1;
ParamByName('Stav').AsCurrency:=1;
ParamByName('Skid').AsCurrency:=1;
End;
Текущий тип у Natz,Skid,Stav ftCurrency и опять та же ошибка блин.... удолбался я уже может дельфа и IB такие запросы вообще не умеет исполнять??? сомниваюсь я.... что не умеет... значит косяк у меня где то... но где???? Да кстати Delphi7 IB 6.5 пробовал запрос послать напрямую все идеально отрабатывается.... эхххх....
QPrice.Open;
sniknik (2004-12-24 12:02:00) [13]давайте опишу подробнее (хотя я и не автор ;о), просто у меня получилось такую ошибку повторить)
ошибка тип
EOleException :
Dynamic SQL Error
SQL error code = -607
Array/BLOB/DATE data types not allowed in arithmetic
на запросе с параметром (упрощено)
SELECT FIELD1 * :Natz FROM TABLE1
(если параметр заменить на цифру в самом запросе то естественно проходит нормально)
конект через ADO, OLEDB ZStyle провайдер
строка подключения
Provider=IBOLE.Provider.v4;Password=masterkey;Persist Security Info=True;Data Source=D:\DB\CONMAN.GDB
параметр задавал так (пробовал в уже готовой, там именно так и задается, менять пробовать "стандартно" естественно ломает ;)
InPar:= 2;
Parameters.CreateParameter(Copy(sPar, 2, 9), ftInteger, pdInput, 0, InPar);
(для такого задания предварительно изменяется строка запроса с параметром, имя меняется на вопрос, получается "SELECT FIELD1 * ? FROM TABLE1", это правильная форма со всеми другими OLEDB провайдерами работает, только с IB (вернее FireBird он у меня, у него и видел) такая ошибка)
p.s. не надо меня посылать на сайт интербейса ;о)) посылайте автора, меня это не интересует (вернее интересно постольку поскольку но не настолько чтобы разбиратся, с IB не работаю)).
Val (2004-12-24 10:55:00) [14]Автор, покажи код пожалуйста. И покажи свой "косяк".Словесное описание проблемы очень хромает.
stud (2004-12-24 09:37:00) [15]так и делай
> ParamByName('...').As...:=...;
а потом скажи результат. поля тут при чем?
Johnmen (2004-12-24 09:36:00) [16]>застопоорился на попытке создать поля
Какие поля ?
Nexel (2004-12-24 09:24:00) [17]Да собственно пока еще не каким косяк застопоорился на попытке создать поля а присвоение я думаю надо делать стандартным образом
ParamByName('...').As...:=...;
stud (2004-12-24 09:20:00) [18]а каким образом присваиваеш значения параметрам?