如何判斷Memo中的換行 |
答題得分者是:st33chen
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
怎樣判斷MEMO中的換行序號
EX: MEMO 中 序號為 ------------ 1 2 3 4 5 ------------ 然後我的功能需要去執行 SELECT SN FROM TABLE WHERE SN IN ('1','2','3','4','5') 以上述五組序號做條件而執行 該怎麼實現呢?? [code delphi] CommandText := 'DELETE G_OC_SN ' 'WHERE SN = ''' Memo1.Text ''' '; [/code]
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet 編輯記錄
lovemari 重新編輯於 2008-11-10 16:01:21, 註解 無‧
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
如果 memo1 中每列只存 1,2, .... 等文數字 試一下 var astr : string; astr := 'SELECT SN FROM TABLE WHERE SN IN (''' stringreplace(trim(memo1.text),#13#10,''',''',[rfreplaceall]) ''')'; ===================引 用 lovemari 文 章=================== 怎樣判斷MEMO中的換行序號 EX: MEMO 中 序號為 ------------ 1 2 3 4 5 ------------ 然後我的功能需要去執行 SELECT SN FROM TABLE WHERE SN IN ('1','2','3','4','5') 以上述五組序號做條件而執行 該怎麼實現呢?? [code delphi] CommandText := 'DELETE G_OC_SN ' 'WHERE SN = ''' Memo1.Text ''' '; [/code]
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
SQL的命令結束有問題..
[code delphi] CommandText := 'DELETE G_OC_SN ' 'WHERE PART_SN = ''' StringReplace(Trim(Memo1.text),#13#10,''',''',[Rfreplaceall]) ''' '; [/code]
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-10 16:49:59, 註解 無‧
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
大哥, 您也真是的, 試一下不就知道了?
只要memo1.text 中沒有單引號, 我認為可以的. ===================引 用 lovemari 文 章=================== 如果我序號是 ----------------- 1245678 ASFHLWO 545JSF24 SMR39FJR R1RKKJKLW ----------------- 長的很特殊的 是否能用上述方法去做呢??
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您不是要用 in 而非 = 嗎?
WHERE SN IN ('1','2','3','4','5') ======================================================== 這問題的傳統解法是 : var istr : string; ii : integer; ... istr := ''; for ii := 0 to memo1.count-1 do begin // 可以做其他處理, 例如排除空列, 排除有單引號的 line istr := istr ', ''' memo1.lines[ii] ''''; end; istr := copy(istr,2, length(istr)-1); // where 子句 'where sn in (' istr ')'; 也參考一下
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
想請問大大一各問題
我想寫段 再刪除這些序號之前 先INSERT INTO 我指定的TABLE 是否也可以用相同公式去算換行 [code delphi] Params.CreateParam(ftString ,'SN', ptInput); Params.CreateParam(ftString ,'STATUS', ptInput); Params.CreateParam(ftString ,'USER', ptInput); CommandText := 'INSERT INTO TABLE ' '(SN,STATUS,USER) ' 'VALUES (:SN :STATUS :USER) '; Params.ParamByName('SN').AsString := (''' StringReplace(Trim(Memo1.text),#13#10,''',''',[Rfreplaceall]) '''); <---可以這樣改嘛 Params.ParamByName('STATUS').AsString := ''1'' ; Params.ParamByName('USER').AsString := StrPas(StrUserName); [/code]
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
我看是不行, 因為 = 就只判斷一次, 而且值要相等.
建議 CommandText := 'INSERT INTO TABLE2 ' ' select SN, ''1'', ''' StrPas(StrUserName) '''' ' from table' ' where sn in (' // <-----原本 delete 句的 where 子句 一次一個 sql 執行, 不必一筆一筆處理. 或者, 您的寫法可以寫在 trigger 裏 當要 delete 一筆前先存到另外一個 table 裏. 寫在 .pas 不行. 不然就要用一個 loop for ii := 0 to memo1.count-1 do begin // 您的 insert 命令, 但是 sn 要改成 Params.ParamByName('SN').AsString := memo1.lines[ii]; end; ===================引 用 lovemari 文 章=================== 想請問大大一各問題 我想寫段 再刪除這些序號之前 先INSERT INTO 我指定的TABLE 是否也可以用相同公式去算換行 [code delphi] Params.CreateParam(ftString ,'SN', ptInput); Params.CreateParam(ftString ,'STATUS', ptInput); Params.CreateParam(ftString ,'USER', ptInput); CommandText := 'INSERT INTO TABLE ' '(SN,STATUS,USER) ' 'VALUES (:SN :STATUS :USER) '; Params.ParamByName('SN').AsString := (''' StringReplace(Trim(Memo1.text),#13#10,''',''',[Rfreplaceall]) '''); <---可以這樣改嘛 Params.ParamByName('STATUS').AsString := ''1'' ; Params.ParamByName('USER').AsString := StrPas(StrUserName); [/code]
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |