• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 檢查有日文片假名的新聞

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    ==26個日文片假名導致 Access 搜索(80040e14/內存溢出)的解決辦法== ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ 當字段內包含了這26個日文字符任意一個多個時,就會導致在執行 SQL 語句中包含了 [字段] like '%aaaaa%'

    ==26個日文片假名導致clearcase/" target="_blank" >cc>Access搜索(80040e14/內存溢出)的解決辦法==

    ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ
    當字段內包含了這26個日文字符任意一個多個時,就會導致在執行SQL語句中包含了
    [字段] like '%aaaaa%' 或 inStr(1,[字段],'aaaaa',1)>0
    這樣的查詢時,毫無道理的出現了
    "Microsoft JET Database Engine 錯誤 '80040e14' 內存溢出"的錯誤
    其他Jet SQL函數命令未作測試,大概與字符搜索定位匹配相關的都可能出錯

    搜索相關資料得知被微軟工程師證實是Access的bug,可能是語法關系都是微軟的東東
    VBs中 執行inStr(1,日文平假名變量,"aaaaa",1)依然要出現錯誤
    Microsoft VBScript 運行時錯誤 錯誤 '800a0005' 無效的過程調用或參數: 'instr'


    沒有搜索,因這幾個字符出現Access的論壇網站搜索無法進行,何等痛苦
    昨天一朋友大叫怪事,他的音樂數據庫無法搜索了,只有30000條記錄時是好的
    毫無疑問,日文片假名是禍根,花幾分鐘把有包含上面的日文替換成"?"搜索順利恢復
    找來論壇程序用戶群最大的動網dvBBS AC版本 7.0SP2 版測試,同樣有這個日文發帖后 導致無法搜索并且運行時出錯的問題
    線上去搜索 '80040e14' 內存溢出" 的錯誤 多的是!

    一簡單有效的解決辦法:
    對這26個字符進行編碼和解碼,可能效率感覺不理想,測試下來問題不大,速度影響不是太大

    編碼:

    Function Jencode(byVal iStr)
    if isnull(iStr) or isEmpty(iStr) then
    Jencode=""
    Exit function
    end if
    dim F,i,E
    ' F=array("ゴ","ガ","ギ","グ","ゲ","ザ","ジ","ズ","ヅ","デ",_
    ' "ド","ポ","ベ","プ","ビ","パ","ヴ","ボ","ペ","ブ","ピ","バ",_
    ' "ヂ","ダ","ゾ","ゼ")
    E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
    F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
    chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
    chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
    chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
    chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
    chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
    chr(-23106),chr(-23108))
    Jencode=iStr
    for i=0 to 25
    Jencode=replace(Jencode,F(i),E(i))
    next
    End Function

    解碼:

    Function Juncode(byVal iStr)
    if isnull(iStr) or isEmpty(iStr) then
    Juncode=""
    Exit function
    end if
    dim F,i,E
    ' F=array("ゴ","ガ","ギ","グ","ゲ","ザ","ジ","ズ","ヅ","デ",_
    ' "ド","ポ","ベ","プ","ビ","パ","ヴ","ボ","ペ","ブ","ピ","バ",_
    ' "ヂ","ダ","ゾ","ゼ")
    E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
    F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
    chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
    chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
    chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
    chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
    chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
    chr(-23106),chr(-23108))
    Juncode=iStr
    for i=0 to 25
    Juncode=replace(Juncode,E(i),F(i))'□
    next
    End Function

    注意,如果直接使用字符不方便(Windows還沒裝日文支持),注釋掉的部分提供有 chr(-23804) ..這樣的定義

    這樣
    1.
    表單輸入保存時,使用Jencode()將這26個字符先編碼再保存(為什么是這26個字符,經過全部測試87個平假名89個片假名最終認定的)

    本新聞共4頁,當前在第1頁  1  2  3  4  

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>