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

Вниз

Обращение к User Defined Function в MS SQL Server   Найти похожие ветки 

 
Алёна   (2005-07-08 14:15) [0]

Есть User Defined Function (вот ее текст):
CREATE FUNCTION dbo.F_GET_COST_STDX (@inIDI int, @inIDX int, @inIDU int, @inDATE datetime, @inIDCJ int)
RETURNS decimal(18,2)
AS
BEGIN
declare @VL_FKV decimal(18,2), @VL_FKC decimal(18,2), @VL_IDCR_PH int, @VL_COST decimal(18,2)
select top 1 @VL_COST = TP_PD.FCOST, @VL_IDCR_PH = TP_PH.IDCURR
from TP_PD
join TP_PH on TP_PH.ID=TP_PD.IDH
where TP_PD.ID = dbo.F_GET_COST_ID(@inIDI, @inIDX, @inIDU, @inDATE, @inIDCJ)
select top 1 @VL_FKV = TM_HY.FKV, @VL_FKC = TM_HY.FKC
from TM_HY
where TM_HY.FDATE <= @inDATE and IDCR_DST = 1 and IDCR_SRC = @VL_IDCR_PH
order by TM_HY.FDATE desc
return (select round(@VL_COST * @VL_FKV * @VL_FKC, 2))
END
Пытаюсь обратиться к ней, используя ADOQuery:
ADOQuery3.SQL.Text := "declare @d datetime set @d = getdate() SELECT * FROM dbo.F_GET_COST_STDX(" + ClientDataSet1.FieldByName("OurCode").Value + ", NULL, NULL, @d, NULL)";
ADOQuery3.Open;
ClientDataSet1.FieldByName("OurPrice").Value := ADOQuery3.Fields[0].Value;

На ADOQuery.Open падает со словами "Invalid object name "dbo.F_GET_COST_STDX ""...


 
Алёна   (2005-07-08 14:26) [1]

Причем если убрать DECLARE....SET и запрос сделать таким:
SELECT * FROM dbo.F_GET_COST_STDX(" + ClientDataSet1.FieldByName("OurCode").Value + ", NULL, NULL, GetDate(), NULL), то говорит, что "Incorrect symbol near "GetDate""


 
just_me   (2005-07-08 14:28) [2]

Данную функцию надо вызывать так:
declare @result decimal(18,2)
select @result = dbo.F_GET_COST_STDX(...)


 
Danilka ©   (2005-07-08 14:30) [3]

SELECT * FROM dbo.F_GET_COST_STDX ...

выделеное жирным - лишнее.


 
Fay ©   (2005-07-08 14:33) [4]

2 Алёна   (08.07.05 14:15)
Или просто
declare @d datetime
select @d = getdate()
SELECT {[БАЙДА] = }dbo.F_GET_COST_STDX(...)



 
Алёна   (2005-07-08 14:41) [5]

to Danilka:
Спасибо!
to just_me:
такой запрос не пролазит, говорит, does not return any resultset


 
Fay ©   (2005-07-11 08:38) [6]

2 Алёна   (08.07.05 14:41) [5]
Купите себе толстенький букварик по MSSQL, и жизнь Ваша будет проще.



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

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

Наверх




Память: 0.48 MB
Время: 0.096 c
4-1119600206
officeman
2005-06-24 12:03
2005.08.21
Как скопировать приложение используемое ОС-ой, как его Удалить?


4-1119766404
Гость2
2005-06-26 10:13
2005.08.21
Как дождаться выполнения bat-файла?


1-1123136634
tttyu
2005-08-04 10:23
2005.08.21
Отображение большого файла


8-1113616597
Ivanov
2005-04-16 05:56
2005.08.21
Image из .pak - файла


14-1122399553
БарЛог
2005-07-26 21:39
2005.08.21
Стихи