![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 阿弟 ![]()
![]() |
欄位名稱 P_NAME 資料類型 文字 索引 是(可重複) Unicode編碼 是 ------------------------------------------------------------ ASP網頁編碼為 ~~ <% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ...... 該欄位中只要存入日文的【バ】這個特定字~~ 假設存入的字串是【ABCバ】好了...當SQL指令~ select * from PROFILE where P_NAME like '%AB%' 就會出現錯誤訊息~ Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07' [Microsoft][ODBC Microsoft Access Driver] 記憶體不足 . . 煩請個位先進們 不吝指教 ~~
搜尋相關Tags的文章:
[ 記憶體不足 ] ,
本篇文章發表於2014-04-11 22:33 |
1樓
不錯的參考
風燭殘年 ![]() ![]() |
試著使用 parameter 應該就可以避免該問題.
sql = "select * from PROFILE where P_NAME like '%' + ? + '%'" set cmd = server.createobject("ADODB.Command") cmd.activeconnection = yourConnection cmd.commandText = SQL cmd.Parameters.Append( cmd.CreateParameter("P_NAME", adVarWChar, , 512, "ABCバ") ) 參考網頁 ADO CreateParameter Method Append and CreateParameter Methods Example
本篇文章回覆於2014-04-11 23:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
阿弟 ![]() |
糟糕~ 弟子愚昧、有看沒有懂ㄋㄟ~~
我的網頁並不是ASP.NET...適用嗎? --------------------------------------------------------- 真正的Code是這樣的~ . strDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("../database/standard.mdb") Set objDBConn = Server.CreateObject("ADODB.Connection") objDBConn.Open strDSN strSQL = "select * from PROFILE where P_NAME like '%" & Request.QueryString("SP_CODE") & "%' order by ID" Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, objDBConn, adOpenStatic, adLockReadOnly, adCmdText . 請教要如何套用到您所謂的 parameter 呢? . 有其它比較簡單的方法嗎? 煩請個位先進們 再次不吝指教 ~~
本篇文章回覆於2014-04-11 23:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
不錯的參考
風燭殘年 ![]() ![]() |
strDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("../database/standard.mdb")
Set objDBConn = Server.CreateObject("ADODB.Connection") objDBConn.Open strDSN set objCMD = server.createobject("ADODB.Command") objCMD.activeconnection = objDBConn objCMD.commandText = "select * from PROFILE where P_NAME like '%' + ? + '%' order by ID" objCMD.CommandType = adCmdText objCMD.parameters.append(objCMD.createParameter("P_NAME", adVarWChar, adParamInput, 255, Request.QueryString("SP_CODE"))) Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open objCMD 或 objRS = objCMD.execute() 試試這樣吧...很久沒寫了有點忘了.. ASP.NET 的話就不會再用 Recordset 了, 會使用 DataReader 讀取或是轉入 DataSet/DataTable 再來處理.
本篇文章回覆於2014-04-12 02:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
不錯的參考
香帥 ![]() |
可用以下方式替代解決
測試網址在 http://ap.a168a.com/blueshop/ado/select2c.asp 執行結果如下圖 ![]()
本篇文章回覆於2014-04-12 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
阿弟 ![]() |
整個運用及測試網址在這兒 ...
http://www.blowmoldingmachine.com.tw/Test/ProReport.asp 整個檔案在 ... http://www.blowmoldingmachine.com.tw/Test/Test.rar --------------------------------------------------------------------------- 行之有年的功能~ 只要欄位中有個日文的【バ】這個特定字~ 就掛了~ select * from PROFILE where P_NAME like '%B%' 再也平凡不過的 select ... 怎麼會遇到特定字就瓦解了呢?? 煩請個位先進們 再次不吝指教 ~~
本篇文章回覆於2014-04-12 23:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
最有價值解答
香帥 ![]() |
請參考小鋪早期的討論去試看看各種解法
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20050520162923OLB
本篇文章回覆於2014-04-13 01:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |