Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Использование функциии в SQL Добавлено: 29.04.04 10:38  

Автор вопроса:  savely

На урвне модуля описал функцию func(i1,i2,i3) и пытаюсь ея сунуть в db.RecordSource="select func(field1,field2,field3) as expr FROM table". А он ругается, что "Undefined function 'func' in expression".

Может чего присоветуете

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 SHDZ



ICQ: 209382104 

Вопросов: 39
Ответов: 244
 Профиль | | #1 Добавлено: 29.04.04 10:47

На урвне модуля описал функцию func(i1,i2,i3) и пытаюсь ея сунуть в db.RecordSource="select func(field1,field2,field3) as expr FROM table". А он ругается, что "Undefined function 'func' in expression".

КАК ВСУНУТЬ В DB?????

Он тебе все правильно пишет,

"select " & func(field1,field2,field3) & " as expr FROM table" - это если функция выдает один результат, а ЗАЧЕМ ТАК? что вообще хочешь сделать?

field1 - это переменные в программе? и получиться у тебя набор записей с одним значением...

Ответить

Номер ответа: 2
Автор ответа:
 savely



Вопросов: 3
Ответов: 2
 Профиль | | #2 Добавлено: 29.04.04 19:57

Извиняюсь, если некорректно спросил. Мне в SQL запросе надо использовать calculated field.

До сих пор работала функция iif:

"SELECT iif(field1>0, field2*field3, field2/field3) as expr FROM table1"

где field1,field2,field3 поля таблицы table1

Нынче усложнились условия подсчёта значения выводимого поля  expr и я решил использовать функцию

Function func(Paimta, Kaina, Sumok) As Integer
 laikotarp = Date - CDate(Format(Paimta, "yyyy.mm.dd"))
 Select Case laikotarp
  Case 0, 1
   skola = CCur(Kaina - Sumok)
  Case Else
   Select Case Kaina
    Case 5
     skola = Kaina * (laikotarp - 1) - Sumok
    Case Else
     skola = Kaina + 2 * (laikotarp - 1) - Sumok
   End Select
 End Select
End Function

По моим соображениям, если она описана на уровне модуля, то SELECT должен с ней считаться, как и с другими функциями  mid, right, val ... Но этого не произошло

Не из SELECTа функция работает. VB её узнаёт, предлагает ввести переменные

Ответить

Номер ответа: 3
Автор ответа:
 savely



Вопросов: 3
Ответов: 2
 Профиль | | #3 Добавлено: 29.04.04 20:55

Естесвенно:

Function func(Paimta, Kaina, Sumok) As Integer

laikotarp = Date - CDate(Format(Paimta, "yyyy.mm.dd"))

Select Case laikotarp

Case 0, 1

func = CCur(Kaina - Sumok)

Case Else

Select Case Kaina

Case 5

func = Kaina * (laikotarp - 1) - Sumok

Case Else

func = Kaina + 2 * (laikotarp - 1) - Sumok

End Select

End Select

End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам