Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Ну вот и грабли с IBX   Найти похожие ветки 

 
Nexel   (2004-12-24 07:23) [0]

Ввожу в 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 т.е. убрав параметры заменив их на конкретные числа то все замечательно.... в чем мой косяк может заключаться?


 
stud ©   (2004-12-24 09:20) [1]

а каким образом присваиваеш значения параметрам?


 
Nexel   (2004-12-24 09:24) [2]

Да собственно пока еще не каким косяк застопоорился на попытке создать поля а присвоение я думаю надо делать стандартным образом
ParamByName("...").As...:=...;


 
Johnmen ©   (2004-12-24 09:36) [3]

>застопоорился на попытке создать поля

Какие поля ?


 
stud ©   (2004-12-24 09:37) [4]

так и делай

> ParamByName("...").As...:=...;

а потом скажи результат. поля тут при чем?


 
Val ©   (2004-12-24 10:55) [5]

Автор, покажи код пожалуйста. И покажи свой "косяк".Словесное описание проблемы очень хромает.


 
sniknik ©   (2004-12-24 12:02) [6]

давайте опишу подробнее (хотя я и не автор ;о), просто у меня получилось такую ошибку повторить)

ошибка тип
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 не работаю)).


 
Nexel   (2004-12-24 14:00) [7]

Да елки палки по поводу полей это 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;


 
Nexel   (2004-12-24 14:03) [8]

Млин вот так вот
With QPrice Do
Begin
  ParamByName("Natz").AsCurrency:=1;
  ParamByName("Stav").AsCurrency:=1;
  ParamByName("Skid").AsCurrency:=1;
  Open;
End;


 
Sergey13 ©   (2004-12-24 14:21) [9]

Шаманство конечно, но если попробовать
(:Natz*(PRICE/100))+
может *: плохо парсится. 8-)


 
Nexel   (2004-12-24 14:41) [10]

Да нет это я уже тоже пробовал блин.... задолбался вот и наговорили типа с IBX все круто и клево и вообще зашибисть а на элементарном запросе такой косяк вывалился.... мдя  все таки я думаю от BDE рано отказываться еще пока, но все 200% это дело в ПАРАМЕТРАХ УБЕРАЛ ИХ ВСЕ РАБОТАЕТ и одного не могу понять при чем тут массивы, блобы и тем более даты?????


 
Sergey13 ©   (2004-12-24 14:48) [11]

2[10] Nexel   (24.12.04 14:41)
А IBX ты апдейтил? На ibase.ru можно найти.


 
Nexel   (2004-12-24 15:00) [12]

Какой текущий релиз IBX?


 
Nexel   (2004-12-24 15:03) [13]

И сли можно прямую ссылочку плиз на IBX компонент просто баша уже не варит искать его тама


 
Sergey13 ©   (2004-12-24 15:04) [14]

http://ibase.ru/components.htm
7.08 для Д7 с СП1


 
Nexel   (2004-12-24 15:12) [15]

Блинство а SP1 для D7 где нарыть можно у меня просто D7 стоит... елки палки...


 
Nexel   (2004-12-24 15:57) [16]

Та же хренотень выскаивает судя по всему косячина еще какая...


 
Zacho ©   (2004-12-25 11:38) [17]

Nexel   (24.12.04 15:57) [16]

Да просто нельзя использовать параметры в таких конструкциях и IBX тут не причём. Нельзя сделать SELECT :PARAM .. или SELECT FIELD*:PARAM .. и всё тут. Не работает так IB. Параметры в SELECT можно использовать в условиях.


 
Vemer ©   (2004-12-25 13:22) [18]

Сделай ХП в базе и вызывай ее в IBQuery типа
Select * From
My_StoredProc(:Natz, :Stav, :Skid);


А внутри ХП делай с параметрами что хочешь )).



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.044 c
1-1105787139
speed
2005-01-15 14:05
2005.01.30
карта...


6-1099904771
alexb_1
2004-11-08 12:06
2005.01.30
Исходник download-менеджера


14-1105528663
Subdigger
2005-01-12 14:17
2005.01.30
xp, registry...


14-1105437303
ghg
2005-01-11 12:55
2005.01.30
насколько критичны ошибки в D2005?


1-1105728940
Ilya___
2005-01-14 21:55
2005.01.30
Как получить индекс выделенной пользователем ячейки Excel?