Q&A

  • mysql문젠데요
안녕하세요..
질문있습니당..^^
프로그램이 비주얼베이직이지만...혹시나 해서...
고수님들의 조언좀 부탁드립니당...
아시는 분 좀 갈쳐주세요..^^;

인자 프로그램을 다 만들어서.
셋업파일을 만들었거든요.
근데.
디비는 mysql 를 이용한
서버/클라이언트 프로그램인데.
프로그램은..비주얼베이직이고요..
문제는......
odbc랑 디비 문젠데요.
자동으로 설치가 되지 않고.
사용자가 직접 잡아죠야하는 문제가 있잖아요.
그것을 설치하면서.
mdb나 mssql처럼 설치시에.
자동으로 해주는 방법은 업나요??

mysql 디비를 사용하니깐......
도스창을 열어서.
직접 디비셋팅을 해줘야하고.그래고 odbc도 다시 잡아줘야하는데.
어떠케 해야할까요?
이런 한가지 방법밖에 없을까요?
궁금합니당..^^

답변부탁드립니당...
1  COMMENTS
  • Profile
    이상오 2002.05.06 10:52
    ODBC를 자동으로 설정하는 건데.. 이렇게 하심 될거예요


    Private Const REG_SZ = 1 '문자열 자료
    Private Const REG_DWORD = 4 'DWORD형 자료
    Private Const REGDSN = &H80000002 '&H80000001이면 User DSN

    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _
    "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
    phkResult As Long) As Long '새로운 키생성 API

    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA"
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal
    dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    '자료 입력 API

    Private Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long '키 닫기
    'ODBC 자동으로 설정에 쓰는것들 끝
    '=================================================================================
    ===============

    '=================================================================================
    ===============
    'ODBC자동설정 함수
    Public Function CreateODBC()
    Dim DataSourceName As String '만약 변수를 전부 같이 선언하면 처음 하나만
    String이고 나머지는 variant형이 된다.
    Dim DBPath As String '그러므로 따로 따로 선언해야 원하는 결과를 얻
    을 수 있다.
    Dim DriverName As String
    Dim Fi As String
    Dim UserID As String
    Dim DriverFile As String
    Dim UserSync As String
    Dim LMP As String
    Dim Safe As Long
    Dim Max As Long
    Dim Page As Long
    Dim Th As Long
    Dim resultValue As Long
    Dim hKeyHandle As Long
    Dim DI As Long


    '==================== 이 밑에 변수값을 대입하는 부분만 고쳐 사용하면 됨======

    DataSourceName = "ODBC" 'Databasesource이름
    DBPath = App.Path + "DB.mdb" '데이터베이스 파일 경로1
    DI = &H19 '이것은 데이터베이스 ID 꼭 16진수 19(10진수25) 로 해야함
    Fi = "MS Access;" '이건 필터같은데...
    DriverFile = "C:WINDOWSSYSTEModbcjt32.dll" '드라이버 파일
    DriverName = "Microsoft Access Driver (*.mdb)" '드라이버 이름
    UserSync = "Yes" '
    LMP = ""
    Safe = &H0
    Max = &H800 '버퍼 용량 (임의로 고쳐 쓸수 있음)
    Page = &H5 '페이지 수 (이것 역시 임의로 고침)
    Th = &H3 '쓰레드 수 (이것 역시 임의로 고침)

    '=====================여기 까지만 고쳐쓰면 됨================================

    resultValue = RegCreateKey(REGDSN, "SOFTWAREODBCODBC.INI" & _
    DataSourceName, hKeyHandle) '시스템DSN 키 생성

    resultValue = RegSetValueEx(hKeyHandle, "DBQ", 0&, REG_SZ, ByVal DBPath, Len
    (DBPath))

    resultValue = RegSetValueEx(hKeyHandle, "DriverId", 0&, REG_DWORD, DI, Len(DI))
    resultValue = RegSetValueEx(hKeyHandle, "FIL", 0&, REG_SZ, ByVal Fi, Len(Fi))
    resultValue = RegSetValueEx(hKeyHandle, "Driver", 0&, REG_SZ, ByVal DriverFile,
    Len(DriverFile))
    resultValue = RegSetValueEx(hKeyHandle, "UID", 0&, REG_SZ, ByVal UserID, Len
    (UserID))
    resultValue = RegSetValueEx(hKeyHandle, "SafeTransactions", 0&, REG_DWORD, Safe,
    Len(Safe))

    resultValue = RegCloseKey(hKeyHandle)

    resultValue = RegCreateKey(REGDSN, "SOFTWAREODBCODBC.INI" & _
    DataSourceName & "Engines", hKeyHandle)

    resultValue = RegCloseKey(hKeyHandle)


    resultValue = RegCreateKey(REGDSN, "SOFTWAREODBCODBC.INI" & _
    DataSourceName & "EnginesJet", hKeyHandle)

    resultValue = RegSetValueEx(hKeyHandle, "ImplicitCommitSync", 0&, REG_SZ, ByVal
    LMP, Len(LMP))
    resultValue = RegSetValueEx(hKeyHandle, "MaxBufferSize", 0&, REG_DWORD, Max, Len
    (Max))
    resultValue = RegSetValueEx(hKeyHandle, "PageTimeout", 0&, REG_DWORD, Page, Len
    (Page))
    resultValue = RegSetValueEx(hKeyHandle, "Threads", 0&, REG_DWORD, Th, Len(Th))
    resultValue = RegSetValueEx(hKeyHandle, "UserCommitSync", 0&, REG_SZ, ByVal
    UserSync, Len(UserSync))

    resultValue = RegCloseKey(hKeyHandle)

    resultValue = RegCreateKey(REGDSN, _
    "SOFTWAREODBCODBC.INIODBC Data Sources", hKeyHandle)

    resultValue = RegSetValueEx(hKeyHandle, DataSourceName, 0&, REG_SZ, _
    ByVal DriverName, Len(DriverName))

    resultValue = RegCloseKey(hKeyHandle)
    End Function
    'ODBC 자동설정함수 끝
    '=================================================================================