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

請問以下的差別

答題得分者是:ha0009
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-09 14:34:44 IP:203.69.xxx.xxx 未訂閱
請問以下的差別 1:qyTmp:TQuery SALEITM是第一欄位 請問以下的取欄位值4個表示方式是否相同 qyTmp.Fields[0].AsString qyTmp['SALEITM'].AsString qyTmp.Fieldbyname('SALEITM').AsString DataSet['SALEITM'] 2:什麼時候要 qyTmp['SALEITM'].AsString的.AsString是tabel設定時欄位型態嗎? 要轉型時要STRTOFLOAT(qyTmp['SALEITM'].AsString)為FLOAT型態 STRTOFLOAT(qyTmp['SALEITM'])為FLOAT型態,兩者有什麼差別
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-09 15:16:33 IP:61.30.xxx.xxx 未訂閱
你好:
一
  qyTmp.Fields.Fields [0] 是直接指定第 n 個 Field
  qyTmp.FieldByName [FieldName] 取出出欄位名稱為 FieldName 的 Field
  TQuery 是繼承自 TDataset 所以用法一樣。
  1. 用名稱比較好記。
  2. 有時候相同的欄位位置會不一樣,如你使用 Select A, B 與 Select B, A 雖然資料一樣,但位置就不一樣。    二
  當 TDataset Open 時,會根據資料型別建立繼承自 TField 的相關類型,如整數型態就會使用 TIntegerField 類型
  所以端看你的 Field 是何種型別,再呼叫何種屬性。下舉例。      Field := qyTmp.Fields.Fields [0];
  if (Field is TIntegerField) then 
    result := Field.AsInteger;
    
  你也可以不判斷直接以 Value 方式,因為 Value 是 Variant 型態。
  result := qyTmp.Fields.Fields [0].Value;
  
  但有一點要注意的如果你的欄位允許 Null 狀態存在的話,有些狀況你可能要先使用 qyTmp.Fields.Fields [0]IsNull 
  來判斷。
suckin
一般會員


發表:13
回覆:26
積分:7
註冊:2003-06-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-09 18:38:50 IP:211.22.xxx.xxx 未訂閱
qyTmp.Fields[0].AsString qyTmp['SALEITM'].AsString qyTmp.Fieldbyname('SALEITM').AsString 以上三則會傳回 string 值, 但假如是空值(NULL), 則傳回 '' DataSet['SALEITM'] 上面會傳回 string 值, 但假如是空值(NULL), 則傳回 NULL 2:什麼時候要 qyTmp['SALEITM'].AsString的.AsString是tabel設定時欄位型態嗎? Yes , 但某些具有共通的型別可以即時轉型. 要轉型時要STRTOFLOAT(qyTmp['SALEITM'].AsString)為FLOAT型態 STRTOFLOAT(qyTmp['SALEITM'])為FLOAT型態,兩者有什麼差別 身二者都不安全. 當 SALEITEM 為空值時會傳回 Error . 因為 Null 及 '' 都無法轉為 Float , 應該先判斷再執行 STRTOFLOAT
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-10 10:24:54 IP:203.69.xxx.xxx 未訂閱
引言: qyTmp.Fields[0].AsString qyTmp['SALEITM'].AsString qyTmp.Fieldbyname('SALEITM').AsString 以上三則會傳回 string 值, 但假如是空值(NULL), 則傳回 '' DataSet['SALEITM'] 上面會傳回 string 值, 但假如是空值(NULL), 則傳回 NULL 2:什麼時候要 qyTmp['SALEITM'].AsString的.AsString是tabel設定時欄位型態嗎? Yes , 但某些具有共通的型別可以即時轉型. 要轉型時要STRTOFLOAT(qyTmp['SALEITM'].AsString)為FLOAT型態 STRTOFLOAT(qyTmp['SALEITM'])為FLOAT型態,兩者有什麼差別 身二者都不安全. 當 SALEITEM 為空值時會傳回 Error . 因為 Null 及 '' 都無法轉為 Float , 應該先判斷再執行 STRTOFLOAT
什麼是--->但某些具有共通的型別可以即時轉型.
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-10 10:42:55 IP:61.30.xxx.xxx 未訂閱
你好: 那是說 Variant 可以轉會的型別,見下圖    
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-10 10:45:39 IP:61.30.xxx.xxx 未訂閱
你好: 那是說 Variant 可以轉會的型別,見下圖    
系統時間:2024-06-01 23:45:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!