Никогда ничего специально не делал. В АВС всё нормально отрабатывается. Access:File.Close(), и достаточно. Пользователь выходит из программы, коннект прерывается. Если нужно при работающем пользователе его коннект прервать, то административными способами (я не помню как, в понедельник на работе могу спросить). Есть ещё тонкий момент. Например, если сделать в IBExpert'е запрос в SQLEditor и его не закоммитить, то Кларионовская программа будет ждать коммита (висеть, по-русски говоря).Игорь Столяров писал(а):Если позволите, еще маленький вопрос: как грамотно закончить работу с базой Firebird из Clarion ?
Так как prop:SQL можно применить только к файл/таблице и кларионовской вьюхе, то есть два варианта.BBR писал(а):Как можно загрузить ркезультаты произвольной выборки по нескольким таблицам
(используя prop:SQL) в очередь (подготовленную заранее)?
1. Через вьюху (как в шаблонах), можно посмотреть, что делает сам Кларион. Но вкратце так. Создаём вьюху, например:
Код: Выделить всё
LOC:View VIEW(Titles)
PROJECT(TIT:TitleNameOut)
PROJECT(TIT:TitleDate)
PROJECT(TIT:Year)
PROJECT(TIT:ID)
PROJECT(TIT:OperationID)
PROJECT(TIT:Addressee2ID)
PROJECT(TIT:Addressee1ID)
PROJECT(TIT:DocID)
JOIN(DOC:IDKey,TIT:DocID)
PROJECT(DOC:Name)
PROJECT(DOC:ID)
END
JOIN(ADR1:IDKey,TIT:Addressee2ID)
PROJECT(ADR1:Name)
PROJECT(ADR1:ID)
END
JOIN(ADR:IDKey,TIT:Addressee1ID)
PROJECT(ADR:Name)
PROJECT(ADR:ID)
END
END
Потом пишем:
Код: Выделить всё
open(LOC:View)
set(LOC:View)
LOC:View{prop:SQL} = 'select ...'
loop
next(LOC:View)
if fileerrorcode()
break
end
...
LOC:Queue.LOC:Field1 = TIT:ID
...
add(LOC:Queue)
end
Ну и пишем:
Код: Выделить всё
ZZZ{prop:SQL} = 'select ...'
loop
next(ZZZ)
if fileerrorcode()
break
end
...
LOC:Queue.LOC:Field1 = clip(ZZZ.A1) ! clip() - необязательно
...
add(LOC:Queue)
end