Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Внизхранимые процедуры в 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c