|
Помогите с ole |
☑ |
0
paulic
11.10.11
✎
19:07
|
Делаю выборку из базы через Ole в делфи.
Пробегаю по столбцам чтобы узнать его тип.
Простые типы определяю без проблем, а вот до состава даты (Время, ДатаВремя) добраться не могу посредством Ole.
В 1с добрался
ПолучитьКолонку = Выборка.Колонки.Получить();
ТипЗначения = ПолучитьКолонку.ТипЗначения;
Сообщить(ТипЗначения.КвалификаторыДаты.ЧастиДаты);
а здесь не получается
аналог в делфи этой записи такой.
Column := Rslt.Columns.Get(i);
ValueType := Column.ValueType;
ShowMessage(ValueType.DateQualifiers.DateFractions);
но он не срабатывает. Не нравится последняя строка.
Причем по столцам пробегаем это точно, и ValueType получает колонку.
|
|
1
Rie
11.10.11
✎
19:10
|
(0) Чем именно не нравится? Наверное, какое-то сообщение об ошибке выдаётся?
Рискну предположить, что ShowMessage ожидает строку - а получает хрен знает что.
|
|
2
Rie
11.10.11
✎
19:13
|
+(0) У подключения у 1С есть метод String - может, он поможет?
|
|
3
paulic
11.10.11
✎
19:17
|
(1)
Ошибка такая
cannot perform this operation on a closed dataset
|
|
4
paulic
11.10.11
✎
19:17
|
(2)
А что за метод String у подключения 1с
Поясните пожалуйста.
|
|
5
Rie
11.10.11
✎
19:20
|
(3) Это сообщение выдаёт, видимо, ADO. В приведенном коде никаких dataset'ов и в помине нет - так что, похоже, искать надо где-то в другом месте.
Rslt - это кто?
|
|
6
Rie
11.10.11
✎
19:23
|
(4)
"Внешнее соединение.String (External connection.String)
Внешнее соединение (External connection)
String (String)
Синтаксис:
String(<Параметр>)
Параметры:
<Параметр> (обязательный)
Тип: Произвольный. Выражение произвольного типа.
Возвращаемое значение:
Тип: Строка.
Описание:
Получает строковое представление значения произвольного типа.
Доступность:
Интеграция."
|
|
7
paulic
11.10.11
✎
19:26
|
(5)
Rslt - это результат запроса.
И по запросу бегает нормально, для примитивных типов я делаю проверку типа
if ValueType.ContainsType(Settings.Engine.ОбщееХранилище.Дата) then
где общее хранилице определяется Через структуру ("Дата"; Тип("Дата"))
И он нормально понимает это
ContainsType аналог СодержитТип
|
|
8
paulic
11.10.11
✎
19:26
|
(5)
Settings.Engine - это оработка 1с.
|
|
9
Rie
11.10.11
✎
19:30
|
(7) Тебе сообщили, что результат запроса - уже не валидный. Почему он закрылся - отсюда не видно. Возможно, в (0) - лишь фрагмент кода?
|
|
10
paulic
11.10.11
✎
19:34
|
Всем спасибо, что помогали.
Rie был прав, нужно было в String обернуть
ShowMessage(Settings.Server.String(ValueType.DateQualifiers.DateFractions));
Спасибо тебе большое.
Здесь вообще можно ставить плюсики пользователям?
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший