В обычном T-SQL пакете, который из программного кода Акцента выглядит как одна команда
Set rs=ADO.Execute(sqlString)
а для DAO-версии Акцента соответствует запросу к базе данных
Set rs=DAO.OpenRecordSet(sqlString)
можно объявлять переменные, создавать временные таблицы, обрабатывать данные из нескольких запросов к базе, возвращать несколько рекордсетов.
В этом основное отличие между работой с базой данных в настольной и клиент-серверной версиях.
Dim sq, rs
sq="Set NOCOUNT On;" & vbLf & _
"declare @RootEnt int;" & vbLf & _
"set @RootEnt =" & op.Long1 & vbLf & _
"CREATE TABLE #ents (id int)" & vbLf & _
"select J_ENT, MSC_ID, MSC_NAME" & vbLf & _
"............."
Set rs=Workarea.AdoConnection.Execute(sq)
Если такой пакет, включающий в себя программу на T-SQL, выполняется за время работы программы неоднократно (например, по кнопке "обновить" в очёте), его удобно оформить как временную процедуру T-SQL - это промежуточный вариант между текстовым запросом и хранимой процедурой.
|