Я закончил с моим собственным решением.Я не мог заставить ни одного из первых двух работать очень хорошо.Я создал два исполняемых файла: один для создания базы данных и один для запуска сценариев.
Для приложения, создающего базу данных, я добавил ссылку на COM «Microsoft ADO Ext. 2.8 для DDL и безопасности».Код на самом деле довольно прост: (замените «test.mdb» на правильный путь к файлу для вашего файла.)
Dim cat As ADOX.Catalog = New ADOX.Catalog()
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Jet OLEDB:Engine Type=5")
Для запуска скриптов я создал простой парсер для чтения и запуска «Скрипты доступа».».Эти сценарии основаны на сценариях SQL, поскольку они предоставляют список команд для запуска.Например, сценарий может быть определен как:
--Create the table.
CREATE TABLE [Test] ([ID] Number, [Foo] Text(255))
--Add data to the table.
INSERT INTO [Test] ([ID], [Foo]) VALUES (1, 'Bar')
Вот код для анализатора.(Замените «test.mdb» на правильный путь к файлу для вашего файла.)
Dim textStream = File.OpenText(scriptPath)
Dim lines As List(Of String) = New List(Of String)
While textStream.Peek() <> -1
lines.Add(textStream.ReadLine())
End While
textStream.Close()
Dim connection As OleDb.OleDbConnection = New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb")
connection.Open()
For Each line As String In lines
If Not String.IsNullOrEmpty(line) Then
If Not line.StartsWith("--") Then
Dim dbCommand = New OleDb.OleDbCommand(line, connection)
dbCommand.ExecuteNonQuery()
End If
End If
Next
connection.Close()
Это решение хорошо работает и его довольно просто реализовать.