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