全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1428
推到 Plurk!
推到 Facebook!

請問 SQL Server varchar 最多可以存多少字元? 255 ? or 8000 ?

尚未結案
phliao
一般會員


發表:8
回覆:8
積分:3
註冊:2003-08-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-14 20:32:28 IP:203.75.xxx.xxx 未訂閱
從SQL Server 線上說明查到 varchar 資料型別 可以存 1 至 8,000 個位元組。 我有試過存300個字,可是到了256就被截掉了,想請教一下這 8000 是指多少呢? 謝謝
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-14 20:57:36 IP:203.204.xxx.xxx 未訂閱
您好: 應該是不會有這種情況才對,我在公司轉檔程式有那種很長的資料,也沒問題耶,會不會是你資料中間有鍵?你是怎麼把資料讀出來的?
phliao
一般會員


發表:8
回覆:8
積分:3
註冊:2003-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-14 21:14:07 IP:203.75.xxx.xxx 未訂閱
假設 CREATE TABLE aaatest ( aaafield varchar(400) NOT NULL ) 然後我insert 300 個數字(從1.2...0) insert into aaatest(aaafield) values('12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890') 然後 select aaafield from aaatest 欄位 aaafield 卻只出現到 6 不是到 0 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 這是怎麼回事呢? 應該可以存到300的 煩請指點,謝謝。
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-14 22:35:13 IP:222.248.xxx.xxx 未訂閱
資料表中已經正常存儲了300個數位,並且在程式中查詢時也可以得到正確結果,沒有出現截斷現象。 只是在用MS SQL Server的’SQL 查詢分析器’工具執行查詢時,出來了你所說的截斷顯示現象。這是由於工具作了設置,你改一下選項設置就可以了! 如下圖
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
phliao
一般會員


發表:8
回覆:8
積分:3
註冊:2003-08-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-14 23:07:37 IP:218.171.xxx.xxx 未訂閱
先感謝二位不吝指教的大大, 不過不好意思,insert 是有正確存進去 300 個字 不過我是使用BDE去連結DB 在Delphi用Table1去帶出資料(TableName=aaatest, 將Actvie=True後), 欄位只有帶出256個字,這要怎麼處理呢?
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-15 00:35:27 IP:218.161.xxx.xxx 未訂閱
因為你是使用 BDE SQL Link 去連接 SQL Server ,此時是採用底層的 NTWDBLIB.DLL 去連接 SQL Server,由於 SQL Server 在 7.0 就不建議 採用該方式,而繼續提供只是為了讓使用 SQL 6.5 的人可以順利升級上 來,因此透過 BDE 去連接資料庫的時候只能使用到 SQL 6.5 的型態, 所以除非您改用 ADO ,否則還是會有該項限制。
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-15 09:58:52 IP:222.248.xxx.xxx 未訂閱
James說得很對。所以建議採用其他連接方式,如ADO、dbExpress等。 如果一定要使用BDE元件,可以不使用BED驅動,而改為ODBC,就不會出現這類問題啦。    
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
phliao
一般會員


發表:8
回覆:8
積分:3
註冊:2003-08-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-15 19:11:08 IP:203.75.xxx.xxx 未訂閱
我終於知道問題點了,可惜的是,這問題沒法運用大大教我的方法解決 因為我所用的DB是企業用的,不是自己隨便玩玩的DB。 感謝各位回應的大大們!
系統時間:2024-06-29 21:59:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!