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

請問使用 ADO 元件如何判斷 SQL Server 的 Char 與 VarChar 欄位

尚未結案
NeoMayer
一般會員


發表:5
回覆:9
積分:2
註冊:2002-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-29 15:40:35 IP:203.162.xxx.xxx 未訂閱
請教各位大大,如題。 請問使用 ADO 如何判別 SQL Server 的欄位是 Char 還是 VarChar 還有 NChar 或者是 NVarChar? 謝謝!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-29 17:12:07 IP:203.95.xxx.xxx 未訂閱
hi, 國際字元的判定, 可以直接利用 TFieldType 來判定. 但是變動長度則無法由此判定, 或是這麼說, 你可以判定 nchar/nvarchar 和 char/varchar 的不同, 但不能利用 TFieldType 來判定有 var 和沒有 var 的部分, 作法是利用 GetEnumName 這個 function 來取出 TFieldType 即可, 如下,
uses TypInfo;
..
  ADOQuery1.SQL.Text := 'select top 1 sid, sdata from table1';
  ADOQuery1.Open;
  ShowMessage(GetEnumName(TypeInfo(TFieldType), Ord(ADOQuery1.FieldByName('sdata').DataType)));
回傳為 ftString 時, 則為 char/varchar, 回傳為 ftWideString 時, 則為 nchar/nvarchar. 若是要更精確的話, 可以使用 stored procedure 的 sp_columns , 如 sp_columns table1 來取回所有欄位的型態, 如此便能分辨 nchar/nvarchar/char/nchar 的不同了, 應該說所有的欄位型態都能取得囉.
系統時間:2024-07-01 9:33:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!