![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пример TStoredProc [D5, MSSQL]
Destup © (2005-06-07 17:03:00)Приветствую всех.
Начальство поставило задачу срочно изучить хранимые процедуры (MS SQL + Delphi 5) исключительно через TStoredProc (т.е. без ADO и TQuery).
И набросало такой план изучения -
1. Создание и вызов ХП.
2. Передать ХП параметр по ссылке (???)
3. Реализовать и использовать ХП возвращающую курсор.
4. ... возвращающую несколько курсоров.
вроде пока всё.
С первым я справился (хоть раньше на Делфи почти не кодил)
А вот со вторым ... это как ?
StoredProc1.Params.ParamByName('@num').Value := 5;
Это я прямо указал что хочу передать в ХП, а как по ссылке ?
Третье ... что такое курсор я смутно представляю (набор данных возвращаемых sql запросом ?)
Ну написал я StoredProc1.Active := True;
и в DBGrid посыпались данные (курсор ?) через DataSource.
А ... а где мне получить указатель на этот курсор не выводя его в DBGrid ?
А если ХП вернула 2 и более курсоров ?
Весь инет облазил, не нашёл примера.
Помогите кто чем может, желательно маленькими кусочками кода.
Спасибо.
Евгений.
Val (2005-06-08 11:18:00) [1]Коллеги, м.б. в данном контексте под параметром по ссылке имеется просто in out параметр? думаю следует уточнить у задающих (преподов/начальства, etc.).
Desdechado (2005-06-08 10:58:00) [2]параметр по ссылке ты не передашь по определению - SQL-сервер работает на другой машине в своем адресном пространстве.
так что только по значению
evvcom (2005-06-08 10:47:00) [3]
> Во-первых, в БДЕ "заморожена" поддержка MSSQL на уровне версии 6.5
Я в давнишние времена работал с MSSQL 6.5 через BDE без проблем, но без блобов, о блобах ничего не скажу.
> 2. Передать ХП параметр по ссылке (???)
Действительно ??? MSSQL может вернуть значение в параметре (см. в параметрах OUTPUT), но после вызова ХП это возвращенное значение все равно придется читать вручную (за исключением некоторых случаев с UpdateSQL). Плюс обрати внимание на GetResults.
> 3. Реализовать и использовать ХП возвращающую курсор
Обычный SELECT без INTO в ХП возвращает курсор.
> 4. ... возвращающую несколько курсоров
Несколько SELECT без INTO в ХП. Есть метод NextRecordSet, но не в TStoredProc :)
Danilka (2005-06-07 21:29:00) [4][4] Destup (07.06.05 17:38)
Нет никакого смысла сейчас осваивать БДЕ. Во-первых, в БДЕ "заморожена" поддержка MSSQL на уровне версии 6.5 (если не ошибаюсь).
Во-вторых, БДЕ изначально ориентирован на файл-серверные технологии.
А АДО, можно сказать, самая что ни на есть родная технология доступа к MSSQL, все возможности этой СУБД можно использовать работая через АДО.
Вобщем, можно запросто начинать с АДО, причем, статей и книг в тему можно найти в инете просто море.
Destup (2005-06-07 17:38:00) [5]> А у АДО есть TADOStoredProc, аналог БДЕ-ного.
Я думаю, что освоив BDE не сложно перейти на ADO.
Но пока ... даже с первым не выходит
Destup (2005-06-07 17:36:00) [6]> Blob тоже через TStoredProc?
... даже не знаю, а что это такое :)))
> предпочтительнее работать через АДО, чем через БДЕ.
думаю перейдём на АДО, но не скоро.
Danilka (2005-06-07 17:07:00) [7]
> исключительно через TStoredProc (т.е. без ADO и TQuery).
хм. TStoredProc - это значит через BDE. На мой взгляд, с MSSQL все-таки намного предпочтительнее работать через АДО, чем через БДЕ.
А у АДО есть TADOStoredProc, аналог БДЕ-ного.
Val (2005-06-07 17:05:00) [8]Blob тоже через TStoredProc?