В итоге я решил использовать свое решение. Я не мог заставить обоих из первых двух работать очень хорошо. Я создал два исполняемых файла: один для создания базы данных и один для запуска скриптов.
Для приложения, которое создает базу данных, я добавил ссылку 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()
Этого решение работает хорошо, и был довольно просто реализовать.
Я не проигнорировал свой вопрос. Я просто работаю с более приоритетными задачами. Как только я начну реализовывать это, я выберу ответ, который мне помог. – Jeremy