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

insert 時有特殊字元,要如何處理?

尚未結案
woei
一般會員


發表:6
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-22 19:27:20 IP:61.30.xxx.xxx 未訂閱
請問各位高手: 使用Query元件存取MySQL時,若有特殊字元,如'"\/等, 要如何處理呢? 我用 Content='"tes"\t ''test'; content:=StringReplace(content,'''','''''',fReplaceStr); content:=StringReplace(content,'"','\"',fReplaceStr); content:=StringReplace(content,'\','\\',fReplaceStr); sql:='insert into xxxTB set Content=''' content ''''; Query1.SQL.Add(sql); 但會error,要如何處理呢
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-23 21:01:08 IP:192.168.xxx.xxx 未訂閱
引言: 請問各位高手: 使用Query元件存取MySQL時,若有特殊字元,如'"\/等, 要如何處理呢? 我用 Content='"tes"\t ''test'; content:=StringReplace(content,'''','''''',fReplaceStr); content:=StringReplace(content,'"','\"',fReplaceStr); content:=StringReplace(content,'\','\\',fReplaceStr); sql:='insert into xxxTB set Content=''' content ''''; Query1.SQL.Add(sql); 但會error,要如何處理呢
沒人回您,我想是不是該用: content:=StringReplace(content,'''','''''',rfReplaceAll); content:=StringReplace(content,'"','\"',rfReplaceAll); content:=StringReplace(content,'\','\\',rfReplaceAll); 有試過嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
woei
一般會員


發表:6
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-26 11:08:23 IP:61.30.xxx.xxx 未訂閱
抱歉,沒有列出全部的碼,我的fReplaceStr已經有rfReplaceAll了 var fReplaceStr:TReplaceFlags; begin ........... fReplaceStr:=[rfReplaceAll,rfIgnoreCase]; Content='"tes"\t ''test'; content:=StringReplace(content,'''','''''',fReplaceStr); content:=StringReplace(content,'"','\"',fReplaceStr); content:=StringReplace(content,'\','\\',fReplaceStr); sql:='insert into xxxTB set Content=''' content ''''; Query1.SQL.Add(sql); 應該與您所說的方式一樣吧 可是仍然不行,可是我直接進到mysql中下sql就可以, 我覺得是被delphi擋下來了,不知道是否有什麼解決的方式呢,謝謝
天外來客
初階會員


發表:22
回覆:199
積分:44
註冊:2001-11-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-26 11:15:49 IP:210.68.xxx.xxx 未訂閱
試試這樣寫看看.. sql:='insert into xxxTB set Content=' '''' content ''''; 變數前後各加四個'試試
woei
一般會員


發表:6
回覆:8
積分:2
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-08-26 11:31:08 IP:61.30.xxx.xxx 未訂閱
謝謝您們的答覆 不過,還是不行呢
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-08-26 11:39:45 IP:61.221.xxx.xxx 未訂閱
引言: 謝謝您們的答覆 不過,還是不行呢
我再幫您試過,用Delphi 5 MY-SQL 3.23 MY-ODBC 可以過喔! 程式如下: procedure TForm1.Button1Click(Sender: TObject); var fReplaceStr:TReplaceFlags; Content,sql:string; begin fReplaceStr:=[rfReplaceAll,rfIgnoreCase]; Content:='"tes"\t ''test'; content:=StringReplace(content,'''','''''',fReplaceStr); content:=StringReplace(content,'"','\"',fReplaceStr); content:=StringReplace(content,'\','\\',fReplaceStr); sql:='insert into xxxTB set Content=''' content ''''; Query1.close; Query1.sql.clear; Query1.SQL.Add(sql); Query1.execsql; end; ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-08-26 19:30:36 IP:192.72.xxx.xxx 未訂閱
我通常都用 sql='SELECT XX,YY FROM ZZ WHERE TA=' AnsiQuotedStr(param); 這類型的寫法, 1.盡量全部大寫 2.用 AnsiQuotedStr 避免中文"許蓋"問題 3.MySQL 要設定懂得中文
系統時間:2024-03-28 19:46:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!