Classic ADO / ODBC / Oracle 10g EZConnect의 연결 문자열 구문
다양한 VBA 프로젝트를 TNS가 아닌 ADO(2.8)를 사용하여 Oracle 10g 백엔드에 연결하려고 합니다. 다양한 시도 끝에 클린 설치를 위한 가장 간단한 일련의 단계는 다음과 같습니다.
- Oracle Instant 클라이언트 설정
- 함께 제공되는 ODBC 드라이버 설치
- (SQL Plus를 통해 EZCONNECT를 사용하여 연결 테스트)
- (윈도우즈 DSN을 생성하여 연결 테스트)
여기까지의 모든 것이 잘 작동합니다.문제는 ADO에 인스턴트 클라이언트 ODBC 드라이버를 사용하도록 지시하는 구문을 알 수 없다는 것입니다. 이 구문은 ODBC 드라이버 목록에 "내 테스트의 오라클"(따옴표 없음)로 표시됩니다.이 게시물이 시사하는 바와 같이 MSFT ODBC 드라이버를 EZConnect와 함께 사용하는 것은 인스턴트 클라이언트를 설정하기 전보다 더 잘 작동하지 않습니다(즉, 전혀 작동하지 않음).그러나 이 게시물은 정확한 방법을 언급하지 않고도 가능하다는 것을 암시하는 것 같습니다. connectionstrings.com 은 문자열의 데이터 소스 부분이 어떻게 생겼는지, 즉 SomeUser/SomePassword@만 알려줍니다.서버:포트 번호/인스턴스 이름
짧은 버전:인스턴트 클라이언트 ODBC 드라이버를 참조하는 고전적인 ADO 연결 문자열의 정확한 구문은 무엇입니까?
당신의 도움에 미리 감사드립니다.내가 SO와 함께 가는 데 바보같은 시간이 오래 걸렸어요...
user1206604'의 답변과 유사하게 ODBC Data Source Administrator를 사용하여 ODBC 연결을 설정하고 다음과 같이 연결합니다.
Dim conn As New adodb.Connection
Set conn = New adodb.Connection
connStr = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=yourUserID;Password=yourPassword;"
conn.Open connStr
Dim api As New adodb.Recordset
Set api = New adodb.Recordset
yourQueryString = "SELECT foo FROM bar"
api.Open yourQueryString, conn, adOpenDynamic, adLockReadOnly
'adjust above setting as needed
while not api.EOF
'do interesting stuff here
wend
'clean up resources
api.Close
Set api = Nothing
conn.Close
Set conn = Nothing
ODBC 데이터 소스 관리자는 시작 메뉴 > 프로그램 > Oracle - oraClient10g > 구성 및 마이그레이션 도구 > Microsoft ODBC 관리자에서 찾을 수 있으며 다음과 같습니다.
이 방법을 사용해 보고 값을 적절히 바꿉니다.
Set Connection = CreateObject("ADODB.Connection")
blnTest = Connection.Open("Driver={Oracle in instantclient};Dbq=127.0.0.1:1521/SERVICENAMEHERE", "USERNAME", "PASSWORD")
인스턴트 클라이언트에서 Oracle이 작동하지 않으면 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\를 확인합니다.ODBCINST.INI\ODBC Drivers 레지스트리 키를 통해 Oracle Instant Client에 대한 값을 확인할 수 있습니다(버전 번호가 추가될 수 있음).
그래도 안 되면요.자세한 내용을 댓글로 남겨주시면 제가 답변을 조정해드리겠습니다.
' Create a connection object.'
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
' Create a recordset object.'
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' Provide the connection string.'
Dim strConn As String
Dim str As String
'Use the SQL Server OLE DB Provider.'
strConn = "Driver=(Oracle in OraHome92);" & "Data Source=;Uid=;Pwd=;"
'Now open the connection.'
cn.Open strConn
With rs
' Assign the Connection object.'
ActiveConnection = cn
' Extract the required records.'
.Open "SELECT ", cn
End With
언급URL : https://stackoverflow.com/questions/3398272/connection-string-syntax-for-classic-ado-odbc-oracle-10g-ezconnect
'programing' 카테고리의 다른 글
Angularjs - 지시 파일을 분리하지만 동일한 모듈에 유지 (0) | 2023.10.20 |
---|---|
자바스크립트 스크롤To 메서드가 아무 것도 하지 않습니까? (0) | 2023.10.20 |
포크() 다음에 먼저 실행하는 사람은 부모입니까, 자식입니까? (0) | 2023.10.20 |
준비 상태 변경 시 XMLHttpRequest가 여러 번 호출됨 (0) | 2023.10.20 |
수표와 외국 열쇠의 차이점은 무엇입니까? (0) | 2023.10.20 |