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