Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» ADO и Access: пользовательские функции БД

Автор: Damien
Дата сообщения: 21.10.2002 05:55
Проблема следующая. В БД сохранена функция, скажем, GetAge. Я бы хотел использовать ее при открытии выборки RecordSet. Простой вариант

dbRS.open "SELECT * FROM people WHERE GetAge>=20"

не проходит и ругается, что не знает GetAge.

Заранее благодарен
Автор: WebDi
Дата сообщения: 24.10.2002 08:45
Damien
Может лучше спросить в "Прикладном программировании"?
Это уже больше к ним. SQL & VB.
Автор: Macabre
Дата сообщения: 24.10.2002 14:38
Damien
У метода Execute третьим параметром идут флаги, и один из них указывает на использование хранимых процедур. Больше сказать не могу, так как за ASP взялся три дня назад
Автор: Damien
Дата сообщения: 24.10.2002 22:24

Цитата:
У метода Execute третьим параметром идут флаги, и один из них указывает на использование хранимых процедур. Больше сказать не могу, так как за ASP взялся три дня назад


Все правильно, но в данном случае я выполняю не хранимую процедуру, а обычный SQL-запрос, в котором помимо всего остального используется "хранимая" функция
Автор: romkin
Дата сообщения: 25.10.2002 08:19
не знаю как в аксесе но на SQL Server user function вызывается только с префиксом пользователя ее создавшего

например

select * from dbo.SerachObjectByComments('Import')

вот так
Автор: dneprcomp
Дата сообщения: 25.10.2002 21:05
Damien
В SQL нельзя в сам запрос вставлять имя функции
SQL понятия не имеет о существовании внешних функций
Для более детального совета надо знать что принимает
и что возвращает GetAge (и как в нее попадают данные)
Автор: romkin
Дата сообщения: 27.10.2002 14:42
dneprcomp

Цитата:
В SQL нельзя в сам запрос вставлять имя функции
SQL понятия не имеет о существовании внешних функций
Для более детального совета надо знать что принимает
и что возвращает GetAge (и как в нее попадают данные)


А я так понимаю
речь идет о пользовательских (user defined function) что хорошо работает под SQL Server 2000 и их МОЖНО вставлять
прямо в запрос

select * from dbo.SerachObjectByComments('Import')
например возвращает таблицу
Автор: Damien
Дата сообщения: 27.10.2002 23:35

Цитата:
А я так понимаю
речь идет о пользовательских (user defined function) что хорошо работает под SQL Server 2000 и их МОЖНО вставлять
прямо в запро


Да, про них речь и идет. Но только здесь не SQL Server, а Access. И такая конструкция не проходит. Я пробовал ставить всякие префиксы перед GetAge, но ничего не работает.
Автор: dneprcomp
Дата сообщения: 28.10.2002 22:40
Надо же определиться. Я говорю о SQL, как о языке.
А не как о продукте под названием 'SQL SERVER'
Это же не одно и тоже.
romkin

Цитата:
select * from dbo.SerachObjectByComments('Import')
например возвращает таблицу

Да, возвращает. Но таблица это об'ект, о существовании
которого 'SQL SERVER' знает все.
Автор: romkin
Дата сообщения: 29.10.2002 08:17
dneprcomp


Цитата:
Надо же определиться. Я говорю о SQL, как о языке.
А не как о продукте под названием 'SQL SERVER'
Это же не одно и тоже.



Я только за В Аксесе использовать в запросе нельзя однозначно!
Автор: Damien
Дата сообщения: 29.10.2002 08:19

Цитата:
Я только за В Аксесе использовать в запросе нельзя однозначно!


Плохо. Будем думать...
Автор: Felix
Дата сообщения: 29.10.2002 13:36
Damien в вашем запросе: "SELECT * FROM people WHERE GetAge>=20" "GetAge" воспринимается как имя поля таблицы, попробуйте поиграться с кавычками....


Добавлено
Если я правильно понял, то запрос должен быть такой ('"SELECT * FROM people WHERE " & GetAge & ">=20"'), в этом случае GetAge воспримится как внешняя переменная. Попытайтесь откатать запрос на VBA встроенном... будет проще.
Автор: rkorchagin
Дата сообщения: 28.02.2003 10:33
Vopros:

hranimaja procedura na SQL servere zavershajetsa po RETURN <znachenije>

kak cherez ADO uznat' eto znachenije?????

Страницы: 1

Предыдущая тема: Delphi. Своздать свой TaskBar


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.