Article ID: 199156
Article Last Modified on 10/15/2002
rs.Fields(x) =<value>
rs.Update, rs.Edit, or rs.AddNew
Option Explicit
Const strWrkDir = "c:\temp\"
Const maxfld = 200
Dim dbfastname As String
Dim dbslowname As String
Sub CreateDBSlow()
Dim db As Database
Dim td As TableDef
Dim fld As Field
Dim cTbl As Integer
Dim cFld As Integer
Set db = DBEngine.CreateDatabase(dbslowname, dbLangGeneral)
For cTbl = 1 To maxfld
Set td = db.CreateTableDef("Table" & cTbl)
For cFld = 1 To cTbl
Set fld = td.CreateField("Field" & cFld, dbText)
td.Fields.Append fld
Set fld = Nothing
Next cFld
db.TableDefs.Append td
Set td = Nothing
Next cTbl
db.Close
End Sub
Sub CreateDBFast()
Dim db As Database
Dim td As TableDef
Dim fld As Field
Dim cTbl As Integer
Dim cFld As Integer
Dim strSQL As String
Set db = DBEngine.CreateDatabase(dbfastname, dbLangGeneral)
For cTbl = 1 To maxfld
strSQL = "CREATE TABLE Table" & cTbl & " ("
For cFld = 1 To cTbl
strSQL = strSQL & "Field" & cFld & " text,"
Next cFld
strSQL = Left(strSQL, Len(strSQL) - 1) & ")"
db.Execute strSQL
Next cTbl
db.Close
End Sub
Sub DoTest(dbName As String)
Dim db As Database
Dim rs As Recordset
Dim sStart As Single
Dim sStop As Single
Dim cTbl As Integer
Open dbName &; ".txt" For Output As 1
Set db = DBEngine.OpenDatabase(dbName)
For cTbl = 1 To maxfld
Set rs = db.OpenRecordset("Select * From Table" & cTbl)
rs.AddNew
sStart = Timer
rs.Fields(0) = ""
sStop = Timer
rs.Close
Set rs = Nothing
Write #1, cTbl, sStop - sStart
Next cTbl
Close 1
End Sub
Sub Main()
dbfastname = strWrkDir & "fastdb.mdb"
dbslowname = strWrkDir & "slowdb.mdb"
CreateDBSlow
CreateDBFast
DoTest dbslowname
DoTest dbfastname
MsgBox "Test Complete"
End Sub
Keywords: kbbug kbdatabase kbprb kbpending KB199156