Что такое ADO и с чем его едят уже достаточно подробно описано. Я хочу привести примеры доступа к SQL-таблицам базы данных 1С-Предприятие с помощью методов ADO
Методы ADO и SQL-DMO позволяют выполнять команды доступа и модификации данных с помощью языка Т-SQL. И в том, и в другом случае работа состоит из следующих этапов:
1. Соединение с базой данных.
2. Отправка серверу команды.
3. Получение и обработка результатов выполнения команды.
Соединение = СоздатьОбъект("ADODB.Connection");
ConnectionString = "driver={SQL Server}; server=myserver; uid=mylogin;
pwd= myPasword; Database = myDatabase”;
Соединение.ConnectionTimeOut =600;
Соединение.CursorLocation = 3;
try
Соединение.Open(ConnectionString);
except
Предупреждение("Невозможно установить соединение”);
endtry;
Cmd = СоздатьОбъект("ADODB.Command");
Cmd.ActiveConnection = Соединеиие;
Cmd.CommandText = текст_команды;
Функция ТипКомандыАДО( АдоКонст ) Экспорт
АдоКонст = Нрег(АдоКонст);
Если АдоКонст = «adcmdtext» тогда возврат 1; //для оператора T-SQL
ИначеЕсли АдоКонст = «adcmdtable» тогда возврат 2;
ИначеЕсли АдоКонст = «adcmdstoredproc» тогда возврат 4; //для хранимой процедуры
Иначе Возврат 8; //adcmdunknown
КонецФункции
cmd.CommandType = ТипКомандыАДО("adCmdStoredProc");
Функция КонстантаАДО( Конст ) Экспорт
АдоКонст = НРег(Конст);
Если АдоКонст = "adEmpty" тогда Возврат 0;
иначеесли АдоКонст = "adtinyint" тогда Возврат 16;
иначеесли АдоКонст = "adsmallint" тогда Возврат 2;
иначеесли АдоКонст = "adinteger" тогда Возврат 3;
иначеесли АдоКонст = "adbigint" тогда Возврат 20;
иначеесли АдоКонст = "adunsignedtinyint" тогда Возврат 17;
иначеесли АдоКонст = "adunsignedsmallint" тогда Возврат 18;
иначеесли АдоКонст = "adunsignedint" тогда Возврат 19;
иначеесли АдоКонст = "adunsignedbigint" тогда Возврат 21;
иначеесли АдоКонст = "adsingle" тогда Возврат 4;
иначеесли АдоКонст = "addouble" тогда Возврат 5;
иначеесли АдоКонст = "adcurrency" тогда Возврат 6;
иначеесли АдоКонст = "addecimal" тогда Возврат 14;
иначеесли АдоКонст = "adnumeric" тогда Возврат 131;
иначеесли АдоКонст = "adboolean" тогда Возврат 11;
иначеесли АдоКонст = "aderror" тогда Возврат 10;
иначеесли АдоКонст = "aduserdefined" тогда Возврат 132;
иначеесли АдоКонст = "advariant" тогда Возврат 12;
иначеесли АдоКонст = "adidispatch" тогда Возврат 9;
иначеесли АдоКонст = "adiunknown" тогда Возврат 13;
иначеесли АдоКонст = "adguid" тогда Возврат 72;
иначеесли АдоКонст = "addate" тогда Возврат 7;
иначеесли АдоКонст = "addbdate" тогда Возврат 133;
иначеесли АдоКонст = "addbtime" тогда Возврат 134;
иначеесли АдоКонст = "addbtimestamp" тогда Возврат 135;
иначеесли АдоКонст = "adbstr" тогда Возврат 8;
иначеесли АдоКонст = "adchar" тогда Возврат 129;
иначеесли АдоКонст = "advarchar" тогда Возврат 200;
иначеесли АдоКонст = "adlongvarchar" тогда Возврат 201;
иначеесли АдоКонст = "adwchar" тогда Возврат 130;
иначеесли АдоКонст = "advarwchar" тогда Возврат 202;
иначеесли АдоКонст = "adlongvarwchar" тогда Возврат 203;
иначеесли АдоКонст = "adbinary" тогда Возврат 128;
иначеесли АдоКонст = "advarbinary" тогда Возврат 204;
иначеесли АдоКонст = "adlongvarbinary" тогда Возврат 205;
иначе возврат 0;
конецесли;
КонецФункции
Функция ТипПараметраАДО( Конст ) Экспорт
АдоКонст = НРег(Конст);
Если АдоКонст = "adparamunknown" тогда Возврат 0;
иначеесли АдоКонст = "adparaminput"тогда Возврат 1;
иначеесли АдоКонст = "adparamoutput"тогда Возврат 2;
иначеесли АдоКонст = "adparaminputoutput"тогда Возврат 3;
иначеесли АдоКонст = "adparamreturnvalue"тогда Возврат 4;
КонецЕсли;
КонецФункции
prm1 = Cmd.CreateParameter("ID", КонстантаАДО("adWChar"),
ТипПараметраАДО("adParamInput"), 9, Код);
Cmd.Parameters.Append( prm1 );
Prm2 = Cmd.CreateParameter("OUTID", КонстантаАДО("adWChar"),
ТипПараметраАДО("adParamOutpt"), 9, Код);
Cmd.Parameters.Append( prm2 );
Rs = CreateObject(”ADODB.RecordSet”);
Rs = Cmd.Execute; //Выполнение и получение набора данных
ВыхПарам = Cmd.Parameters(1).Value; //чтение параметра типа OUTPUT после выполнения.
Rs.MoveFirst();
Пока Rs.EOF() = 0 do
Value1 = Rs.Fields("FieldName1”).Value;
Value2 = Rs.Fields("FieldName2”).Value;
Rs.MoveNext();
КонецЦикла;
Rs.Close();
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua