Страница: 1 |
На урвне модуля описал функцию func(i1,i2,i3) и пытаюсь ея сунуть в db.RecordSource="select func(field1,field2,field3) as expr FROM table". А он ругается, что "Undefined function 'func' in expression". Может чего присоветуете
На урвне модуля описал функцию 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 - это переменные в программе? и получиться у тебя набор записей с одним значением... Извиняюсь, если некорректно спросил. Мне в 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 По моим соображениям, если она описана на уровне модуля, то SELECT должен с ней считаться, как и с другими функциями mid, right, val ... Но этого не произошло Не из SELECTа функция работает. VB её узнаёт, предлагает ввести переменные Естесвенно: 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 |
Вопрос: Использование функциии в SQL
Добавлено: 29.04.04 10:38
Автор вопроса: savely
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
SHDZ
ICQ: 209382104
Вопросов: 39
Ответов: 244
Профиль | | #1
Добавлено: 29.04.04 10:47
Номер ответа: 2
Автор ответа:
savely
Вопросов: 3
Ответов: 2
Профиль | | #2
Добавлено: 29.04.04 19:57
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
Номер ответа: 3
Автор ответа:
savely
Вопросов: 3
Ответов: 2
Профиль | | #3
Добавлено: 29.04.04 20:55