У меня есть хранимая процедура сервера sql (sql server 2005), которая возвращает данные XML через выходной параметр. Для подключения к этой базе данных предпочтительным вариантом является System DSN, поэтому я использую классы ODBC - ODBCConnection, ODBCCommand. Проблема в том, какой тип данных я использую: NChar, char, Text, NText, VarChar, NVarChar, я всегда получаю ту же ошибку, когда я вызываю ODBCCommand :: ExecuteNonQuery:C#, ODBC, Sql Server и xml тип данных
«Тип данных 0x63 - это устаревший большой объект, или LOB, но отмечен как выходной параметр. Устаревшие типы не поддерживаются в качестве выходных параметров. Вместо этого используйте текущие большие типы объектов. "
Я звоню хранимую процедуру, как показано ниже:
OdbcCommand cmd = new OdbcCommand("{CALL FetchTasks(?)}", conn);
cmd.CommandType = CommandType.StoredProcedure;
OdbcParameter param1 = new OdbcParameter();
param1.ParameterName = "@TaskXML";
param1.OdbcType = OdbcType.Text; //I have tried nchar, char, text, ntext
param1.Size = 2048;
param1.Value = "<Root></Root>";
param1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param1);
cmd.ExecuteNonQuery();
есть в любом случае я могу заставить его работать?
Заранее благодарен -Ний.
xml создан на лету, а параметр хранимой процедуры отображается как текст как тип данных для параметра при подключении через серверный проводник в visual studio, и я попытался с текстом, но получаю такую же ошибку. –
Я думаю, что вы необходимо преобразовать его в текст (System.String) и наоборот при передаче и извлечения соответственно. Нужно проверить. –
как именно так? –