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

請教 SQL 的問題?

 
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-05-08 15:17:00 IP:61.217.xxx.xxx 未訂閱
想請問各位先進兩個 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-05-08 17:25:54 IP:211.74.xxx.xxx 未訂閱
引言: 想請問各位先進兩個 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-05-08 19:09:07 IP:192.168.xxx.xxx 未訂閱
先回答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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-18 11:53:16 IP:61.221.xxx.xxx 未訂閱
SQL.clear; SQL.Add('insert into main '); SQL.Add('values (:v0,:v1)'); SQL. for iCount:=0 to ParamCount-1 do Params[iCount]:=MyValue IntToStr(iCount); ExecSQL; 不知道這樣有沒有解決你的問題
系統時間:2024-07-03 3:54:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!