MS Access db 를 프로그램 실행시 자동으로 odbc에 등록하여 사용하기입니다.
윈도우의 데이터원본(ODBC)에 별도설정 없이 프로그램 실행시 ODBC에 자동으로 등록됩니다.
//Global External Functions
//윈도우디렉토리 위치 확인용 함수
FUNCTION ulong GetWindowsDirectoryA(ref string wdir, long buf) LIBRARY "kernel32.dll"
//스크립트
string ls_job_folder,ls_dbname,ls_dbuid,ls_dbpwd
ls_job_folder = "C:\pbex\" // DB 파일이 있는 폴더
ls_dbname = "sample" // DB명 , 확장자 mdb는 빼고
ls_dbuid = "admin" // DB 사용 ID
ls_dbpwd = "1234" // DB 사용 password
//OS 에 따른 Windows Directory를 읽어오기 위함
string ls_windir,ls_odbcset=''
ulong l_buf
l_buf = 144
ls_windir = space(144)
GetWindowsDirectoryA(ls_windir, l_buf)
ls_windir = Trim(ls_windir)
//먼저 odbc 등록에 필요한 odbcjt32.dll 이 시스템 폴더에 존재하는지 여부를 확인해야합니다.
IF FileExists(ls_windir + '\system32' + '\odbcjt32.dll') = False then
messagebox('에러','ODBC 자동설정에러...')
Return
else
Registryget("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",ls_dbname,RegString!,ls_odbcset )
if trim(ls_odbcset) = '' then
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",ls_dbname,"Microsoft Access Driver (*.mdb)" )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"DBQ",ls_job_folder + ls_dbname + ".mdb")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"Driver",ls_windir + '\system32' + "\odbcjt32.dll")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"UID",ls_dbuid)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"PWD",ls_dbpwd)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"DriverId","")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"FIL","MS Access;")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"SafeTransactions","0")
end if
end if
//DataBase Connect ------ Script 코딩 ------
윈도우의 데이터원본(ODBC)에 별도설정 없이 프로그램 실행시 ODBC에 자동으로 등록됩니다.
//Global External Functions
//윈도우디렉토리 위치 확인용 함수
FUNCTION ulong GetWindowsDirectoryA(ref string wdir, long buf) LIBRARY "kernel32.dll"
//스크립트
string ls_job_folder,ls_dbname,ls_dbuid,ls_dbpwd
ls_job_folder = "C:\pbex\" // DB 파일이 있는 폴더
ls_dbname = "sample" // DB명 , 확장자 mdb는 빼고
ls_dbuid = "admin" // DB 사용 ID
ls_dbpwd = "1234" // DB 사용 password
//OS 에 따른 Windows Directory를 읽어오기 위함
string ls_windir,ls_odbcset=''
ulong l_buf
l_buf = 144
ls_windir = space(144)
GetWindowsDirectoryA(ls_windir, l_buf)
ls_windir = Trim(ls_windir)
//먼저 odbc 등록에 필요한 odbcjt32.dll 이 시스템 폴더에 존재하는지 여부를 확인해야합니다.
IF FileExists(ls_windir + '\system32' + '\odbcjt32.dll') = False then
messagebox('에러','ODBC 자동설정에러...')
Return
else
Registryget("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",ls_dbname,RegString!,ls_odbcset )
if trim(ls_odbcset) = '' then
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",ls_dbname,"Microsoft Access Driver (*.mdb)" )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"DBQ",ls_job_folder + ls_dbname + ".mdb")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"Driver",ls_windir + '\system32' + "\odbcjt32.dll")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"UID",ls_dbuid)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"PWD",ls_dbpwd)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"DriverId","")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"FIL","MS Access;")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_dbname,"SafeTransactions","0")
end if
end if
//DataBase Connect ------ Script 코딩 ------
'컴퓨터 > 파워빌더' 카테고리의 다른 글
파워빌더 - 파이프라인 사용하기 (1) | 2009.08.21 |
---|---|
파워빌더 - 투명윈도우 (0) | 2009.08.19 |
파워빌더 - 주민번호체크 (0) | 2009.08.19 |
파워빌더 - 사업자번호체크 (0) | 2009.08.19 |
파워빌더 - 팝업메뉴 만들기 (2) | 2009.08.18 |