S Shulman
I made this today because I was curious about someting, maybe can you use
it.
\\\Needs a form with a listbox on it
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim myQ As New Queue
Dim myreadDb As New readDatabase(myQ)
Dim MyThr As New System.Threading.Thread(AddressOf myreadDb.Read)
MyThr.Start()
Me.Show()
Do Until myreadDb.ready AndAlso myQ.Count = 0
SyncLock myQ.SyncRoot
If myQ.Count > 0 Then
Me.ListBox1.Items.Add(myQ.Dequeue)
Me.ListBox1.SelectedIndex = ListBox1.Items.Count - 1
Me.ListBox1.Show()
End If
End SyncLock
Loop
End Sub
End Class
Public Class readDatabase
Private MyQ As Queue
Friend ready As Boolean
Public Sub New(ByVal pMyQ As Queue)
MyQ = pMyQ
End Sub
Friend Sub Read()
Dim fi As New IO.FileInfo("c:\test1\db3.mdb")
If Not fi.Exists Then
Dim db As New CreateDB
End If
Dim conn As New
OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=C:\Test1\db3.mdb;User
Id=admin;Password=;")
Dim cmd As New OleDb.OleDbCommand("select count(*) from Test", conn)
conn.Open()
Dim count As Integer = CInt(cmd.ExecuteScalar())
cmd.CommandText = "Select * from Test"
Dim drdr As OleDb.OleDbDataReader
drdr = cmd.ExecuteReader()
While drdr.Read()
SyncLock MyQ.SyncRoot
MyQ.Enqueue(drdr.GetInt32(1))
End SyncLock
End While
ready = True
drdr.Close()
conn.Close()
End Sub
End Class
Friend Class CreateDB
Public Sub New()
Dim catNewDB As New ADOX.Catalog
Dim fi As New IO.FileInfo("c:\test1\db3.mdb")
If fi.Exists Then
If MessageBox.Show("Delete?", "Existing File db3.mdb", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
fi.Delete()
Else
Exit Sub
End If
End If
catNewDB.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data
Source=C:\test1\db3.mdb")
Dim conn As New
OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=C:\Test1\db3.mdb;User Id=admin;Password=;")
Dim cmd As New OleDb.OleDbCommand("CREATE TABLE Test ( " & _
"Gid uniqueidentifier, " & _
"NextN int, " & _
"CONSTRAINT [pk_Gid] PRIMARY KEY (Gid)) ", conn)
conn.Open()
cmdExecute(cmd)
cmd.CommandText = "INSERT INTO Test (Gid, NextN) VALUES (?, ?)"
cmd.Parameters.Add _
(New OleDb.OleDbParameter("", OleDb.OleDbType.Guid))
cmd.Parameters.Add _
(New OleDb.OleDbParameter("", OleDb.OleDbType.Integer))
For i As Integer = 0 To 20000
cmd.Parameters(0).Value = Guid.NewGuid
cmd.Parameters(1).Value = i
cmdExecute(cmd)
Next
conn.Close()
End Sub
Private Sub cmdExecute(ByVal cmd As OleDb.OleDbCommand)
Try
cmd.ExecuteNonQuery()
Catch ex As OleDb.OleDbException
MessageBox.Show(ex.Message, "OleDbException")
Exit Sub
Catch ex As Exception
MessageBox.Show(ex.Message, "GeneralException")
Exit Sub
End Try
End Sub
End Class
///
I hope this helps a little bit?
Cor