ADO не может получить доступ к столбцу типа XML SQL Server с помощью собственного клиента (SQLNCLI)
я использую ADO, и один изродные" водители (например,SQLNCLI
SQLNCLI10
SQLNCLI11
) для подключения к SQL Server (а не устаревшиеSQLOLEDB
Водитель).
ADO не понимаетXML
Тип данных SQL Server, предоставляемый родными драйверами:
field: ADOField;
field := recordset.Fields.Items["SomeXmlColumn"];
Попытка доступаfield.Value
бросает:EOleException
родные клиентские драйверы (например,SQLNCLI
SQLNCLI10
SQLNCLI11
) представитьXml
тип данных для ADO как
field.Type_ = 141 //???
в то время как наследиеSQLOLEDB
водитель представляетXml
тип данных для ADO какadLongVarWChar, строка в кодировке Юникод:
field.Type_ = 203 //adLongVarWChar
ИVARIANT
содержалась вfield.Value
этоWideString
(технически известный как):BSTR
TVarData(field.Value).vtype = 8 //VT_BSTR
Сдается мне, что это ошибка в ADO (Windows 7 SP1), а не то, что я могу исправить.
Как я могу это исправить?
Бонус ЧтениеDelphi с SQL Server: драйверы OLEDB и Native Client