-
ну вот например вот такая конструкиця ругается типа "Ошибка при выполнении многоступенчатой операции бла бла бла"
showmessage((ADataSet as TADOQuery).Recordset.Fields[4].Value);
Как его привести к тексту.
Я так понимаю это OleVartiant и ему четко нада сказать что он строка. Вот как ? -
будет ли правильным и безопасным явное приведение к строке ? ведь это по сути не совсем строка
-
попробовал привести явно таже ошибка:
---------------------------
Debugger Exception Notification
---------------------------
Project raised exception class EOleException with message 'Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
--------------------------- -
> showmessage((ADataSet as TADOQuery).Recordset.Fields[4].Value);
> ему четко нада сказать что он строка. Вот как ?
попробуй так (типа xml в вариантах тоже нет, а значит автопреобразование тоже не сработает, но по сути то это тот же текст), без гарантий, но ...var
v: variant;
begin
ADODataSet1.Open;
v:= ADODataSet1.Recordset.Fields['body'].Value;
FindVarData(v).VType:= varString;
ShowMessage(v); -
v := ADODataSet1.Recordset.Fields['body'].Value;
Вот тут валится с той-же ошибкой. Видимо тут проблемма как раз в том что не может он этот OleVariant ни к чему преобразовать :-) вот такая шняга нехорошая -
Ну проблемму вроде решил кастингом к nvarchar(MAX), по документации размер этого типа данных равен 2^32-1 так что должно влезть.