Имя: Пароль:
1C
1C 7.7
v7: ошибка при создание OLEDBData
,
0 zladenuw
 
12.09.12
12:49
скачал, поставил.
http://www.microsoft.com/en-us/download/details.aspx?id=14839

но ошибка все равно
База = СоздатьОбъект("OLEDBData");
Неудачная попытка создания объекта (OLEDBData)
1 andrewks
 
12.09.12
12:51
какая-то короткая у тебя строка подключения
2 zladenuw
 
12.09.12
12:54
Попытка
       ЗагрузитьВнешнююКомпоненту("1cpp.dll");
       Сообщить("Компонента 1С++ загружена!");
   Исключение
       Сообщить("Пытались, но не загрузили компоненту 1С++ :(");
   КонецПопытки;
       
   База = СоздатьОбъект("OLEDBData");
              Соединение = "Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + КаталогИБ()+ ";Mode=ReadWrite;Extended Properties="";User ID="+"kirill"+";Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";
              Рез = База.Соединение(Соединение);
              Запрос = База.СоздатьКоманду();
   Сообщить(ТекущееВремя());
   ТекВремя = ТекущееВремя();
   RS = СоздатьОбъект("ODBCRecordset");
   ТекстЗапроса = "
   |SELECT
   |      Спр.Code as Код,
   |      Спр.Descr as Наименование
   |FROM
   |      $Справочник.ТМЦ as Спр";
   
   
   ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
3 zladenuw
 
12.09.12
12:54
ошибка сразу при создание OLEDBData
4 andrewks
 
12.09.12
12:56
а почему не через adodb? OLEDBData - это же класс Icpp, емнип?
5 Ёпрст
 
12.09.12
12:57
выкини попытку.
ЗагрузитьВнешнююКомпоненту - это функция, которая возвращает результат, там исключения никогда не будет.
6 Ёпрст
 
12.09.12
12:57
(4) потому, что
1.есть метапарссер
2.есть приведение к типу 1с
3. еще куча всего, чего нет в адо.
7 andrewks
 
12.09.12
12:58
какая версия Icpp? в окошке "О программе" есть закладка Icpp?
8 Ёпрст
 
12.09.12
12:59
ну и , для дбф нужен оледб, а не ODBCRecordset
9 zladenuw
 
12.09.12
13:06
(7) закладки нету.
10 Ёпрст
 
12.09.12
13:09
(9) значит, 1cpp не загружена.
качай это и положи в BIN или в каталог с базой

http://www.1cpp.ru/forumfiles/Attachments/icpp-3-2-4-0-rc2.rar
11 zladenuw
 
12.09.12
13:14
(10) получилось
но ошибка при соединение FAILED! IDataInitialize::GetDataSource(): OLE DB.
12 andrewks
 
12.09.12
13:21
(6) может быть, детально не рассматривал этот объект, обычно хватало adodb
13 zladenuw
 
12.09.12
13:23
сделал так
База = СоздатьОбъект("OLEDBData");
   Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;User ID="+"kirill"+";Password="+"1"+";Mask Password=False;Collating Sequence=MACHINE";
   Рез = База.Соединение(Соединение);
   Запрос = База.СоздатьКоманду();
   Если Рез = 1 Тогда
       Сообщить(ТекущееВремя());
       ТекВремя = ТекущееВремя();
       RS = СоздатьОбъект("ODBCRecordset");
       ТекстЗапроса = "
       |SELECT
       |      Спр.Code as Код,
       |      Спр.Descr as Наименование
       |FROM
       |      $Справочник.ТМЦ as Спр";
       
       
       ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
       Сообщить(ТекущееВремя());
       ТекВремя = ТекВремя-ТекущееВремя();
       Сообщить(ТекВремя);
   КонецЕсли;

но теперь пишет при  RS.ВыполнитьИнструкцию(ТекстЗапроса), База данных не установлена :)
14 Ёпрст
 
12.09.12
13:24
15 Ёпрст
 
12.09.12
13:25
(13)да блин, не используй ODBCRecordset, этот объект для скуля
16 Ёпрст
 
12.09.12
13:25
тебе запрос к дбф же нужен, али нет ?
17 zladenuw
 
12.09.12
13:28
(16) да
18 zladenuw
 
12.09.12
13:28
(15) а епи.
19 zladenuw
 
12.09.12
13:31
(14) спс. понял как надо правильно. но теперь такое :)
FAILED! ICommandText::Execute(): Cannot open file sc289.dbf.
20 zladenuw
 
12.09.12
13:35
(19) мда. а если я сижу монопольно. то я не могу прочитать таблицу ?
21 Ёпрст
 
12.09.12
13:53
(20) можешь, ставь это:
22 Ёпрст
 
12.09.12
13:53