-
Notifications
You must be signed in to change notification settings - Fork 6
/
SQLInsert.cls
executable file
·101 lines (75 loc) · 2.72 KB
/
SQLInsert.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "SQLInsert"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
' ___________________________________________________
'
' © Hi-Integrity Systems 2007. All rights reserved.
' www.hisystems.com.au - Toby Wicks
' ___________________________________________________
'
Option Explicit
Implements ISQLStatement
Private pobjFields As SQLFieldValues
Public ConnectionType As ConnectionTypeEnum
Public TableName As String
Public Property Set Fields(ByVal objFields As SQLFieldValues)
If objFields Is Nothing Then
RaiseError dboErrorObjectIsNothing
End If
Set pobjFields = objFields
End Property
Public Property Get Fields() As SQLFieldValues
Set Fields = pobjFields
End Property
Public Property Get SQL() As String
Attribute SQL.VB_UserMemId = 0
Dim intIndex As Integer
Dim strSQL As String
Dim strFields As String
Dim strFieldValues As String
If Trim$(TableName) = vbNullString Then
RaiseError dboErrorGeneral, "TableName property has not been set."
End If
If pobjFields.Count = 0 Then
RaiseError dboErrorGeneral, "Field values have not been set."
End If
For intIndex = 1 To pobjFields.Count
strFields = strFields & SQLConvertIdentifierName(pobjFields(intIndex).Name, Me.ConnectionType)
If intIndex <> pobjFields.Count Then
strFields = strFields & ","
End If
Next
For intIndex = 1 To pobjFields.Count
strFieldValues = strFieldValues & SQLConvertValue(pobjFields(intIndex).Value, Me.ConnectionType)
If intIndex <> pobjFields.Count Then
strFieldValues = strFieldValues & ","
End If
Next
strSQL = _
"INSERT INTO " & SQLConvertIdentifierName(Trim$(Me.TableName), Me.ConnectionType) & " " & _
"(" & strFields & ") VALUES (" & strFieldValues & ")"
SQL = strSQL
End Property
Private Sub Class_Initialize()
Set pobjFields = New SQLFieldValues
ConnectionType = modMisc.ConnectionType
End Sub
Private Property Get ISQLStatement_ConnectionType() As ConnectionTypeEnum
ISQLStatement_ConnectionType = Me.ConnectionType
End Property
Private Property Let ISQLStatement_ConnectionType(ByVal RHS As ConnectionTypeEnum)
Me.ConnectionType = RHS
End Property
Private Property Get ISQLStatement_SQL() As String
ISQLStatement_SQL = Me.SQL
End Property