Имя: Пароль:
1C
1C 7.7
v7: Помогите с OLE._Recordset как результат получить в ТаблицаЗначений
0 sysadminlk
 
08.06.13
11:31
Тек = CreateObject("ADODB.Recordset");
       Тек.Open("SELECT * FROM  `t_personal_accounts`", Соединение );
       
       Сообщить(ТипЗначенияСтр(Тек));
1 МихаилМ
 
08.06.13
11:34
2 КонецЦикла
 
08.06.13
11:41
Непонятно зачем тут OLE
Делай запрос к нужной базе и все
3 sysadminlk
 
08.06.13
11:48
(2) а ответ через что получать?

Пока  Тек.EOF() = 0 Цикл
Сообщить(Тек.Fields(1).Value);
КонецЦикла

Только так что-ли?
4 ДенисЧ
 
08.06.13
11:51
(3) да
5 sysadminlk
 
08.06.13
11:55
Как-то оптимизировать этот код можно?

       Сообщить("Выполняю запрос в базу сайта SELECT * FROM...");    
       Тек = CreateObject("ADODB.Recordset");    
       Тек.Open("SELECT * FROM  `t_personal_accounts`", Соединение );    
           
       Сообщить("Конвертирую результат в таблицу значений.");    
       Пока  Тек.EOF() = 0 Цикл    
           ТекущаяТаблицаНаСайте.НоваяСтрока();
           ТекущаяТаблицаНаСайте.Строка = СокрЛП(Тек.Fields("id_client").Value);
           ТекущаяТаблицаНаСайте.Лицевой = СокрЛП(Тек.Fields("accounts").Value);
           ТекущаяТаблицаНаСайте.Фамилия = СокрЛП(Тек.Fields("full_name").Value);
           ТекущаяТаблицаНаСайте.ВодомерХ = СокрЛП(Тек.Fields("amount_h").Value);
           ТекущаяТаблицаНаСайте.ВодомерГ = СокрЛП(Тек.Fields("amount_g").Value);
           Тек.MoveNext();
       КонецЦикла;    
       Соединение.close();    
           
       Сообщить("Счетов на сайте: "+ТекущаяТаблицаНаСайте.КоличествоСтрок()+"");
6 МихаилМ
 
08.06.13
12:19
можно ищите про "getrows"
обращаться к полям бд по именам не производительно: лучше по номерам.

использование * (все поля) в неотладочном запросе - плохой стиль: укажите нужные поля даже если это все поля