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

【問題】SQL的語法SQL.text與SQL.add

 
qqking
一般會員


發表:16
回覆:18
積分:6
註冊:2005-05-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-05 12:29:40 IP:59.113.xxx.xxx 未訂閱
感謝各位大哥... 不過我嘗試一下改書上的語法,卻錯誤?!我貼一下我改的...抱歉版面有點亂:) procedure TForm1.Button1Click(Sender: TObject); VAR MAXENO : INTEGER; begin Query2.SQL.Clear; Query2.SQL.Add('SELECT MAX(ENO) AS MAXENO FROM TEST.DBF'); Query2.CLOSE; Query2.OPEN; MAXENO := Query2.FieldByName('MAXENO').AsInteger 1; Query2.SQL.Clear; Query2.SQL.Add('INSERT INTO TEST.DBF'); Query2.SQL.Add('( ENO ,'); Query2.SQL.Add(' NAME ,'); Query2.SQL.Add(' AGE ,'); Query2.SQL.Add(' ADDR '); Query2.SQL.Add(' ) VALUES ( '); Query2.SQL.Add(' ''' INTTOSTR(MAXENO) ''' ,'); Query2.SQL.Add(' ''' EDIT1.Text ''' , '); Query2.SQL.Add(' ''' EDIT2.Text ''' , '); Query2.SQL.Add(' ''' EDIT3.Text ''' ) '); Query2.ExecSQL; Query1.CLOSE; Query1.OPEN; end; 我將上述各位敎的改成 query2.sql.text :='insert into test.dbf (eno,name,age,addr) values (:eno,:name,:age,:addr)'; query2.ParamByName('eno').Asstring :=inttostr(maxeno); query2.ParamByName('name').Asstring :=edit1.Text; query2.ParamByName('age').Asstring :=edit2.Text; query2.ParamByName('addr').Asstring :=edit3.Text; 按下button後....當了 這是哪裡錯了嗎?....請各位大哥看看
附加檔案:76273_DEMO_D_UPDATE.rar
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-05 15:47:11 IP:203.203.xxx.xxx 未訂閱
query2.ParamByName('eno').AsFloat :=maxeno; query2.ParamByName('age').AsFloat :=StrToIntDef(edit2.Text,0); 問題出在 test.dbf 中的 eno, ago 要看作 有小數點的 Float
qqking
一般會員


發表:16
回覆:18
積分:6
註冊:2005-05-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-05 17:01:49 IP:59.113.xxx.xxx 未訂閱
引言: query2.ParamByName('eno').AsFloat :=maxeno; query2.ParamByName('age').AsFloat :=StrToIntDef(edit2.Text,0); 問題出在 test.dbf 中的 eno, ago 要看作 有小數點的 Float
感謝...問題解決了 謝謝cwc65536兄的指正....小弟會多注意了
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-05 17:31:11 IP:218.15.xxx.xxx 未訂閱
呵呵~还是给cwc65536兄发现了原来是个float型! 指定参数类型,赋值就行参考:
  Query2.ParamByName('eno1').DataType:=ftfloat;
  Query2.ParamByName('eno1').Value:=MAXENO;
  Query2.ParamByName('name1').DataType:=ftstring;
  Query2.ParamByName('name1').Value:=EDIT1.Text;
  Query2.ParamByName('age1').DataType:=ftfloat;
  Query2.ParamByName('age1').Value:=EDIT2.Text;
  Query2.ParamByName('addr1').DataType:=ftstring;
  Query2.ParamByName('addr1').Value:=EDIT3.Text; 
注:按cwc65536兄所给方法也行! ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
系統時間:2024-05-22 10:18:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!