|
Непонятки с подключением 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
|
А чорт его знает. Это магия.
Кроме того - выглядит странно. Сначала по номеру колонки получаешь имя, потом по имени - значение...
Может, кодировка...
|
|