Главная DISCLAIMER Ссылки Карта сайта Контакты
Главная arrow Вопросы разработки arrow Запросы к SQL-серверу
Запросы к SQL-серверу


Использование временных процедур T-SQL
Запросы к SQL-серверу

В обычном 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 - это промежуточный вариант между текстовым запросом и хранимой процедурой.