159 lines
4.0 KiB
OpenEdge ABL
159 lines
4.0 KiB
OpenEdge ABL
VERSION 1.0 CLASS
|
|
BEGIN
|
|
MultiUse = -1 'True
|
|
Persistable = 0 'NotPersistable
|
|
DataBindingBehavior = 0 'vbNone
|
|
DataSourceBehavior = 0 'vbNone
|
|
MTSTransactionMode = 0 'NotAnMTSObject
|
|
END
|
|
Attribute VB_Name = "CSQL"
|
|
Attribute VB_GlobalNameSpace = False
|
|
Attribute VB_Creatable = True
|
|
Attribute VB_PredeclaredId = False
|
|
Attribute VB_Exposed = False
|
|
'==============================================================================
|
|
'
|
|
' File : SQL.cls
|
|
' Date : 20.02.1999
|
|
' Version: 1.00
|
|
' Author : Andreas Schmidt, lindner&partner
|
|
'
|
|
'==============================================================================
|
|
'
|
|
' *shared*
|
|
'
|
|
' Abstraktion von ADODB.Command
|
|
'
|
|
'==============================================================================
|
|
'
|
|
' History:
|
|
'
|
|
' Date : 20.02.1999
|
|
' Version: 1.00
|
|
' Author : Andreas Schmidt, lindner&partner
|
|
'
|
|
' Erste Version.
|
|
'
|
|
'==============================================================================
|
|
|
|
Option Explicit
|
|
|
|
' Private Member
|
|
' --------------
|
|
Dim m_connection As ADODB.connection
|
|
|
|
|
|
' Connection der Standarddatenbank übernehmen
|
|
'
|
|
Private Sub Class_Initialize()
|
|
Set m_connection = g_App.getDB().getConnection()
|
|
End Sub
|
|
|
|
'------------------------------------------------------------------------------
|
|
' Öffentliche Funktionalität
|
|
'------------------------------------------------------------------------------
|
|
|
|
' @param DB Referenz auf eine CDBAccess
|
|
'
|
|
Public Sub setDB(db As CDBAccess)
|
|
Set m_connection = db.getConnection()
|
|
End Sub
|
|
|
|
' @param connection Referenz auf eine ADODB.Connection
|
|
'
|
|
Public Sub setConnection(connection As ADODB.connection)
|
|
Set m_connection = connection
|
|
End Sub
|
|
|
|
' @param s String, der in ein SQL-Statement gesetzt werden soll
|
|
' @param bTicks true = String soll von einfachen Hochkommas umschlossen werden
|
|
'
|
|
Public Function stringToSQLString(s As String, Optional bTicks As Boolean) As String
|
|
stringToSQLString = modSQL.stringToSQLString(s, bTicks)
|
|
End Function
|
|
|
|
' @param dDateTime Datum, das in ein SQL-Statement gesetzt werden soll
|
|
'
|
|
Public Function dateToSQLString(dDateTime As Date) As String
|
|
dateToSQLString = modSQL.dateToSQLString(dDateTime)
|
|
End Function
|
|
|
|
' @param d Double, das in ein SQL-Statement gesetzt werden soll
|
|
'
|
|
Public Function doubleToSQLString(d As Double) As String
|
|
doubleToSQLString = modSQL.doubleToSQLString(d)
|
|
End Function
|
|
|
|
' SQL-String zur Ausführung bringen
|
|
'
|
|
Public Function executeSQL(sSQL As String, Optional ByRef lngRecordsaffected As Long) As Boolean
|
|
Dim errLoop As ADODB.Error
|
|
Dim cmd As New ADODB.Command
|
|
|
|
On Error GoTo executeSQLErr
|
|
|
|
Set cmd.ActiveConnection = getConnection()
|
|
cmd.CommandText = sSQL
|
|
|
|
cmd.Execute lngRecordsaffected
|
|
executeSQL = True
|
|
Exit Function
|
|
|
|
executeSQLErr:
|
|
If getConnection().Errors.Count > 0 Then
|
|
For Each errLoop In getConnection().Errors
|
|
Call showError("ExecuteSQL", errLoop.Description & " (" & errLoop.Number & ")")
|
|
Next errLoop
|
|
End If
|
|
Exit Function
|
|
|
|
End Function
|
|
|
|
' Transaktion beginnen
|
|
'
|
|
Public Sub beginTrans()
|
|
Dim lLevel As Long
|
|
|
|
On Error GoTo beginTransErr
|
|
lLevel = getConnection().beginTrans
|
|
Exit Sub
|
|
|
|
beginTransErr:
|
|
Call showError("beginTrans")
|
|
Exit Sub
|
|
|
|
End Sub
|
|
|
|
' Transaktion abschliessen
|
|
'
|
|
Public Sub commit()
|
|
getConnection().CommitTrans
|
|
End Sub
|
|
|
|
' Transaktion abbrechen
|
|
'
|
|
Public Sub rollback()
|
|
getConnection().RollbackTrans
|
|
End Sub
|
|
|
|
|
|
'------------------------------------------------------------------------------
|
|
' Private Funktionalität
|
|
'------------------------------------------------------------------------------
|
|
|
|
' @return Referenz auf die zu verwendene ADODB.connection
|
|
'
|
|
Private Function getConnection() As ADODB.connection
|
|
Set getConnection = m_connection
|
|
End Function
|
|
|
|
' Helper für Fehlerausgaben
|
|
'
|
|
' @param sMethod Name der aufrufenden Methode
|
|
' @param sInfo optionaler Hinweistext
|
|
'
|
|
Private Sub showError(sMethod As String, Optional sInfo As String)
|
|
Call modError.showError("CSQL." + sMethod, sInfo)
|
|
End Sub
|
|
|