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

[BCB][问题]根据TEDIT的TEXT值更新DATABASE的问题

尚未結案
hugeroy
一般會員


發表:5
回覆:4
積分:1
註冊:2004-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-23 10:42:26 IP:202.106.xxx.xxx 未訂閱
Hi,    我的一个Form中有十个Edit,我需要根据这十个Edit的输入向Database插入数据。    现在的问题是,当某个Edit为空的时候,在做StrToInt时会报错。我不想逐个判断每个Edit是否为空。    有没有好一些的办法?谢谢!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-23 16:37:52 IP:210.65.xxx.xxx 未訂閱
Hi hugeroy,    假設 Field1 ~ Field10 皆為 FloatField,可以使用 convert 指令,由 DataBase 進行轉換即可
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text :=  'Insert Into YourTable '  
                      '(Field1,' 
                      'Field2,' 
                      'Field3,' 
                      'Field4,' 
                      'Field5,' 
                      'Field6,' 
                      'Field7,' 
                      'Field8,' 
                      'Field9,' 
                      'Field10)' 
                      ' Values ' 
                      '(Convert(Float,'   QuotedStr(Edit1.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit2.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit3.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit4.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit5.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit6.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit7.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit8.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit9.Text)  '),' 
                      'Convert(Float,'   QuotedStr(Edit10.Text)  '))';
  Query1.ExecSQL;
end;
或是根本無須轉換也可以
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text :=  'Insert Into YourTable '  
                      '(Field1,' 
                      'Field2,' 
                      'Field3,' 
                      'Field4,' 
                      'Field5,' 
                      'Field6,' 
                      'Field7,' 
                      'Field8,' 
                      'Field9,' 
                      'Field10)' 
                      ' Values ' 
                      '('   QuotedStr(Edit1.Text)  ',' 
                      QuotedStr(Edit2.Text)  ',' 
                      QuotedStr(Edit3.Text)  ',' 
                      QuotedStr(Edit4.Text)  ',' 
                      QuotedStr(Edit5.Text)  ',' 
                      QuotedStr(Edit6.Text)  ',' 
                      QuotedStr(Edit7.Text)  ',' 
                      QuotedStr(Edit8.Text)  ',' 
                      QuotedStr(Edit9.Text)  ',' 
                      QuotedStr(Edit10.Text)  ')';
  Query1.ExecSQL;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
hugeroy
一般會員


發表:5
回覆:4
積分:1
註冊:2004-11-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-23 17:05:17 IP:202.106.xxx.xxx 未訂閱
Fishman, 真是感谢! 今天来不及试了,明天过来试试看 
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-24 08:55:51 IP:210.65.xxx.xxx 未訂閱
Hi hugeroy,    如果你原先是使用變數傳入的方式,將該變數的 Data Type 更改為 ftString 也可以
SQL : insert into yourtable (field1,field2,.....) values (:p_field1,:p_field2,....)    procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.ParamByName('P_field1').AsString := Edit1.Text;
  .....
  Query1.ExecSQL;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
hugeroy
一般會員


發表:5
回覆:4
積分:1
註冊:2004-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-24 11:25:05 IP:202.106.xxx.xxx 未訂閱
Hi, fishman,    非常感谢阿!三种方法都是可行的只是对于第一种方法,应该使用的是 >。你的解决问题的思路是,把相应的转换工作都交给 >
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-24 11:53:41 IP:210.65.xxx.xxx 未訂閱
Hi hugeroy ,    Sorry !! 忘了問你使用的 DataBase    CONVERT 是 SQL Server 上的語法,TO_NUMBER 則為 Oracle 所使用     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
系統時間:2024-10-02 1:00:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!