請教 SQL 的問題? |
|
weber
初階會員 ![]() ![]() 發表:24 回覆:56 積分:26 註冊:2002-03-13 發送簡訊給我 |
想請問各位先進兩個 SQL 的問題:
1.Inser into table
我目前都是用
SQL.Clear;
SQL.Add('insert into main ');
SQL.Add('values (:v0,:v1)');
Params[0].Value:=MyValue0;
Params[1].Value:=MyValue1;
ExecSQL;
是可以用,但是若有一個 Table 有30個欄位,那光一個 Insert 動作,
我就要寫30多行的程式碼.不知道各位都是如何處理,有沒有比較好
的方法呢?
2.Delete from table
以前習慣用 TTable 所以在 DBGrid 的畫面上,那一行反白,我只要下
Table1.Delete; 那一筆資料就刪除了,但現在用 Query 該如何做比較好呢? 先謝謝您的回答.
|
Raymond
一般會員 ![]() ![]() 發表:5 回覆:26 積分:6 註冊:2002-04-15 發送簡訊給我 |
引言: 想請問各位先進兩個 SQL 的問題: 1.Inser into table 我目前都是用 SQL.Clear; SQL.Add('insert into main '); SQL.Add('values (:v0,:v1)'); Params[0].Value:=MyValue0; Params[1].Value:=MyValue1; ExecSQL; 是可以用,但是若有一個 Table 有30個欄位,那光一個 Insert 動作, 我就要寫30多行的程式碼.不知道各位都是如何處理,有沒有比較好 的方法呢? 2.Delete from table 以前習慣用 TTable 所以在 DBGrid 的畫面上,那一行反白,我只要下 Table1.Delete; 那一筆資料就刪除了,但現在用 Query 該如何做比較好呢? 先謝謝您的回答.1.針對insert的作業,小弟亦有此困擾... 若table的欄位本身有預設值,且並非每次新增資料時都須 完全填入的話,應該可以用指定欄位的方式進行新增 2.delete我知道的作法必須將鍵值找出來下在where條件才 能正確的刪除... |
領航天使
站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
先回答1:
試看看以下的函數呢?一行搞定喔!
function InsertSQLStr(InsertTableName:string;ValueStr:array of string):string; var SqlStr:string; i:integer; begin SqlStr:='INSERT INTO ' InsertTableName ' VALUES('; for i:=0 to high(ValueStr)-1 do begin SqlStr:=SqlStr '''' ValueStr[i] ''''; if i=high(ValueStr)-1 then SqlStr:=SqlStr ')' else SqlStr:=SqlStr ','; end; result:=SqlStr; end; procedure TForm1.Button1Click(Sender: TObject); begin caption:=InsertSqlStr('main',['a','b','c']); end;以次類推可以寫個InsertSQLStr() ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
computer20002
一般會員 ![]() ![]() 發表:8 回覆:16 積分:4 註冊:2002-11-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |