sub violate_index()
dim mdb_file_name as string
mdb_file_name = "c:\\temp\\violate_index.mdb"
kill_file_if_exists(mdb_file_name)
dim db as dao.database
set db = dao.createDatabase(mdb_file_name, dbLangGeneral, 0)
' Creating the table {
dim table_def as dao.tableDef
set table_def = db.createTableDef("aTable")
' Adding field ' {
dim table_field as dao.field
' First column
set table_field = table_def.createField("anUnindexedField", dbLong)
table_def.Fields.append table_field
' Second column
set table_field = table_def.createField("anIndexedField", dbLong)
table_def.Fields.append table_field
' }
db.tableDefs.append table_def
' }
' The index {
dim ix as dao.index
set ix = table_def.createIndex("ix_unique")
ix.fields.append ix.createField("anIndexedField")
ix.unique = true
ix.primary = false ' default ?
table_def.indexes.append ix
' }
set ix = nothing
set table_def = nothing
' { inserting
dim rs as dao.recordSet
set rs = db.openRecordSet("aTable", dbOpentable)
rs.addNew
rs("anUnindexedField") = 1
rs("anIndexedField" ) = 1
rs.update
rs.addNew
rs("anUnindexedField") = 2
rs("anIndexedField" ) = 2
rs.update
rs.addNew
rs("anUnindexedField") = 3
rs("anIndexedField" ) = 3
rs.update
rs.addNew
rs("anUnindexedField") = 3
rs("anIndexedField" ) = 3
rs.update
' }
end sub
private sub kill_file_if_exists(file_name as string)
dim fso as fileSystemObject
set fso = new fileSystemObject
if fso.fileExists(file_name) then
fso.deletefile(file_name)
end if
end sub