請問使用 ADO 元件如何判斷 SQL Server 的 Char 與 VarChar 欄位 |
尚未結案
|
NeoMayer
一般會員 ![]() ![]() 發表:5 回覆:9 積分:2 註冊:2002-03-26 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
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 的不同了, 應該說所有的欄位型態都能取得囉. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |