Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];

Вниз

Strored Procedure - где ошибка   Найти похожие ветки 

 
Алексей Пеньков   (2002-09-11 14:00) [0]

Здравствуйте.
Написал процедуру

////// Begin clipboard //////
CREATE PROCEDURE GetPrice (IN aData date, IN aWare ZSTRING(10), IN aPCode INT(2), OUT aPrice FLOAT);

BEGIN
SET aPrice =0;
SET aPrice =
(SELECT price FROM warehist_dbt
WHERE (ware = aWare) and (KodPrice = aPCode) and
(NdprtClnt = 0) and (KodClnt = 0) and "date" =
(select min("date") from warehist_dbt where (ware = aWare) and (KodPrice = aPCode) and (NdprtClnt = 0) and (KodClnt = 0) and ("date" > adata)
))
);

IF (aPrice = 0) then
SET aPrice = (SELECT price FROM warePrc_dbt
WHERE (ware = aWare) and (KodPrice = aPCode) and (NdprtClnt = 0) and (KodClnt = 0) );
END IF;
END
////// End clipboard //////

В проекте:

GetPRC.ParamByName("aData").AsDate:=Data1.Date;
getPRC.ParamByName("aWare").AsString:=tbTable1.fieldByName("Ware").AsString;
getPRC.ParamByName("aPCode").AsInteger:=2;
getPrc.ExecProc;

Здесь вылетает ошибка:
Key violation
[Pervasive Software][ODBC Interface][Pervasive Software SQL Engine] The output parameter must be a variable or parameter name

Где и что я наворочал?


 
Извращенец2   (2002-09-11 15:55) [1]

Похоже, проблема в выходных параметрах а не в теле процедуры. Здесь ошибка на логическом уровне, а не на механическом(написание). проверь, что процедура должна выдавать и выдает ли она это.


 
KDS   (2002-09-11 18:27) [2]

>The output parameter must be a variable or parameter name
по нашему:
Выходной параметр должен быть переменной (или именем параметра?)

проблема тут
getPRC.ParamByName("aPCode").AsInteger:=2;
надо ставить переменную туда, а не литерал! Т.е.

var vPCode:SmallInt;
...
vPCode:=2;
...
getPRC.ParamByName("aPCode").AsInteger:=vPCode;


 
Алексей Пеньков   (2002-09-12 08:17) [3]

>Извращенец2
>проверь, что процедура должна выдавать и выдает ли она это.
Ошибка вылетает при попытке выполнить процедуру, т.е. ничего не выдает.

>KDS
К сожалению, не тут. К тому же aPCode - входной (IN) параметр.


 
Извращенец2   (2002-09-12 08:48) [4]

> Алексей Пеньков
я имел ввиду логическую модель, т.е. прокрутить все в голове:)


 
ЮЮ   (2002-09-12 08:59) [5]

SET aPrice = (SELECT price FROM warePrc_dbt WHERE (ware = aWare) and (KodPrice = aPCode) and (NdprtClnt = 0) and (KodClnt = 0) );

попытка переменной присвоить DataSet. Очевидно, что переменной надо присваивать значение поля одной из записей, возвращаемой SELECTOM


 
LordOfSilence   (2002-09-12 09:04) [6]

То Алексей Пеньков.
Извините, немного не по теме.
Алексей, а Вы случайно никогда не работали в Москве
на фирме НИКПА+?


 
Алексей Пеньков   (2002-09-12 10:30) [7]

>Извращенец2
В голове логика срабатывает (IMHO), а на сервере отказывает :)

>ЮЮ
Вероятно, Вы правы. Попробую использовать CURSOR для установки
значения выходного параметра.

>LordOfSilence
Нет, но готов рассмотреть предложения о сотрудничестве ;)


 
SteelHorse   (2002-09-12 10:41) [8]

>Алексей Пеньков
Извините, значит тезка и по имени и по фамилии
с одним человеком. Бывают всякие совпадения...



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

Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-8043
Korona
2002-09-22 17:40
2002.10.03
Как сделать окно активным?


6-8088
BlackSun
2002-08-02 15:01
2002.10.03
Отправка email, глючит ;(


3-7782
SlavaG
2002-09-15 10:27
2002.10.03
CalcFields - суммирование


3-7781
qwerty0
2002-09-14 21:19
2002.10.03
Лицензии к Interbase


8-8074
Arhangel
2002-05-27 20:02
2002.10.03
MSAgent





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский