Соединение делаеться через
// возвращает Объект типа ODBCRecordSet или OLEDBCommand в зависимости от типа соединения + при
//указании пути устанавливается соеднение с другой базой!
Функция глСоединение(ТипСоединения="",ПутьИБ="",Пользователь="",Пароль="") Экспорт
Каталог=КаталогИБ();
Если Врег(ТипСоединения)="SQL" Тогда
БД =СоздатьОбъект("ODBCDataBase");
Запрос=СоздатьОбъект("ODBCRecordSet");
Если ПустоеЗначение(ПутьИБ)=0 Тогда
СтрокаСоединения = "Driver={SQL Server};Server=%1;Database=%2;Uid=%3;Pwd=%4;";
БД.ПрисоединитьИБ(ПутьИБ,Пользователь,Пароль,СтрокаСоединения);
Запрос.УстБД(БД);
КонецЕсли;
Возврат Запрос;
ИначеЕсли Врег(ТипСоединения)="ОЛЕ" Тогда
Попытка
БД = СоздатьОбъект("OLEDBData");
Если ПустоеЗначение(ПутьИБ)=0 Тогда
БД.ПрисоединитьИБ(ПутьИБ);
Иначе
СтрокаСоединения = "Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + Каталог
+ ";Mode=ReadWrite;Extended Properties="";User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";;
БД.Соединение(СтрокаСоединения);
КонецЕсли;
Команда=БД.СоздатьКоманду();
Команда.УстановитьКаталогВремТаблиц(КаталогВременныхФайлов());
Возврат Команда;
Исключение
Возврат глСоединение("ДБФ",ПутьИБ);
КонецПопытки;
ИначеЕсли Врег(ТипСоединения)="ДБФ" Тогда
Попытка
БД =СоздатьОбъект("ODBCDataBase");
Если ПустоеЗначение(ПутьИБ)=0 Тогда
БД.ПрисоединитьИБ(ПутьИБ);
Иначе
БД.Соединение("DRIVER={Microsoft Visual FoxPro Driver}
eleted=Yes;
|Null=Yes;Collate=RUSSIAN;Exclusive=No;SourceType=DBF;SourceDB="+Каталог);
КонецЕсли;
Запрос=СоздатьОбъект("ODBCRecordSet");
Запрос.УстБД(БД);
Возврат Запрос;
Исключение
Возврат 0;
КонецПопытки;
ИначеЕсли Врег(ТипСоединения)="ADV" Тогда
СтрокаСоединения="
|Provider=Advantage.OLEDB.1;
|Data Source=" + Каталог + ";
|TableType=ADS_CDX;
|ServerType=ADS_LOCAL_SERVER;
|SecurityMode=ADS_IGNORERIGHTS;
|LockMode=ADS_COMPATIBLE_LOCKING;
|ShowDeleted=FALSE;
|DbfsUseNulls=TRUE;
|CharType=ADS_ANSI;
|TrimTrailingSpaces=FALSE;
|";
БД = СоздатьОбъект("OLEDBData");
БД.Соединение(СтрокаСоединения);
Команда=БД.СоздатьКоманду();
Команда.УстановитьКаталогВремТаблиц(КаталогВременныхФайлов());
Возврат Команда;
Иначе
МФ=СоздатьОбъект("MetaInfoClasses");
Если МФ.ЭтоSQL_Версия()=1 Тогда
Возврат глСоединение("SQL");
Иначе
Если МонопольныйРежим()=1 Тогда
Возврат 0;
Иначе
Возврат глСоединение("ОЛЕ",ПутьИБ);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецФункции // глСоединение