25.07.2005, 15:23
|
#3
|
Участник
|
Цитата:
Сообщение от DimCorso
Добрый день!
Пытаюсь через ADO из-под 1С подключиться к Навижновской базе. Создал udl-файл. Подключился, структуру таблиц базы увидел. А все запросы выдают ошибку...
Например:
SELECT *
FROM Currency;
Результат:
Microsoft OLE DB Provider for ODBC Drivers: [Navision Software a/s][Navision Financials ODBC Driver]Table does not exists
Не подскажете, в чем может быть проблема?
зачем udl файл?
<div class='v7top'>1Cv7</div><div class='v7'>
Соединение =СоздатьОбъект( ;"ADODB.Connection") ;;
СтрокаКоннекта ="driver={SQL Server};server=sql;uid=sa;pwd=пароль;Database=navision";
Соединение .ConnectionTimeOut =200;
Соединение .CursorLocation =3;
Попытка
  ;Соединение .Open( ;СтрокаКоннекта) ;;
Исключение
  ;Предупреждение( ;"Невозможно установить соединение с базой данных!") ;;
  ;Возврат 0;
КонецПопытки;</div>
Да и Navision дает имена таблицам по шаблону ИмяФирмы$ИмяТаблицыИзДизайнера.
Кусок из 1С ки:
<div class='v7top'>1Cv7</div><div class='v7'>
Функция ТипПараметра( ;SQLStrType ) ;   ;Экспорт
  ;Тип = НРег( ;SQLStrType) ;;
  ;Если Тип = "empty" тогда Возврат 0;
  ;иначеесли Тип = "boolean" тогда Возврат 11;
  ;иначеесли Тип = "integer" тогда Возврат 3;
  ;иначеесли Тип = "int" тогда Возврат 3;
  ;иначеесли Тип = "tinyint" тогда Возврат 16;
  ;иначеесли Тип = "smallint" тогда Возврат 2;
  ;иначеесли Тип = "bigint" тогда Возврат 20;
  ;иначеесли Тип = "numeric" тогда Возврат 131;   ;   ;
  ;иначеесли Тип = "double" тогда Возврат 5;   ;   ;
  ;иначеесли Тип = "date" тогда Возврат 7;   ;   ;
  ;иначеесли Тип = "char" тогда Возврат 129;
  ;иначеесли Тип = "varchar" тогда Возврат 200;   ;   ;
  ;иначеесли Тип = "unsignedtinyint" тогда Возврат   ; 17;
  ;иначеесли Тип = "unsignedsmallint" тогда Возврат   ;18;
  ;иначеесли Тип = "unsignedint" тогда Возврат 19;
  ;иначеесли Тип = "unsignedbigint" тогда Возврат   ; 21;
  ;иначеесли Тип = "single" тогда Возврат 4;
  ;иначеесли Тип = "currency" тогда Возврат 6;
  ;иначеесли Тип = "decimal" тогда Возврат 14;
  ;иначеесли Тип = "error" тогда Возврат 10;
  ;иначеесли Тип = "userdefined" тогда Возврат 132;
  ;иначеесли Тип = "variant" тогда Возврат 12;
  ;иначеесли Тип = "idispatch" тогда Возврат 9;
  ;иначеесли Тип = "iunknown" тогда Возврат 13;
  ;иначеесли Тип = "guid" тогда Возврат 72;
  ;иначеесли Тип = "dbdate" тогда Возврат 133;
  ;иначеесли Тип = "dbtime" тогда Возврат 134;
  ;иначеесли Тип = "dbtimestamp" тогда Возврат 135;
  ;иначеесли Тип = "bstr" тогда Возврат 8;
  ;иначеесли Тип = "longvarchar" тогда Возврат 201;
  ;иначеесли Тип = "wchar" тогда Возврат 130;
  ;иначеесли Тип = "varwchar" тогда Возврат 202;
  ;иначеесли Тип = "longvarwchar" тогда Возврат 203;
  ;иначеесли Тип = "binary" тогда Возврат 128;
  ;иначеесли Тип = "varbinary" тогда Возврат 204;
  ;иначеесли Тип = "longvarbinary" тогда Возврат   ; 205;
  ;иначе возврат 0;
  ;конецесли;
КонецФункции
Процедура ДалаемСклоненияВЕбижене( ;) ;   ;   ;
ИмяТаблицы ="KadrTabSklon";   ;   ;
ТекстЗапроса ="SELECT Tip,Name,Flzap FROM ["+ИмяБазы +ИмяТаблицы +"] ";   ;   ;
Запрос =СкомпилироватьЗапрос( ;Соединение ,ТекстЗапроса) ;;   ;   ;
  ;
ТекстОбновления ="UPDATE ["+ИмяБазы +ИмяТаблицы +"] SET NameD=?, NameV=?, NameT=?, Flzap=0 WHERE Tip=? AND Name=?";   ;   ;
ЗапросОбновления =СкомпилироватьЗапрос( ;Соединение ,ТекстОбновления) ;;   ;   ;
  ;
NameD =ЗапросОбновления .CreateParameter( ;"P1", ТипПараметра( ;"Char") ;, input ,240) ;;   ;   ;
NameV =ЗапросОбновления .CreateParameter( ;"P2", ТипПараметра( ;"Char") ;, input ,240) ;;   ;   ;
NameT =ЗапросОбновления .CreateParameter( ;"P3", ТипПараметра( ;"Char") ;, input ,240) ;;   ;   ;
Tip =ЗапросОбновления .CreateParameter( ;"P4", ТипПараметра( ;"Integer") ;, input ,) ;;   ;   ;
Name =ЗапросОбновления .CreateParameter( ;"P5", ТипПараметра( ;"Char") ;, input ,240) ;;   ;   ;
  ;   ;
ЗапросОбновления .Parameters .Append( ;NameD) ;;   ;   ;
ЗапросОбновления .Parameters .Append( ;NameV) ;;   ;   ;
ЗапросОбновления .Parameters .Append( ;NameT) ;;   ;   ;
ЗапросОбновления .Parameters .Append( ;Tip) ;;   ;   ;
ЗапросОбновления .Parameters .Append( ;Name) ;;   ;   ;
  ;
НаборЗаписей =Запрос .Execute( ;) ;;   ;   ;   ;
Если НаборЗаписей .EOF( ;) ; = 0 Тогда   ;   ;
  ; НаборЗаписей .MoveFirst( ;) ;;   ;   ;   ;   ;
  ; Пока НаборЗаписей .EOF( ;) ; = 0 Цикл   ;   ;
  ;   ;Тип =Число( ;НаборЗаписей .Fields( ;0) ;.Value) ;;   ;   ;
  ;   ;Стр =СокрЛП( ;НаборЗаписей .Fields( ;1) ;.Value) ;;   ;   ;
  ;ФлагЗаполнения =НаборЗаписей .Fields( ;2) ;.Value ;
  ; ...   ;и т .д .
  ; Если ..
  ;   ;ЗапросОбновления .Execute( ;) ;;
  ; КонецЕсли;   ;   ;
  ;НаборЗаписей .MoveNext( ;) ;;   ;   ;   ;
КонецЦикла;   ;   ;</div>
и т.п.
|
|