Имя: Пароль:
1C
1С v8
Непонятки с подключением ADODB к Mysql
0 Alex11
 
24.07.14
18:06
Вроде не пятница, но какая то хрень. В общем, подключаюсь к базе Mysql, в отладчике вся инфа доступна. НО вот какая фигня, при строке:                Значение = RS.Fields(ИмяПоля).Value;
Данные в RS.Fields(ИмяПоля).Value становятся NULL, соот-но получить их не могу. Уже все глаза сломал, все проверил, но не понимаю в чем проблема. При чем, это происходит только с полем TEXT, с числом все нормально.


    Запрос = "SELECT * FROM " + ИмяТаблицыКатегорийMySql;
    
    Command.CommandText = Запрос;
    Command.CommandType = 1;
    
    RS = Новый COMОбъект("ADODB.Recordset");
    RS.ActiveConnection = Connection;
    RS.CursorType = 3;
    RS = Command.Execute();
    
    РезультатЗапроса = Новый ТаблицаЗначений;
    КоличествоПолей = RS.Fields.Count;
    
    Попытка
        RS.MoveFirst();
    Исключение
        Сообщить("Данных  нет");
    КонецПопытки;
    
    Пока НЕ RS.EOF Цикл
        НоваяСтрока = ДанныеТаблицаКатегорий.Добавить();
        Для НомерКолонки = 0 По КоличествоПолей - 1 Цикл
            ИмяПоля = RS.Fields.Item(НомерКолонки).Name;
                   Значение = RS.Fields(ИмяПоля).Value;
            НоваяСтрока[ИмяПоля] = Значение;
        КонецЦикла;
        RS.MoveNext();
    КонецЦикла;    
    RS.Close();
1 ДенисЧ
 
24.07.14
18:14
Тип поля?
2 Alex11
 
24.07.14
18:16
TEXT, кодировка таблицы 1251, при этом что перед тем как доходит до Значение = RS.Fields(ИмяПоля).Value, в отладчике RS.Fields(ИмяПоля).Value показывает нормально текст в киррилице, но как доходит, то в отладчике RS.Fields(ИмяПоля).Value показывает NULL
3 ДенисЧ
 
24.07.14
18:17
А если не по имени, а по номеру поля?
4 Alex11
 
24.07.14
18:22
Сработало!!! Спасибо друг. А в чем грабля? этот же код в другой базе, с другой таблицей работает нормал как есть.
5 ДенисЧ
 
24.07.14
18:27
А чорт его знает. Это магия.
Кроме того - выглядит странно. Сначала по номеру колонки получаешь имя, потом по имени - значение...
Может, кодировка...