|
Помогите с 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)); Спасибо тебе большое. Здесь вообще можно ставить плюсики пользователям? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |