[VB] mysql을 odbc쓰지 않고 다이렉트로 연결하는 방법
컨텐츠 정보
- 35,526 조회
- 23 추천
- 목록
본문
ODBC를 설정 하지않고 MySQL 데이터베이스의 사용은 가능합니다. 우선 자료실에 가셔서 12116 번 게시물의 DLL을 다운 받으시고
레지스트리에 등록 하시기 바람니다...
* 참고로 본 DLL은 http://www.mysql.com/downloads/os-win32.html 의 MyOLEDB3.exe 파일입니다.
단, 원본의 경우 한글 사용에 문제를 발생합니다.. 수정본이 자료실에 있는 DLL이고요..
Public cnCon As Connection
Private Sub ConnectMySQL()
'MySQL 서버와의 연결
On Error GoTo ErrorHandler
Set cnCon = New Connection
With cnCon
.ConnectionTimeout = 30
'OLE DB를 이용한 연결
.ConnectionString = "Provider=MySqlProv.3.0;" & _
"Data Source=데이터베이스명;" & _
"Integrated Security=;" & _
"Password=비밀번호;" & _
"User ID=아이디;" & _
"Location=아이피주소;" & _
"Extended Properties="
' 'OLE DB를 이용한 ODBC 드라이버 연결
' .ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
' "SERVER=아이피주소;" & _
' "DATABASE=데이터베이스명;" & _
' "UID=아이디;PWD=비번; OPTION=3"
.Open
End With
Set ConnectMySQL = cnCon
Exit Sub
ErrorHandler:
MsgBox Err.Source + " ERROR " + CStr(Err.Number) + " - " + Err.Description
End Sub
Public Function getRecordsetFromMySQL(ByVal p_strSQL As String) As Recordset
'레코드셋을 리턴하는 질의
Dim pRS As Recordset
Set pRS = New Recordset
pRS.Open p_strSQL, cnCon, adOpenForwardOnly, adLockReadOnly 'CursorType, LockType은 자신의 프로그램에 알맞게 설정...
Set getRecordsetFromMySQL = pRS
End Function
---------------------------------------------------------------
추가 설명
알아보시기 쉽게 단계적으로 설명 드리겟습니다
1. VB 프로젝트를 표준EXE로 연다.
2. 메인 메뉴의 프로젝트 -> 참조 -> Microsoft ActiveX Data Objects 2.6 Library를 체크박스 체크하시고 확인.
없으시면 IE를 업데이트 하세요. (익스플로어 -> 도구 -> Windows Update) 또 다른 방법은 www.atfile.com에 가셔서
직접 MDAC를 다운받으셔서 설치 하셔도 되구요.
3. 모듈을 하나 추가 한다. (프로젝트 -> 모듈추가 -> 확인)
4. 모둘에 Public cnCon As Connection 를 복사한다.(참고로 Connection은 ADO에서 제공하는 개채입니다.)
5. ConnectMySQL과 getRecordsetFromMySQL 프로시져을 모듈에 복사한다.(다음은 모듈의 내용입니다)
Option Explicit
Public cnCon As Connection
Public Sub ConnectMySQL()
'MySQL 서버와의 연결
On Error GoTo ErrorHandler
Set cnCon = New Connection
With cnCon
.ConnectionTimeout = 30
'OLE DB를 이용한 연결
.ConnectionString = "Provider=MySqlProv.3.0;" & _
"Data Source=데이터베이스명;" & _
"Integrated Security=;" & _
"Password=비밀번호;" & _
"User ID=아이디;" & _
"Location=아이피주소;" & _
"Extended Properties="
' 'OLE DB를 이용한 ODBC 드라이버 연결
' .ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
' "SERVER=아이피주소;" & _
' "DATABASE=데이터베이스명;" & _
' "UID=아이디;PWD=비번; OPTION=3"
.Open
End With
Exit Sub
ErrorHandler:
MsgBox Err.Source + " ERROR " + CStr(Err.Number) + " - " + Err.Description
End Sub
Public Function getRecordsetFromMySQL(ByVal p_strSQL As String) As Recordset
'레코드셋을 리턴하는 질의
Dim pRS As Recordset
Set pRS = New Recordset
pRS.Open p_strSQL, cnCon, adOpenForwardOnly, adLockReadOnly 'CursorType, LockType은 자신의 프로그램에 알맞게 설정...
Set getRecordsetFromMySQL = pRS
End Function
6. Form1에 Button을 하나 올려놓고 Click 이벤트에 다음과 같이 정의한다
Private Sub Command1_Click()
ConnectMySQL
End Sub
8. Dll 등록
8.1 우선 자료실에서 받으신 dll을 시스템 폴더에 복사한다. - 시스템 폴더(C:\\Windows/system 또는 C:\\WINNT/system32)
8.2 시작 -> 실행 -> regsvr32.exe MyProv.dll -> 확인
7. 실행 해본다.
참고로 위의 5번의 ConnectMySQL 프로시져에서 2가지 방법으로 설명을 드렸는데.. 어느 방법을 사용하셔도
무방합니다. 단, 첫번재 방법은 생성된 템터러리 테이블의 활용에..제약이 있는거 같더군요. 2번째 방법은
템퍼러리 테이블 생성과 활용에 문제가 없고요.
[이 게시물은 nuno님에 의해 2007-01-24 00:45:05 Etc.에서 이동 됨]
레지스트리에 등록 하시기 바람니다...
* 참고로 본 DLL은 http://www.mysql.com/downloads/os-win32.html 의 MyOLEDB3.exe 파일입니다.
단, 원본의 경우 한글 사용에 문제를 발생합니다.. 수정본이 자료실에 있는 DLL이고요..
Public cnCon As Connection
Private Sub ConnectMySQL()
'MySQL 서버와의 연결
On Error GoTo ErrorHandler
Set cnCon = New Connection
With cnCon
.ConnectionTimeout = 30
'OLE DB를 이용한 연결
.ConnectionString = "Provider=MySqlProv.3.0;" & _
"Data Source=데이터베이스명;" & _
"Integrated Security=;" & _
"Password=비밀번호;" & _
"User ID=아이디;" & _
"Location=아이피주소;" & _
"Extended Properties="
' 'OLE DB를 이용한 ODBC 드라이버 연결
' .ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
' "SERVER=아이피주소;" & _
' "DATABASE=데이터베이스명;" & _
' "UID=아이디;PWD=비번; OPTION=3"
.Open
End With
Set ConnectMySQL = cnCon
Exit Sub
ErrorHandler:
MsgBox Err.Source + " ERROR " + CStr(Err.Number) + " - " + Err.Description
End Sub
Public Function getRecordsetFromMySQL(ByVal p_strSQL As String) As Recordset
'레코드셋을 리턴하는 질의
Dim pRS As Recordset
Set pRS = New Recordset
pRS.Open p_strSQL, cnCon, adOpenForwardOnly, adLockReadOnly 'CursorType, LockType은 자신의 프로그램에 알맞게 설정...
Set getRecordsetFromMySQL = pRS
End Function
---------------------------------------------------------------
추가 설명
알아보시기 쉽게 단계적으로 설명 드리겟습니다
1. VB 프로젝트를 표준EXE로 연다.
2. 메인 메뉴의 프로젝트 -> 참조 -> Microsoft ActiveX Data Objects 2.6 Library를 체크박스 체크하시고 확인.
없으시면 IE를 업데이트 하세요. (익스플로어 -> 도구 -> Windows Update) 또 다른 방법은 www.atfile.com에 가셔서
직접 MDAC를 다운받으셔서 설치 하셔도 되구요.
3. 모듈을 하나 추가 한다. (프로젝트 -> 모듈추가 -> 확인)
4. 모둘에 Public cnCon As Connection 를 복사한다.(참고로 Connection은 ADO에서 제공하는 개채입니다.)
5. ConnectMySQL과 getRecordsetFromMySQL 프로시져을 모듈에 복사한다.(다음은 모듈의 내용입니다)
Option Explicit
Public cnCon As Connection
Public Sub ConnectMySQL()
'MySQL 서버와의 연결
On Error GoTo ErrorHandler
Set cnCon = New Connection
With cnCon
.ConnectionTimeout = 30
'OLE DB를 이용한 연결
.ConnectionString = "Provider=MySqlProv.3.0;" & _
"Data Source=데이터베이스명;" & _
"Integrated Security=;" & _
"Password=비밀번호;" & _
"User ID=아이디;" & _
"Location=아이피주소;" & _
"Extended Properties="
' 'OLE DB를 이용한 ODBC 드라이버 연결
' .ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
' "SERVER=아이피주소;" & _
' "DATABASE=데이터베이스명;" & _
' "UID=아이디;PWD=비번; OPTION=3"
.Open
End With
Exit Sub
ErrorHandler:
MsgBox Err.Source + " ERROR " + CStr(Err.Number) + " - " + Err.Description
End Sub
Public Function getRecordsetFromMySQL(ByVal p_strSQL As String) As Recordset
'레코드셋을 리턴하는 질의
Dim pRS As Recordset
Set pRS = New Recordset
pRS.Open p_strSQL, cnCon, adOpenForwardOnly, adLockReadOnly 'CursorType, LockType은 자신의 프로그램에 알맞게 설정...
Set getRecordsetFromMySQL = pRS
End Function
6. Form1에 Button을 하나 올려놓고 Click 이벤트에 다음과 같이 정의한다
Private Sub Command1_Click()
ConnectMySQL
End Sub
8. Dll 등록
8.1 우선 자료실에서 받으신 dll을 시스템 폴더에 복사한다. - 시스템 폴더(C:\\Windows/system 또는 C:\\WINNT/system32)
8.2 시작 -> 실행 -> regsvr32.exe MyProv.dll -> 확인
7. 실행 해본다.
참고로 위의 5번의 ConnectMySQL 프로시져에서 2가지 방법으로 설명을 드렸는데.. 어느 방법을 사용하셔도
무방합니다. 단, 첫번재 방법은 생성된 템터러리 테이블의 활용에..제약이 있는거 같더군요. 2번째 방법은
템퍼러리 테이블 생성과 활용에 문제가 없고요.
[이 게시물은 nuno님에 의해 2007-01-24 00:45:05 Etc.에서 이동 됨]
관련자료
댓글 0
등록된 댓글이 없습니다.