oracle instant client

[PRG] V/B

2007/04/04 13:00

instant client를 사용하면 무거운 Oracle Client를 설치할 필요없이 사용자에게 프로그램을 배포할 수 있으며,tns name 이랑 ODBC또한 설정할 필요가 없습니다.

http://www.oracle.com/technology/tech/oci/instantclient/index.html

http://download.oracle.com/otn/nt/instantclient/instantclient-basic-win32-10.2.0.3-20061115.zip

http://download.oracle.com/otn/nt/instantclient/instantclient-odbc-win32-10.2.0.3-20061115.zip

참고로 SQLPLUS 패키지를 받으셨다면

c: sqlplus id/password@xxx.xxx.xxx:1521/servicename

의 형태로 test 할 수 있습니다. 물론 그전에 path 및 tns_admin등이 시스템 환경변수에 setting

되어 있어야 합니다.

다음의 예제는 oracle instant client 10.2버전을 기초로 하여 작성되어있으며, ado를 사용하기 위해 다운로드 받을 파일에서 odbc_install.exe 를 실행시켜줘야 합니다.

ODBC에 연결하기전에 반드시 환경변수에 현재 경로와 Characterset을 지정해야 합니다.

American_America. 가 아닌 KOREAN_KOREA.KO16KSC5601도 되는지는 모르겠습니다.

'==================================

'= 모듈부분

'==================================

Public Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long

Public Sub AdoConnect(ByVal UserName As String, ByVal Password As String, ByVal strServer As String)
On Error GoTo ORA8
Set adoCn = New ADODB.Connection
Set adoRs = New ADODB.Recordset
Set cmdChane = New ADODB.Command
adoCn.ConnectionString = "Provider=MSDASQL.1;Password=PWDXXXX;Persist Security Info=True;User ID=USERXXXX;Extended Properties= ""Driver={Oracle in instantclient10_2};Dbq=XXX.XXX.XXX.XXX:1521/SERVICENAME"""
adoCn.Mode = adModeReadWrite
adoCn.CursorLocation = adUseClient
adoCn.ConnectionTimeout = 10
Call adoCn.Open
Exit Sub
ORA8:
adoCn.ConnectionString = "Provider=MSDAORA.1;Password=" & Password & ";User ID=" & UserName & ";Data Source=" & strServer & ";Persist Security Info=True"
Call adoCn.Open
End Sub

Public Function RdoOpen(Rs As ADODB.Recordset, ByVal strSql As String) As Long

Set cmdChane.ActiveConnection = adoCn
cmdChane.CommandText = strSql
Set Rs = New ADODB.Recordset
Call Rs.Open(strSql, adoCn, adOpenKeyset, adLockOptimistic)
RdoOpen = Rs.RecordCount

End Function


Public Function setEnviron()
Dim Path As String
Call SetEnvironmentVariable("NLS_LANG", "American_America.KO16MSWIN949") '//오라클 INSTANT CLIENT의 Character Set
Call SetEnvironmentVariable("TNS_ADMIN", App.Path) '// ORACLE 기본 폴더를 지정하는 환경변수값
If InStr(1, Environ$("path"), App.Path, vbTextCompare) < 1 Then
Path = Environ$("path") & ";" & App.Path
Call SetEnvironmentVariable("PATH", Path) '//오라클 INSTANT CLIENT의 Character Set
End If

End Function

+ Recent posts