Пример рабочего кода для 1С77 с использованием компоненты 1С++:
Код |
Процедура Connect(Database,ServerName,Login,Password,ТипБД) Если ТипБД = Перечисление.ВидыБаз.SQL Тогда Состояние("Соединение с SQL Server..."); ИдентСоедин = SQLServer.Соединение("Description=" + СокрЛП(Database) + ";DRIVER=SQL Server;SERVER=" + СокрЛП(ServerName) + ";UID=" + СокрЛП(Login) + ";PWD=" + СокрЛП(Password) + ";"); //SQLServer.Соединение(Description=Database;DRIVER=SQL Server;SERVER=ServerName;UID=Login;PWD=Password;APP=ViewODBC Application;WSID=PROG2;Network=DBMSSOCN); Иначе Состояние("Соединение с FireBird Server..."); ИдентСоедин = SQLServer.Соединение("DSN=FireBird;Driver=Firebird/InterBase(r) driver;Dbname=" + СокрЛП(ServerName) + ":" + СокрЛП(Database) + ";CHARSET=NONE;PWD=" + СокрЛП(Password) + ";UID=" + СокрЛП(Login) + ";Client=gds32.dll;"); КонецЕсли; Если ИдентСоедин = 0 Тогда Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой Сообщить(Строка(Error), "!!!"); СтатусВозврата(0); Возврат; Иначе Состояние("Соединились, однако... :)"); КонецЕсли; КонецПроцедуры //Connect //******************************************* Процедура Disconnect() Попытка SQLServer.Закрыть(); Исключение Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой Сообщить(ОписаниеОшибки() + РазделительСтрок + Строка(Error), "!!!"); СтатусВозврата(0); Возврат; КонецПопытки; КонецПроцедуры //Disconnect //*******************************************
Попытка // Создаем объект SQLServer SQLServer = СоздатьОбъект("ODBCDatabase"); SQLServer.УстЗначениеТаймаута(10); // свойство определяет, то число секунд, которое мы будем пытается подключиться SQLServer.УстЗначениеТаймаутаЛогина(10); // свойство определяет, то число секунд, которое мы будем пытается подключиться БазаОмега = СоздатьОбъект("ODBCRecordSet"); Исключение Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой Сообщить(ОписаниеОшибки() + РазделительСтрок + Строка(Error), "!!!"); СтатусВозврата(0); Возврат; КонецПопытки; Connect(СокрЛП(БазаУРВ.БазаДанных),СокрЛП(БазаУРВ.Сервер),СокрЛП(БазаУРВ.Пользователь),СокрЛП(БазаУРВ.Пароль),БазаУРВ.ТипБазы); БазаОмега.УстБД(SQLServer); Если БазаУРВ.ТипБазы = Перечисление.ВидыБаз.SQL Тогда ТекстЗапроса = " |Select |KodKart, |convert(char(8), min(DataTime), 8) as vhod, |convert(char(8), max(DataTime), 8) as vihod |from " + СокрЛП(БазаУРВ.БазаДанных) + ".dbo.MyTemp |where DataTime >= '" + АмДата(Строка(ДатаДок)) + "' |and DataTime < '" + АмДата(Строка(ДатаДок+1)) + "' |group by KodKart |order by KodKart |"; Иначе ТекстЗапроса = " |Select |CARD as KodKart, |substr(upper(min(DT_EVENT)), 12, 19) as vhod, |substr(upper(max(DT_EVENT)), 12, 19) as vihod |from ARCH_SMDREVENT |where DT_EVENT >= '" + АмДата(Строка(ДатаДок)) + "' |and DT_EVENT < '" + АмДата(Строка(ДатаДок+1)) + "' |and CARD <> '0000000000000000' |group by CARD |order by CARD |"; КонецЕсли; //БазаОмега.Отладка(1); БазаОмега.Открыть(ТекстЗапроса); ТЗ_QueryResults = СоздатьОбъект("ТаблицаЗначений"); БазаОмега.ПолучитьРезультатыВ_ТЗ(ТЗ_QueryResults,1);
Disconnect();
|
|