請問動態組成SQL字串做法.. |
|
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
我想請教一個情況: 程式裡已經 get 到一個字串內容是: 然後我再用TStringList的CommaText屬性get到各欄位的FieldName slt := TStringList.Create;
|
帥氣銀行
一般會員 發表:13 回覆:40 積分:15 註冊:2005-05-31 發送簡訊給我 |
|
menfox
一般會員 發表:1 回覆:10 積分:2 註冊:2006-08-14 發送簡訊給我 |
我用的方法是這樣的 1.寫一悜 procedure, 如下所示, 只要把你查出來的 Dataset (即你的 query1) 及 table name 傳進去即可! 當然還有一個 GenInsSQL 的 fucntion, 它才是主角! procedure GenAllInsSQL(rsTblName : String; raDS : TClientDataSet) ; var 它還會在 C:\ 目錄下產生一個 .sql 的檔案, 記錄所有產生的 Insert SQL command. 2.產生 insert SQL 的 function, 它是藉由直接 paser Dataset 中的 datafield 來自動產生 SQL (只缺 Table name, 所以要傳進來) function GenInsSQL(rsTblName : String; raDS : TClientDataSet) : String; laFld := raDS.Fields[liCt]; if (laFld.DataType = ftFloat) or (laFld.DataType = ftFMTBcd) or (laFld.DataType = ftInteger) then lsPStr := lsPStr lsLStr lsValue; 程式你可能要稍微調整一下, 因為我是 third tier 的架構, 所以用 client dataset. 另外 paser Dataset 中的 datafield 會因為您的資料庫而有不同的 Data Type, 有可能須要調整! 基本上它已經可以是一個共用的 function 了! 希望對你有幫助!
------
Hi! It's Menfox! |
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
|
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |