오브젝특로 만들어 봤습니다.
$PBExportHeader$nvo_mssql_to_odbc.sru
$PBExportComments$MS-SQL 사용을 ODBC 이용을 위한 설정
forward
global type nvo_mssql_to_odbc from nonvisualobject
end type
end forward
global type nvo_mssql_to_odbc from nonvisualobject autoinstantiate
end type
type variables
Public: // 모두 접근
Protected: // 상속 하위까지 접근
Private: // 현재의 오브젝트만 접근
end variables
forward prototypes
public function integer of_settransobject (ref transaction atrans, string as_dsn, string as_user, string as_pass)
public function integer of_mssqlconnectodbc (string as_server, string as_port, string as_dsn, string as_user, string as_database)
end prototypes
public function integer of_settransobject (ref transaction atrans, string as_dsn, string as_user, string as_pass);/*
ODBC 사용을 위한 transaction 설정
*/
//integer of_SetTransObject (ref transaction atrans, string : as_DSN, as_USER, as_PASS )
atrans.DBMS = "ODBC"
atrans.AutoCommit = False
atrans.DBParm = "ConnectString='DSN="+as_DSN+";"+ &
"UID="+as_USER+";"+ &
"PWD="+as_PASS+"'"+ &
",PBCatalogOwner='dbo'"
return 0
end function
public function integer of_mssqlconnectodbc (string as_server, string as_port, string as_dsn, string as_user, string as_database);/* MS-SQL 접속용 ODBC 정보 만들기
Real파빌Shin
string as_Server = ""
String as_Port = "1433"
String as_DSN = "" //ODBC에서 사용할 DSN 명
String as_user = ""
String as_password = ""
String as_database = ""
of_MSSQLconnectODBC(as_Server, as_Port, as_DSN, as_user, as_database)
*/
//integer gf_MSSQLConnectODBC(string as_Server, String as_Port, String as_DSN, String as_user, String as_database)
String ls_Key, ls_Val, ls_dat
integer rtn
/* Cliconfg 설정 값
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
as_DSN="DBMSSOCN,{IP or URL}{,PORT}"
*/
if IsNumber(as_Port) then
if Trim(as_Port) = '' or IsNull(as_Port) then as_Port = '1433'
else
as_Port = '1433'
end if
ls_Key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo"
ls_Val = as_DSN ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> "DBMSSOCN,"+as_Server+','+as_Port then
ls_dat = "DBMSSOCN,"+as_Server+','+as_Port
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
/* ODBC Data Sources 설정 값
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
as_DSN="SQL Server"
*/
ls_Key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
ls_Val = as_DSN ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> "SQL Server" then
ls_dat = "SQL Server"
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
/* ODBC
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\{as_DSN}]
"Database"=as_database
"Driver"="C:\\Windows\\system32\\SQLSRV32.dll"
"Language"="한국어"
"LastUser"={as_user}
"Server"=as_DSN
*/
ls_Key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+as_DSN
ls_Val = "Driver" ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> "C:\\Windows\\system32\\SQLSRV32.dll" then
ls_dat = "C:\\Windows\\system32\\SQLSRV32.dll"
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
ls_Val = "Language" ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> "한국어" then
ls_dat = "한국어"
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
ls_Val = "Database" ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> as_Database then
ls_dat = as_Database
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
ls_Val = "LastUser" ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> as_user then
ls_dat = as_user
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
ls_Val = "Server" ; ls_dat = ""
rtn = RegistryGet( ls_Key, ls_Val, RegString!, ls_dat )
if ls_dat <> as_DSN then
ls_dat = as_DSN
rtn = RegistrySet( ls_Key, ls_Val, RegString!, ls_dat )
end if
return rtn
end function
on nvo_mssql_to_odbc.create
call super::create
TriggerEvent( this, "constructor" )
end on
on nvo_mssql_to_odbc.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on