Имя: Пароль:
1C
 
(8.2) несколько запросов подряд, не закрывая adodb.connection
0 vechiy
 
26.02.15
13:05
Выполняю несколько запросов к другой базе sql и делаю это так:

SQLConnection = Новый COMObject("ADODB.Connection");
SQLConnection.Open("Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=a;Data Source=sql");
Recordset = Новый COMObject("ADODB.Recordset");
Recordset.ActiveConnection = SQLConnection;
SQLConnection.CommandTimeout=0;

СтрокаSQL="запрос";

Recordset.Open(СтрокаSQL,SQLConnection,2,4);
Recordset.MoveFirst();
поле=Recordset.Fields("поле").Value;

SQLConnection.Close();

дальше запрос2, 3 и т.д.
и всё это выполняется значительно дольше чем при выполнении запросов напрямую. Подозреваю, отчасти из-за того что приходится после каждого запроса делать close(); а потом заново открывать соединение.

А если его не закрывать то возникает ошибка
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект открыт.

set nocount on пробовал, в данном случае не помогает

Что ещё можно попробовать?
1 Jaap Vduul
 
26.02.15
13:18
Recordset.Close()
2 vechiy
 
26.02.15
18:31
заработало
но хз, быстрее вроде не стало