sql text字段不能顯示的解決方法
在項目中,有時會遇到之前可以顯示sql text字段,但是改了SQL語句或又再原表后加入了新字段后,sql text字段不能顯示的問題,著實讓人頭疼。
最簡單的一個技巧就是,把所有ntext,text這樣的二進(jìn)制長對象在設(shè)計表、試圖和編寫SQL時,放在最后,就可以正常的用UD調(diào)用并顯示了。
例如:
設(shè)計留言簿時留言內(nèi)容(假設(shè)字段名為contents)肯定要設(shè)置成ntext或text.
那么把這個字段設(shè)計為該表最后一個字段,之后
Select * from tablename
這樣就可調(diào)用了。
或者:
Select id, name, ...., contents form tablename
一定要把ntext、text這種字段放在最后,否則就不能調(diào)用。
你說的以前可以顯示現(xiàn)在不能顯示,我估計是你后改了SQL語句或又再原表后加入了新字段,導(dǎo)致ntext、text不是表中最后的字段,所以出問題!
這個問題曾經(jīng)困擾過我一段時間,后來不經(jīng)意間摸索出來
原因
SQL Server 的 "Text" 和 "ntext" 數(shù)據(jù)類型是數(shù)據(jù)庫里的 BLOB(2進(jìn)制大對象)一個 BLOB 是一個大文件. 典型的 BlOB 是一張圖片或一個聲音文件,由于它們的尺寸,必須用特殊的方式處理 (例如: 上傳, 下載 或者存放到一個數(shù)據(jù)庫)
解決方法
當(dāng)使用 UltraDev 的 ASP server (ADO) 對 Microsoft SQL Server 的 BLOB 域做動作時,
你的 SQL statements 的 "SELECT" 子句必須在讀所有非 BLOB 列后再 讀 BLOB 類型列的值.
為了安全, 你還應(yīng)當(dāng)維持在數(shù)據(jù)庫里列的從左到右的次序. 如果你選擇在你的數(shù)據(jù)集的最后兩列放兩個 BLOB 列, 必須先讀前一個再讀后一個.不要顛倒次序.
也就是說,我們不是要注意在數(shù)據(jù)庫表中"Text" 或"ntext" 類型的字段排在最后,而是要注意"SELECT" 子句中"Text" 或"ntext" 類型的字段排在最后。如果有一列以上的"Text" 或"ntext" 類型的字段,要注意它們在數(shù)據(jù)庫表中的順序。
【編輯推薦】