Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ну вот и грабли с 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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо