0

我返回從存儲過程(在SQL Server 2008)的靜態字符串如下:字符串的最大長度可以從存儲過程在SQL Server 2008中返回到.NET應用程序

select 'abcdefgh.........xyz' 

如果靜態字符串長度超過某些限制(例如:8kb),則只有部分字符串(例如:7kb)返回到.net應用程序。

雖然我嘗試了不同的方式,如分配靜態字符串到varchar(max)並選擇變量,仍然只返回部分字符串。

我應該返回完整的字符串,可能是最大5mb。因此,主要關注:

  1. 什麼是最大字符串長度,我可以從存儲過程
  2. 返回如何從存儲過程返回5 MB字符串.NET應用程序。

我要求有人可以幫我解決這個問題。 請提前發現怪才下面

using (SqlCommand command = new SqlCommand(Source.GetExportRecordSP, Connection)) 
      { 
       command.CommandType = CommandType.StoredProcedure; 
       command.Parameters.Add(new SqlParameter("@CandidateRecordID ", SqlDbType.NVarChar, 32)).Value = record; 
       try 
       { 
        if (Connection.State != ConnectionState.Open) 
        { 
         Connection.Open(); 
        } 
        using (SqlDataReader reader = command.ExecuteReader()) 
        { 
        if(reader.Read()) 
         { 
          xmlRecord = new XmlDocument(); 
          xmlRecord.LoadXml(reader.GetString(0)); 
         } 
        } 
       } 
       catch (Exception Ex) 
       { 
        Logging.WriteError(string.Format("Error while retrieving the Record \"{0}\" details from Database. Exception: {1} ", Ex.ToString())); 
        throw; 
       }    
      } 

感謝代碼。

+0

'varchar(max)'應該能夠返回超過8kb ......你的.NET代碼是什麼樣的?我的猜測是,這個問題是在你的數據訪問層,而不是你的存儲過程。 – 2012-02-22 19:43:13

+0

同意@Michael,發佈您的.Net代碼。 – sisdog 2012-02-23 03:15:38

+0

謝謝米哈爾,請找到下面的代碼, – Sadhu 2012-02-23 06:59:29

回答

0

謝謝支持,我發現1點定爲這在 http://www.sqlservercentral.com/Forums/Topic350590-145-1.aspx

修復時,聲明一個變量,並應initlized空字符串,並與主字符串連接在一起。

DECLARE @test varchar(MAX); 
set @test ='' 
select @test = @test + '<Invoice>.....' 

如果字符串長度爲< 8000,則它將在沒有上述方法的情況下工作。

謝謝大家。

0

由於您似乎沒有使用OLEDB連接(它具有8k的限制),所以我認爲問題出在您的過程代碼中。

或者,也許兼容性版本的數據庫設置爲SQL Server 2008以外的版本(SQL Server 2000無法使用GetString()返回超過8k)。

+0

我可以知道哪裏可以更改sql server 2008的兼容版本嗎?但是我們在產品環境和其他服務器上觀察了行爲。 – Sadhu 2012-02-23 07:22:12

+0

@SadHu,它在數據庫屬性上(可從SQL Server管理工作室查看)。有關如何查看它的說明,請參閱http://msdn.microsoft.com/en-us/library/bb933794%28v=sql.100%29.aspx。 有關如何更改它的說明,請參閱此處:http://msdn.microsoft.com/en-us/library/bb510680%28v=sql.100%29.aspx – Bridge 2012-02-23 09:49:59

相關問題