AS/400中文自有 0E 0F 隱藏字元的問題,這對需要計算有中文字和ASCII字元混雜的字串長度來說,好像有一點小複雜,所以就來個投機的方法,就把所有ASCII的半形字元轉換為對應的全形文字,來避開 0E 0F所帶來計算實際字串長度所帶來的困擾。
function Half2Full() {
var i = 0;
vat aTmp = new Array();
var zStr1 = document.getElementById("字串來源ID").value;
var zStr2 = "";
for(i = 0; i < zStr1.length; i++) {
if(zStr1.charCodeAt(i) >=0 && zStr1.charCodeAt(i) <= 32) {
aTmp[i] = 0; //ascii 小於等於 32的字元,都先清為 null
} else if(zStr1.charCodeAt(i) >=33 && zStr1.charCodeAt(i) <= 126) {
aTmp[i] = zStr1.charCodeAt(i) + 65248; //ascii介於33~126之間的字元,加上65248準備轉為全型unicode
} else {
aTmp[i] = zStr1.charCodeAt(i);
}
zStr2 += String.fromCharCode(aTmp[i]); //轉為全型unicode
}
document.getElementById("字串來源ID").value = zStr2; //裝轉換結果回填到原來源字串位置
}
站內搜尋:Yahoo搜尋的結果,如果沒有給完整的網址,請在站內再搜尋一次!
2015-10-03
2013-04-03
如何使用ASP執行AS/400的RGP程式(有傳入參數值,並回傳參數值)
只要掌握幾個要點,要透過ASP來執行AS/400的RGP程式,並不是一件很難的事
使用IBMDA400所提供的ADODB(OLEDB)連線存取功能,以connection物件建立連線,再以command物件建立要傳入傳出的參數,執行command,即可透過ASP執行RPG程式。
使用IBMDA400所提供的ADODB(OLEDB)連線存取功能,以connection物件建立連線,再以command物件建立要傳入傳出的參數,執行command,即可透過ASP執行RPG程式。
<%
set conn=server.createobject("ADODB.connection")
ConnStr = "Provider=IBMDA400;Data Source=400主機網址;User Id=帳號;Password=密碼;"
conn.open ConnStr
set ccmd = server.CreateObject("ADODB.Command")
set ccmd.ActiveConnection = conn
ccmd.CommandType = adCmdText
'''必須包含{{}},這個RGPNAME共有三個參設
ccmd.CommandText = "{{call TSTLIB.RGPNAME(?,?,?)}}"
ccmd.NamedParameters = True
ccmd.Prepared = True
'''依序建立這三個參數
'''第一個參數以資料型態char(10),值=zPara1,傳入給RPG的PARA1接收。
set para = ccmd.CreateParameter("PARA1",adChar,adParamInput,10,zPara1)
ccmd.Parameters.Append para
set para = ccmd.CreateParameter("PARA2",adChar,adParamInput,10,zPara2)
ccmd.Parameters.Append para
'''第三個參數以資料型態char(10),接收給RPG的PARA3的回傳值。
set para = ccmd.CreateParameter("PARA3",adChar,adParamOutput,10,zPara3)
ccmd.Parameters.Append para
ccmd.Execute()
zPARA = ccmd.Parameters("PARA3").value
conn.close()
%>
訂閱:
文章 (Atom)