Имя: Пароль:
1C
 
как обработать результат прямого запроса к sql таблице?
0 Маленький Вопросик
 
07.12.14
15:14
Собственно вопрос в коде:

      Для Каждого Стр11 ИЗ Объект.ТаблицаРазложения Цикл
    
        Запрос = Новый COMОбъект("ADODB.Recordset");
        Запрос.Activeconnection = Connection;
        
        Сообщить(Стр11.ПредставлениеВБазе);
        
        ТекстЗапроса = "SELECT count(*) FROM dbo._"+Стр11.ПредставлениеВБазе;
        
        Попытка
            КолвоЗап = Запрос.Open(ТекстЗапроса);
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
        
    КонецЦикла;

Как из "КолвоЗап" получить число записей в таблице???? спасибо.
1 ДенисЧ
 
07.12.14
15:19
RecordCount?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms676701(v=vs.85).aspx

Только учти - ты не всегда его сможешь получить...
2 Маленький Вопросик
 
07.12.14
15:21
(1) почему нельзя запросом????
3 ДенисЧ
 
07.12.14
15:29
(2) А блин, извини
ТекстЗапроса = "SELECT count(*) as cnt FROM dbo._"+Стр11.ПредставлениеВБазе;

КолвоЗап = Запрос.Open(ТекстЗапроса);

записи = колвоЗап.Fields(cnt).Value;
4 Маленький Вопросик
 
07.12.14
15:35
(3) так я пробывал

{Форма.Форма.Форма(64)}: Значение не является значением объектного типа (Fields)

ТипЗнч(КолвоЗап) почему-то неопределено!
5 ДенисЧ
 
07.12.14
15:37
(4) Попробуй не Open, а Ecxeute
6 ДенисЧ
 
07.12.14
15:37
Execute
7 Маленький Вопросик
 
07.12.14
15:38
(6) пробовал

{Форма.Форма.Форма(65)}: Метод объекта не обнаружен (Execute)
8 Маленький Вопросик
 
07.12.14
15:39
СтрПодключения = "Provider=SQLOLEDB.1;Password=" + Пароль + ";Persist Security Info=True;Context connection=true;User ID="
    + Пользователь + ";Initial Catalog=" + База + ";Data Source=" + Сервер;
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.ConnectionString =  СтрПодключения;
    Connection.CommandTimeout = 600;
    
    Попытка
        Connection.Open();
        Сообщить("Подключено!");
    Исключение
          Connection = Неопределено;
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Для Каждого Стр11 ИЗ Объект.ТаблицаРазложения Цикл
    
        Запрос = Новый COMОбъект("ADODB.Recordset");
        Запрос.Activeconnection = Connection;
        
        ТекстЗапроса = "select COUNT(*) from dbo._"+СокрЛП(Стр11.ПредставлениеВБазе);
        
        Сообщить(ТекстЗапроса);
        
        Попытка
            КолвоЗап = Запрос.Open(ТекстЗапроса);
            записи = КолвоЗап.Fields(0).Value;
            Сообщить("КолвоЗаписей: " + записи);
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
        
    КонецЦикла;    
    
    Connection = Неопределено;    
    Сообщить("Выполнено!");
9 Маленький Вопросик
 
07.12.14
16:02
короче народ, как подсчитать количество записей прямым запросом - может проще метод есть какой?
Программист всегда исправляет последнюю ошибку.