发表于: 2004.12.30 21:12
分类: Oracle开发技巧
出处: http://hphubei.itpub.net/post/2868/12346
---------------------------------------------------------------
Dim OracleConn As ADODB.Connection
Dim oraCommand As ADODB.Command
Dim OraSession As OracleInProcServer.OraSessionClass
Dim oradatabase As OracleInProcServer.oradatabase
Dim OraDynaset As OracleInProcServer.OraDynaset
Dim strErrorDescription As String
Set oradatabase = OraSession.OpenDatabase(strServer, strUserName & "/" & strPwd, CInt(0))
Set OracleConn = New ADODB.Connection
Set oraCommand = New ADODB.Command
OracleConn.CursorLocation = 3
OracleConn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=APPS;PLSQLRSet=1;Persist Security Info=True;User ID=APPS;Data Source=DEV2"
OracleConn.Open
oraCommand.ActiveConnection = OracleConn
oraCommand.CommandType = &H1
oraCommand.CommandText = strSql
Set GetRecordSet = oraCommand.Execute()
Set OracleConn = Nothing
Set oraCommand = Nothing
End Function
strCon = "Provider=MSDAORA.1;User ID=apps;Data Source=dev2;Persist Security Info=False;Password=apps"
Adodc1.RecordSource = "select SHIP_TO_CITY AS TEST,XXBG_CONVERT_CODESET_FUN(SHIP_TO_CITY,'ZHS','O') AS SHIP_TO_CITY from XXC0OM_SHIP_HEADER_V where ORDER_NUMBER='1003000024'"
Adodc1.Refresh
Adodc1.Recordset.Fields("test")得到的是汉字 苏州 的UTF-8编码"鑻忓窞"
Adodc1.Recordset.Fields("SHIP_TO_CITY")得到的是汉字 苏州
《三》在ASP里面的测试
set conn=server.createobject("ADODB.connection")
conn.open "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=APPS;Password=APPS;Data Source=DEV2"
strSql="select SHIP_TO_CITY AS TEST,XXBG_CONVERT_CODESET_FUN(SHIP_TO_CITY,'ZHS','O') AS SHIP_TO_CITY "
strSql=strSql+ "from XXC0OM_SHIP_HEADER_V where ORDER_NUMBER='1003000024'"
set rs=conn.execute(strSql)
response.write rs("test")&"<br>"输出的是汉字 苏州
response.write rs("SHIP_TO_CITY")输出的是 ??
set conn=server.createobject("ADODB.connection")
conn.open "Provider=MSDAORA.1;User ID=apps;Data Source=dev2;Persist Security Info=False;Password=apps"
strSql="select SHIP_TO_CITY AS TEST,XXBG_CONVERT_CODESET_FUN(SHIP_TO_CITY,'ZHS','O') AS SHIP_TO_CITY "
strSql=strSql+ "from XXC0OM_SHIP_HEADER_V where ORDER_NUMBER='1003000024'"
set rs=conn.execute(strSql)
response.write rs("test")&"<br>"输出的是 鑻忓窞
response.write rs("SHIP_TO_CITY")输出的是 苏州
string strQuery="select SHIP_TO_CITY AS TEST,XXBG_CONVERT_CODESET_FUN(SHIP_TO_CITY,'ZHS','O') AS SHIP_TO_CITY from XXC0OM_SHIP_HEADER_V where ORDER_NUMBER='1003000024'";
OleDbConnection conn=new OleDbConnection(strConn);
conn.Open();
OleDbCommand OraComm=new OleDbCommand();
OraComm.CommandType=CommandType.Text;
OraComm.Connection=conn;
OraComm.CommandText=strQuery;
OleDbDataReader OracleReader=OraComm.ExecuteReader();
OracleReader.Read();
string strDate=OracleReader["SHIP_TO_CITY"].ToString().Trim();得到的是 苏州
string strTest=OracleReader["TEST"].ToString().Trim();得到的是 鑻忓窞
OracleReader.Close();
conn.Close();
oraConn.ConnectionString="Provider=OraOLEDB.Oracle.1;Data Source=DEV2;User Id=APPS;Password=APPS";
string strQuery="select SHIP_TO_CITY AS TEST,XXBG_CONVERT_CODESET_FUN(SHIP_TO_CITY,'ZHS','O') AS SHIP_TO_CITY from XXC0OM_SHIP_HEADER_V where ORDER_NUMBER='1003000024'";
OleDbCommand OraComm=new OleDbCommand();
OraComm.CommandType=CommandType.Text;
OraComm.Connection=oraConn;
OraComm.CommandText=strQuery;
OleDbDataReader OracleReader=OraComm.ExecuteReader();
OracleReader.Read();
string strTest=OracleReader["TEST"].ToString().Trim();
OracleReader.Close();
oraConn.Close();
string strQuery="select XXBG_CONVERT_CODESET_FUN(ITEM_DESC,'ZHS','O') AS ITEM_DESC from XXC0IN_EINV_TRX_LINE";
OracleConnection OCConn=new OracleConnection(strConn);
OCConn.Open();执行到这里就出现错误,错误信息是"无法在 DLL oci.dll 中找到名为 OCIEnvCreate 的入口点。"
OracleCommand OraComm=new OracleCommand();
OraComm.CommandType=CommandType.Text;
OraComm.Connection=OCConn;
OraComm.CommandText=strQuery;
OracleDataReader OracleReader=OraComm.ExecuteReader();
OracleReader.Read();
string strDate=OracleReader["SHIP_TO_CITY"].ToString().Trim();
string strTest=OracleReader["TEST"].ToString().Trim();
OracleReader.Close();
OCConn.Close();