線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1099
推到 Plurk!
推到 Facebook!

請指點如何可以知道Tquery中的Fields是什麼形態呢?

答題得分者是:st33chen
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-19 23:36:36 IP:218.254.xxx.xxx 訂閱
小弟想知道如何取得Tquery中的Fields是什麼type,從而做出自動對應效果~

好像這樣:

if query1.(不知道用什麼method)= {Field的type} then
query1.fields[0].Asstring:=edit1.text;
else
query1.fields[0].Asinteger:=strtoint(edit1.text);

因為edit1.text回傳的是只有string type,如果遇上用integer type的field,便要用strtoint先轉type,
有沒有法子先知道fields,本身的type呢?好讓先做手腳~

請師兄們幫小弟想想。
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-20 00:43:03 IP:218.254.xxx.xxx 訂閱
順帶一問:~

query1.Params.AsAsVariant:=edit1.text; //是不可能的,但又有沒有可能可以用到呢?


------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-20 00:49:49 IP:218.254.xxx.xxx 訂閱
不好意思找到了:~
query1.Params[0].Value
Value就是AsVariant type
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-21 15:40:14 IP:218.254.xxx.xxx 訂閱
不好意思小弟第一個問題還未解決,請各位幫小弟想想~謝謝
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-22 13:39:50 IP:122.127.xxx.xxx 訂閱
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
for i := 0 to query1.FieldCount-1 do begin
if Query1.Fields[i].DataType =ftString then begin
query1.fields[0].Asstring:=edit1.text;
end
else if ADOQuery1.Fields[i].DataType =ftInteger
query1.fields[0].Asinteger:=edit1.text;
else if {請查help datatype}
end;
end;
end;
[/code]
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-01-22 17:49:40, 註解 ado和dbe操作一樣吔‧
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-01-22 17:07:25 IP:218.254.xxx.xxx 訂閱
用這個方法似乎可行,但小弟用的是DBE。。。怎麼辦呢?
===================引 用 pceyes 文 章===================
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
for i := 0 to adoquery1.FieldCount-1 do begin
if ADOQuery1.Fields[i].DataType =ftString then begin
adoquery1.fields[0].Asstring:=edit1.text;
end
else if ADOQuery1.Fields[i].DataType =ftInteger
adoquery1.fields[0].Asinteger:=edit1.text;
else if {請查help datatype}
end;
end;
end;
[/code]
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-01-22 17:50:52 IP:122.127.xxx.xxx 訂閱
bde和ado在field.datatype操作方式一樣,請查一下help。
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-01-22 17:51:27, 註解 無‧
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-01-23 09:00:11 IP:122.116.xxx.xxx 訂閱
我記得 (好像用過) 直接用

query1.fields[0].Asstring:=edit1.text;

就可以了, 不需要檢查類別.

------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
系統時間:2024-04-25 12:35:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!