Component File /DataStoreClass.vb (VB.NET)
1: Option Strict Off  
2: Option Explicit On  
3: Friend Class DataStoreClass  
4:     'Set up the data connection  
5:     'Private Function SetupDataConnection() As ADODB.Connection  
6:     Public DatabaseConnectionString As String  
7:       
8:     Public Sub SetConnectionString(ByRef ConnectionString As String)  
9:           
10:         'DataConnection.ConnectionString = ConnectionString  
11:         DatabaseConnectionString = ConnectionString  
12:         'DataConnection.Mode = adModeShareDenyNone  
13:         'DataConnection.Open  
14:           
15:     End Sub  
16:       
17:       
18:     'UPGRADE_NOTE: Class_Terminate was upgraded to Class_Terminate_Renamed. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1061"'  
19:     Private Sub Class_Terminate_Renamed()  
20:           
21:         '    If DataConnection.State =  
22:         '   DataConnection.Close  
23:         '  Set DataConnection = Nothing  
24:           
25:     End Sub  
26:     Protected Overrides Sub Finalize()  
27:         Class_Terminate_Renamed()  
28:         MyBase.Finalize()  
29:     End Sub  
30:     Public Function ExecuteSQL(ByRef SQLStatement As String) As Boolean  
31:         Dim SQL As Object  
32:         Dim ConnectionDatabaseName As Object  
33:         Dim DataError As Object  
34:           
35:         On Error Resume Next  
36:           
37:         Dim DataConnection As New ADODB.Connection  
38:         Dim HasDatabaseConnectionError As Boolean  
39:         Dim HasDatabaseSQLError As Boolean  
40:           
41:         DataConnection.ConnectionString = DatabaseConnectionString  
42:         DataConnection.Open(DatabaseConnectionString) ', adOpenForwardOnly, adLockReadOnly
43:           
44:         If DataConnection.State = 0 Then  
45:             FormMain.DefInstance.UpdateStatus(("Cannot open the DataStore"))  
46:             Call AppendToLogFile(CurrentLogFileName, "ERROR: Cannot open the DataStore " & vbCrLf)  
47:               
48:             If DataConnection.Errors.Count > 0 Then  
49:                 For    Each DataError In DataConnection.Errors  
50:                       
51:                     'UPGRADE_WARNING: Couldn't resolve default property of object DataError. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'  
52:                     Call AppendToLogFile(CurrentLogFileName, vbTab & "ERROR: DataStore error: " & DataError & vbCrLf)  
53:                       
54:                 Next DataError  
55:             End If  
56:               
57:             HasDatabaseConnectionError = True  
58:         Else  
59:             HasDatabaseConnectionError = False  
60:         End If  
61:           
62:         If HasDatabaseConnectionError = False Then  
63:               
64:             DataConnection.Execute(SQLStatement)  
65:               
66:             If DataConnection.Errors.Count > 0 Then  
67:                 'UPGRADE_WARNING: Couldn't resolve default property of object ConnectionDatabaseName. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'  
68:                 FormMain.DefInstance.UpdateStatus(("Problem with SQL statement (see log) " & ConnectionDatabaseName))  
69:                 'UPGRADE_WARNING: Couldn't resolve default property of object SQL. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'  
70:                 Call AppendToLogFile(CurrentLogFileName, vbTab & "ERROR: Problem executing the SQL statement: " & SQL & vbCrLf)  
71:                   
72:                 If DataConnection.Errors.Count > 0 Then  
73:                     For    Each DataError In DataConnection.Errors  
74:                           
75:                         'UPGRADE_WARNING: Couldn't resolve default property of object DataError. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'  
76:                         Call AppendToLogFile(CurrentLogFileName, vbTab & "ERROR: SQL Server error: " & DataError & vbCrLf)  
77:                           
78:                     Next DataError  
79:                 End If  
80:                   
81:                 HasDatabaseSQLError = True  
82:                 ExecuteSQL = False  
83:             Else  
84:                 HasDatabaseSQLError = False  
85:                 ExecuteSQL = True  
86:             End If  
87:               
88:             If HasDatabaseSQLError = False Then  
89:                   
90:             Else  
91:                   
92:                 ExecuteSQL = False  
93:                   
94:             End If  
95:               
96:         End If  
97:           
98:         DataConnection.Close()  
99:         'UPGRADE_NOTE: Object DataConnection may not be destroyed until it is garbage collected. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1029"'  
100:         DataConnection = Nothing  
101:           
102:     End Function  
103:     Public Function ExecuteSQLReturnIdentity(ByRef SQLStatement As String) As Integer  
104:           
105:         Dim DataConnection As New ADODB.Connection  
106:         Dim RS As New ADODB.Recordset  
107:         Dim HasDatabaseConnectionError As Boolean  
108:         Dim HasDatabaseSQLError As Boolean  
109:           
110:         DataConnection.ConnectionString = DatabaseConnectionString  
111:         DataConnection.Open(DatabaseConnectionString) ', adOpenForwardOnly, adLockReadOnly
112:         DataConnection.Execute(SQLStatement)  
113:         RS = DataConnection.Execute("select @@identity")  
114:         ExecuteSQLReturnIdentity = RS.Fields(0).Value  
115:         DataConnection.Close()  
116:         'UPGRADE_NOTE: Object DataConnection may not be destroyed until it is garbage collected. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1029"'  
117:         DataConnection = Nothing  
118:           
119:         'ExecuteSQL = True  
120:           
121:     End Function  
122:       
123:     Public Function ExecuteSQLReturnSingleValue(ByRef SQLStatement As String, ByRef ColumnName As String) As String  
124:           
125:         On Error Resume Next  
126:           
127:         ' Dim RS As New ADODB.Recordset  
128:         'Dim DataConnection As New ADODB.Connection  
129:         Dim ReturnValue As String  
130:         'DataConnection.ConnectionString = DatabaseConnectionString  
131:         'DataConnection.Open DatabaseConnectionString ', adOpenForwardOnly, adLockReadOnly  
132:         Dim DataConnection As New ADODB.Connection  
133:         Dim RS As New ADODB.Recordset  
134:         Dim HasDatabaseConnectionError As Boolean  
135:         Dim HasDatabaseSQLError As Boolean  
136:           
137:         DataConnection.ConnectionString = DatabaseConnectionString  
138:         DataConnection.Open(DatabaseConnectionString) ', adOpenForwardOnly, adLockReadOnly
139:         RS = DataConnection.Execute(SQLStatement)  
140:           
141:         Do While Not RS.EOF  
142:             'i = i + 1  
143:             'Debug.Print RS.Fields("ProjectName").Value  
144:               
145:             ReturnValue = RS.Fields(ColumnName).Value  
146:               
147:             RS.MoveNext()  
148:         Loop  
149:         'RS.Close  
150:         DataConnection.Close()  
151:         'UPGRADE_NOTE: Object DataConnection may not be destroyed until it is garbage collected. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1029"'  
152:         DataConnection = Nothing  
153:         ExecuteSQLReturnSingleValue = ReturnValue  
154:           
155:     End Function  
156:       
157:       
158:     Public Function GetRecordSet(ByRef SQLStatement As String) As ADODB.Recordset  
159:         Dim DataError As Object  
160:           
161:         On Error Resume Next  
162:         'See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconremotingfeaturesofvisualbasic.asp  
163:         'for how to return recordsets from functions!  
164:           
165:         Dim RS As New ADODB.Recordset  
166:         Dim DataConnection As New ADODB.Connection  
167:         Dim HasDatabaseConnectionError As Boolean  
168:         Dim HasDatabaseSQLError As Boolean  
169:           
170:         DataConnection.ConnectionString = DatabaseConnectionString  
171:         DataConnection.Open(DatabaseConnectionString) ', adOpenForwardOnly, adLockReadOnly
172:           
173:         If DataConnection.State = 0 Then  
174:             FormMain.DefInstance.UpdateStatus(("Cannot open the DataStore"))  
175:             Call AppendToLogFile(CurrentLogFileName, "ERROR: Cannot open the DataStore " & vbCrLf)  
176:               
177:             If DataConnection.Errors.Count > 0 Then  
178:                 For    Each DataError In DataConnection.Errors  
179:                       
180:                     'UPGRADE_WARNING: Couldn't resolve default property of object DataError. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'  
181:                     Call AppendToLogFile(CurrentLogFileName, vbTab & "ERROR: DataStore error: " & DataError & vbCrLf)  
182:                       
183:                 Next DataError  
184:             End If  
185:               
186:             HasDatabaseConnectionError = True  
187:         Else  
188:             HasDatabaseConnectionError = False  
189:         End If  
190:           
191:         If HasDatabaseConnectionError = False Then  
192:               
193:             RS = DataConnection.Execute(SQLStatement)  
194:               
195:         End If  
196:         'GetRecordSet = RS.RecordCount  
197:         'RS.Open SQLStatement, DataConnection, adOpenForwardOnly, adLockReadOnly  
198:           
199:         'DataConnection.Errors  
200:         'Errors = DataConnection.Errors  
201:           
202:         'If DataConnection.Errors.Count > 0 Then  
203:         'For Each DBError In DataConnection.Errors  
204:           
205:         'Debug.Print DBError.Description  
206:           
207:         'Next  
208:           
209:         'End If  
210:         'i = 0  
211:         'Do While Not RS.EOF  
212:         'i = i + 1  
213:         'Debug.Print RS.Fields("ProjectName").Value  
214:           
215:         '    RS.MoveNext  
216:         '   Loop  
217:         'RS.Close  
218:         '    Set RS.ActiveConnection = Nothing  
219:           
220:         GetRecordSet = RS  
221:           
222:     End Function  
223: End Class