Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция Lookup / 7 сообщений из 7, страница 1 из 1
04.04.2004, 14:34
    #32468225
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
Всем привет,

Пытаюсь создать свою функцию Lookup (файл данных на SQL сервере), собственно есть две идеи:

1. Создать функцию на основе ADO рекордсета.
2. Создать на сервере хранимую процедуру и использовать ее как Lookup

Не могу решить какой из методов лучше, а может вообще ерундой занимаюсь и есть другие методы?

Всем заранее спасибо.
...
Рейтинг: 0 / 0
05.04.2004, 17:55
    #32469559
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
Хранимки всегда лучше, а что она вообще должна делать? Я что то не понял.


Magnus
...
Рейтинг: 0 / 0
06.04.2004, 00:48
    #32469825
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
Я собственно в VB начинаю только поэтому извиняюсь заранее за глупые вопросы. Нужно создать аналог аксессовской функции DLookup (выдает значение поля рекордсета по критерию). В VB я подобной функции не нашел поэтому пытаюсь ее написать сам. Есть две идеи как создать подобную функцию:

1. Создать функцию на основе ADO рекордсета.
2. Создать на сервере хранимую процедуру и использовать ее как Lookup

С одной стороны, так как данные лежат на сервере, то вариант с ХП выглядит более логично-ХП обработает данные на сервере, соответственно производительность и скорость будут выше. С другой стороны хочется создать что-нибудь более универсальное с возможностью использования в виде програмного кода в других приложениях (не перенося ХП из одного приложения в другое), в том числе и локальных. Просто не уверен в правильности своего подхода, вот и хотелось бы получить совет.

Спасибо.
...
Рейтинг: 0 / 0
06.04.2004, 01:30
    #32469834
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
Что то я все равно не понимаю твоей проблемы. К сожалению с Акцесом я не настолько знаком, потому сравнивать не могу.
Как я понял тебе нужна функция которой ты будешь передавать запрос а она должна вернть тебе рекордсет, так?
Хранимка хороша для статических запросов с условиями. Если запрос создается динамически то выигрыша нет почти никакого кроме выноса логики на сервер что есть тоже хорошо.




***Здесь была афигительная картинка с вашим адресом а теперь будет Просто Реклама***
Magnus
...
Рейтинг: 0 / 0
06.04.2004, 14:38
    #32470646
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
К примеру, я поьзуюсь такой "самодельной" :)

' Функция, которая является аналогом функции Access DLookUp
Public Function MLookUp(strTable As String, strField As String, strWhere As Variant) As Variant

On Error GoTo Err_D

Dim rst As New ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM " & strTable & " WHERE " & strWhere
rst.Open strSQL, cnnA
MLookUp = rst(strField)
rst.Close
Set rst = Nothing

Exit Function

Err_D:
Err.Clear
Resume Next
MLookUp = ""
End Function

cnnA - текущее соединение с базой
Вызов полностью аналогичен DLookUp
...
Рейтинг: 0 / 0
06.04.2004, 15:06
    #32470707
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
У меня функция практически такая же :)
тока вместо Lookup="" у меня Lookup=Null , ну и названия переменных другие :)
...
Рейтинг: 0 / 0
06.04.2004, 15:09
    #32470713
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция Lookup
А, еще SQL выражение у меня сразу поле нужное берет, типа я так память лишними данными не загружаю :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция Lookup / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]