• Alexander_K © (07.07.09 15:38) [0]
    Добрый день!

    Имеется БД Оракл, там имеется функция, которая возвращает строку типа varchar2, имеется программа, которая для связки с ораклом использует DOA.

    Так вот при вставке в SQL-запрос в программе данной функции,
    что-то типа этого:
    select b.nmb,b.place, функция(a.idx) as name,c.fd,c.td, from ...

    в гриде появляется результирующий курсор (в программе используется стандартный грид), но вместо содержимого строк в поле name (результат выполнения функции) появляется (MEMO).
    То есть я так понял что почему-то данное поле TField считается типа ftMemo, причем это делается автоматически, при выполнении запроса. А мне надо чтобы это поле было обычного строкового типа...
    Как мне указать при выполнении запроса, что это поле TField будет строковым? Или как ему сменить тип на строковый, после выполнения запроса?

    Заранее спасибо!

    P.S. пробовал уж запрос и так писать
    select b.nmb,b.place, substr(функция(a.idx) as name,0,60),c.fd,c.td, from ...

    чтобы указать хоть как-то размер этого поля... не помогло...
  • Alexander_K © (07.07.09 15:45) [1]
    У TField есть метод SetFieldType, пробовал его устанавливать в ftString, после выплолнения запроса... не помогло
  • Кщд (08.07.09 05:46) [2]
    >Alexander_K ©   (07.07.09 15:38)  

    >substr(функция(a.idx) as name,0,60)
    читать документацию

    попробуйте: cast(функция(a.idx) as varchar2(60)) as fld
  • Alexander_K © (08.07.09 08:26) [3]
    Спасибо огромное!!! Помогло!
Есть новые Нет новых   [134473   +32][b:0][p:0]