File: n_transaction.sru
Size: 3040
Date: Mon, 31 Dec 2018 21:14:39 +0100
$PBExportHeader$n_transaction.sru
forward
global type n_transaction from transaction
end type
end forward

global type n_transaction from transaction
end type
global n_transaction n_transaction

type variables
String is_regkey = "HKEY_CURRENT_USER\Software\TopWiz\SQLAzure"
String is_dbversion, is_dbtypename

end variables

forward prototypes
public subroutine of_dblogoff ()
public function boolean of_dblogon ()
public function string of_registryget (string as_subkey, string as_valname, string as_default)
public subroutine of_registryset (string as_subkey, string as_valname, string as_value)
end prototypes

public subroutine of_dblogoff ();// Disconnect from database
DISCONNECT USING THIS;

Return

end subroutine

public function boolean of_dblogon ();// connect to the database

Constant String PBDateTimeFmt = "DateTime=''{ts '\'yyyy-mm-dd hh:mm:ss.fff\''}''"
String ls_server, ls_database, ls_userid, ls_password, ls_dbparm

// get settings from Registry
ls_server   = of_RegistryGet("DBProfile", "Server", "")
ls_database = of_RegistryGet("DBProfile", "Database", "")
ls_userid   = of_RegistryGet("DBProfile", "Userid", "")
ls_password = of_RegistryGet("DBProfile", "Password", "")

// build DBParm
ls_dbparm  = "ConnectString='Driver={SQL Server Native Client 11.0};"
ls_dbparm += "Server=tcp:" + ls_server + ".database.windows.net,1433;"
ls_dbparm += "Database=" + ls_database + ";Uid=" + ls_userid + "@" + ls_server + ";"
ls_dbparm += "Pwd=" + ls_password + ";Encrypt=yes;Connection Timeout=30;"+PBDateTimeFmt+";'"
ls_dbparm += ",DisableBind=1,ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

// set properties
this.DBMS = "ODB"
this.DBParm = ls_dbparm
this.AutoCommit = True

// connect to database
CONNECT USING THIS;

If this.SQLCode = 0 Then
   Return True
Else
   MessageBox( "Database Logon Failed", &
               this.SQLErrText, Exclamation! )
   Return False
End If

end function

public function string of_registryget (string as_subkey, string as_valname, string as_default);String ls_regkey, ls_value

// build registry key
If Not IsNull(as_valname) Then
   If as_subkey = "" Then
      ls_regkey = is_regkey
   Else
      ls_regkey = is_regkey + "\" + as_subkey
   End If
End If

// get the value
RegistryGet(ls_regkey, as_valname, RegString!, ls_value)

If IsNull(ls_value) Or ls_value = "" Then
   Return as_default
Else
   Return ls_value
End If

end function

public subroutine of_registryset (string as_subkey, string as_valname, string as_value);String ls_regkey, ls_value

// build registry key
If Not IsNull(as_valname) Then
   If as_subkey = "" Then
      ls_regkey = is_regkey
   Else
      ls_regkey = is_regkey + "\" + as_subkey
   End If
End If

// set the value
RegistrySet(ls_regkey, as_valname, RegString!, as_value)

Return

end subroutine

on n_transaction.create
call super::create
TriggerEvent( this, "constructor" )
end on

on n_transaction.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on