Имя: Пароль:
1C
1С v8
чтение таблиц через COMОбъект("ADODB.Recordset")
0 evg61
 
08.08.13
08:25
Уважаемые коллеги!
Подскажите пожалуйста возможное решение проблемы.
Для чтения таблицы с двумя полями Field1 и Field2 работает такой код:

Запрос = Новый COMОбъект("ADODB.Recordset");
Запрос.ActiveConnection = Connection;
ТекстЗапрос = "SELECT * FROM " + СокрЛП(ИмяТаблицы);
Запрос.Open(ТекстЗапрос);
Пока Запрос.EOF() = 0 Цикл
   Стр = Таблица.Добавить();    
   Стр.Поле1 = Запрос.Fields("Field1").Value;
   Стр.Поле2 = Запрос.Fields("Field2").Value;
   Запрос.MoveNext();
КонецЦикла;
Запрос.Close();

Вопрос:
Существует ли универсальное решение позволяющее этим же способом читать другие таблицы, состоящие из произвольного набора полей?

Что то типа:
   Стр.NameField = Запрос.Fields("NameField").Value;
где в переменной NameField будут подставляться реальные имена полей таблиц, а в переменной ИмяТаблицы - имя выбранной таблицы.
Набор полей каждой таблицы известен.

Спасибо!
1 shuhard
 
08.08.13
08:27
(0) да, если через ADOX поучить список полей
2 pervakovanton
 
08.08.13
08:39
Стр[Поле1] = Запрос.Fields(Поле1).Value
3 evg61
 
08.08.13
08:55
Коллеги, спасибо! :-)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн