Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 01:47
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: ADO и 1С  (Прочитано 9365 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дринкинс

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-27
  • Сайт: 
  • Профессия: Ученик 1С
ADO и 1С
« Первое сообщение: 12 Июл 2013, 14:10 »

    Соединение=Новый COMОбъект("ADODB.Connection");
    RecordSet=Новый COMОбъект("ADODB.Recordset");
    //Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;""";
    Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Mode=Share Deny None;Extended Properties=Excel 8.0;Persist Security Info=False";
    Соединение.Open();   
    RecordSet.ActiveConnection = Соединение;
    RecordSet.CursorType = 3;
    RecordSet.LockType = 2;
    cat=Новый COMОбъект("ADOX.Catalog");
    cat.ActiveConnection=Соединение;
    //RecordSet.Source = "Select Лист.* from ["+cat.Tables(0).Name+"]";
   
    ТекстЗапроса =
   "SELECT
   |    *
   |FROM
   |    [" + ИмяФайлаЗагрузки + "$] as Лист";
   
    Попытка
       RecordSet.Open(ТекстЗапроса,Соединение);
    Исключение
       Сообщить(ОписаниеОшибки());
       Возврат;
    КонецПопытки;
   
    ТЗ=Новый ТаблицаЗначений();
    КоличествоКолонок = RecordSet.Fields.Count;
    Для НомерКолонки=0 По КоличествоКолонок - 1 Цикл
        ТЗ.НоваяКолонка(RecordSet.Fields(НомерКолонки).Name);
    КонецЦикла;
    Пока RecordSet.Eof()=0 Цикл
        ТЗ.НоваяСтрока();
        Для НомерКолонки=0 По КоличествоКолонок - 1 Цикл
            ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,НомерКолонки+1,RecordSet.Fields(НомерКолонки).Value);
        КонецЦикла;
        RecordSet.MoveNext();
    КонецЦикла;
    RecordSet.Close();
    Соединение.Close();
    ТЗ.ВыбратьСтроку();


Может кто подскажет почему выдает ошибку:

{Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Недопустимое имя 'C:\sheet.xls$'.  Проверьте, что оно не содержит недопустимые символы или знаки препинания, а также не является слишком длинным.



Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: ADO и 1С
« Ответ #1: 12 Июл 2013, 14:22 »
А что в - ИмяФайлаЗагрузки ?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: ADO и 1С
« Ответ #2: 12 Июл 2013, 14:24 »
C:\sheet.xls$
есть подозрение что тут что то лишнее
C:\sheet.xls$
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Дринкинс

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-27
  • Сайт: 
  • Профессия: Ученик 1С
Re: ADO и 1С
« Ответ #3: 12 Июл 2013, 14:25 »
А что в - ИмяФайлаЗагрузки ?
Путь до файла.
Добавлено: 12 Июл 2013, 14:25

C:\sheet.xls$
есть подозрение что тут что то лишнее
C:\sheet.xls$

Если из запроса убрать $ то все равно ошибка.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: ADO и 1С
« Ответ #4: 12 Июл 2013, 14:30 »
Из какого запроса?!!!
Добавлено: 12 Июл 2013, 14:31

Соединение=Новый COMОбъект("ADODB.Connection");
    RecordSet=Новый COMОбъект("ADODB.Recordset");
    //Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;""";
    Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Mode=Share Deny None;Extended Properties=Excel 8.0;Persist Security Info=False";
    Соединение.Open();   
У тебя эта часть не работает!

Добавлено: 12 Июл 2013, 14:32

Для Microsoft.Jet.OLEDB.4.0 вот правильный синтаксис:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

Добавлено: 12 Июл 2013, 14:33

http://www.connectionstrings.com/excel/
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Дринкинс

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-27
  • Сайт: 
  • Профессия: Ученик 1С
Re: ADO и 1С
« Ответ #5: 12 Июл 2013, 14:49 »
Из какого запроса?!!!
Добавлено: 12 Июл 2013, 14:31

Соединение=Новый COMОбъект("ADODB.Connection");
    RecordSet=Новый COMОбъект("ADODB.Recordset");
    //Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;""";
    Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайлаЗагрузки)+";Mode=Share Deny None;Extended Properties=Excel 8.0;Persist Security Info=False";
    Соединение.Open();   
У тебя эта часть не работает!

Добавлено: 12 Июл 2013, 14:32

Для Microsoft.Jet.OLEDB.4.0 вот правильный синтаксис:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

Добавлено: 12 Июл 2013, 14:33

http://www.connectionstrings.com/excel/
Если например так
Соединение = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
то ошибка при контроле кода

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: ADO и 1С
« Ответ #6: 12 Июл 2013, 15:20 »
конечно... Кавычки то кто расставлять будет?
СтрокаСоединения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Дринкинс

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-27
  • Сайт: 
  • Профессия: Ученик 1С
Re: ADO и 1С
« Ответ #7: 12 Июл 2013, 15:24 »
конечно... Кавычки то кто расставлять будет?
СтрокаСоединения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
Я расставил кавычки нов се равно:
{Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Недопустимое имя 'C:\sheet.xls$'.  Проверьте, что оно не содержит недопустимые символы или знаки препинания, а также не является слишком длинным.
Добавлено: 12 Июл 2013, 15:27

может чегото в винде не хватает?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: ADO и 1С
« Ответ #8: 12 Июл 2013, 16:01 »
СтрокаСоединения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
С этой строкой у тебя валиться ошибка недопустимое имя C:\sheet.xls$?
Добавлено: 12 Июл 2013, 16:04

Файл то на диске С:\ есть такой? sheet.xls

Соединение=Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\sheet.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
Попытка
    Соединение.Open();
Исключение
   Сообщить(ОписаниеОшибки());
   Возврат;
КонецПопытки;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Дринкинс

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-03-27
  • Сайт: 
  • Профессия: Ученик 1С
Re: ADO и 1С
« Ответ #9: 12 Июл 2013, 16:04 »
Вот с этой
RecordSet.Open(ТекстЗапроса,Соединение);
Добавлено: 12 Июл 2013, 16:05

СтрокаСоединения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
С этой строкой у тебя валиться ошибка недопустимое имя C:\sheet.xls$?
Добавлено: 12 Июл 2013, 16:04

Файл то на диске С:\ есть такой? sheet.xls

Соединение=Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\sheet.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
Попытка
    Соединение.Open();
Исключение
   Сообщить(ОписаниеОшибки());
   Возврат;
КонецПопытки;
файл конечно есть


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 190
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal