Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

хранимые процедуры в access   Найти похожие ветки 

 
сергей1   (2004-09-29 20:56) [0]

говорят, что в access отсутствуют хранимые процедуры, что-же делать, если надо выполнить несколько операторов ? неужели просто забить их в свойство sql.text ?


 
sniknik ©   (2004-09-29 21:04) [1]

они не отсутствуют, просто они там такие что называть их так стыдно по крайней мере. ;о)

разве можно называть процедурой состоящую из одной команды конструкцию?


 
сергей1   (2004-09-29 21:13) [2]

так что делать-то ? все-таки забивать все в sql.text ?


 
sniknik ©   (2004-09-29 21:40) [3]

что все? больше одной команды все одно не выполниш. а так да, можеш забивать. ;)


 
сергей1   (2004-09-29 22:00) [4]

>что все? больше одной команды все одно
гребанный аксесс, а я-то надеялся выполнить что-то типа

declare @v integer
set @v = (select bla-bla-bla)
select something from table1 where key_field = @v   и т.д.

выходит, все отдельными запросами делать надо, тормозить будет похлеще тормозов от Билаза


 
sniknik ©   (2004-09-29 23:30) [5]

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


 
Petr V. Abramov ©   (2004-09-30 00:05) [6]

А Вы по цене Access ниче больше не хотели?


 
DrPass ©   (2004-09-30 00:20) [7]


> А Вы по цене Access ниче больше не хотели?

Firebird + IBExpert подешевле будут...


 
Digitman ©   (2004-09-30 10:00) [8]


> гребанный аксесс, а я-то надеялся выполнить что-то типа


Access-то причем здесь ? Ты же в дан.случае используешь не Access-движок ..

А собственно Access располагает не менее мощным средством - Access VBA. На встроенном в Access интерпретаторе Васика ты можешь создать любой сложности процедуру и вызвать ее на выполнение извне


 
сергей1   (2004-09-30 15:39) [9]

>укладывается, т.к. поддерживает вложенные запросы
подзапросы тут нипричем, это просто пример, в реальной задаче будет цикл с вычислениями, и подзапросами там не обойтись.

>А собственно Access располагает не менее мощным средством - Access VBA.
а этот редактор позволяет sql-запросы писать ?


 
Digitman ©   (2004-09-30 16:53) [10]


> а этот редактор позволяет sql-запросы писать ?


это не столько редактор, сколько целая подсистема, реализующая встроенный интерпретатор языка VBA (редактор, разумеется, там есть)

текст VBA-программы хранится в базе, вместе с табицами и прочими объектами

AccessVBA позволяет в том числе писать сиквел-запросы и запускать их на выполнение

вне контекста работающего Access.exe-приложения VBA-программа выполнена быть не может

для запуска той или иной AccessVBA-программы, хранящейся в той или иной базе, требуется доступ к Access.ехе как к серверу автоматизации


 
сергей1   (2004-09-30 17:34) [11]

а из клиентского приложения по сети можно такую процедуру запустить?, и как это сделать из дельфи, вряд-ли dbGo это позволяет. Вообще, можешь хотя-бы в двух словах описать, что нужно делать, что-бы несколько клиентов работали с этой процедурой ?

а то может и не стоит заморачиваться, цикл в клиенте организовать и посылать одиночные запросы из него, не так уж тормоза здесь сильно принципиальны


 
Nikolay M. ©   (2004-09-30 17:36) [12]

На sql.ru в форуме MS SQL Server, кажется, или в аксесном, не помню точно, поднимался вопрос.


 
Digitman ©   (2004-09-30 17:43) [13]


> из клиентского приложения по сети можно такую процедуру
> запустить?


теоретически - да.
практически - достаточно сложно .. да и не нужно

здесь иной подход :

- на каждой кл.машине должен быть инсталлирован Access
- в Делфи импортируется библиотека типов Access , при этом в закладку Servers автоматически инсталлируется иконка компонента TDoCmd
- класс TDoCmd осуществляет коммуникацию с Access , позволяя выполнить практически любую команду, которую Access предусматривает, как если бы эта команда вызывалась на выполнение в контексте самого Access
- среди этих команд есть команда запуска на выполнение указанной VBA-процедуры/ф-ции


 
сергей1   (2004-09-30 18:58) [14]

>-среди этих команд есть команда запуска

хм, может я торможу, но что-то не совсем понимаю, процедура-то должна находиться на том-же компе, где и сама база ? а клиент с помощью класса TDoCmd все-таки может заставить ее выполниться ?

В любом случае спасибо, наверно я все-таки всю логику организую с помощью дельфи, ну подумаешь в цикле уйдет запросов 15-25 (в среднем) на сервер, малость через задницу, но черт с ним


 
ЮЮ ©   (2004-10-01 03:19) [15]

Если цикл определяется данными,то можно воспользоваться и подзапросом



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
14-1097673993
Ashh
2004-10-13 17:26
2004.10.31
XPManifest


1-1098102176
MikePol
2004-10-18 16:22
2004.10.31
Возвращаемое значение


4-1095573471
Bil Bal Dur
2004-09-19 09:57
2004.10.31
Работа с LPT портом в XP


1-1097589032
П7
2004-10-12 17:50
2004.10.31
Анимированне обои раб.стола


14-1097675011
matt
2004-10-13 17:43
2004.10.31
Программирование микрокроцессоров