sql-script in vb .net einbinden (volltextkatalog)

  • VB.NET
  • .NET 4.5

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von hjerteblod.

    sql-script in vb .net einbinden (volltextkatalog)

    Guten Morgen,

    ich habe ein Script geschrieben, welches einen Volltextkatalog und anschließend eine Volltextindexierung anlegt. Im MS SQL funktioniert es einwandfrei. Nun wollte ich es
    in mein Programm einbauen, welches ich in vb .net geschrieben habe.

    VB.NET-Quellcode

    1. Dim scriptFile As String
    2. scriptFile = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Assemblies", "Test.sql")
    3. If File.Exists(scriptFile) Then
    4. Dim fileInfo As New FileInfo(scriptFile)
    5. Dim script As String = fileInfo.OpenText().ReadToEnd()
    6. Using conn As New System.Data.SqlClient.SqlConnection("ConnectionString")
    7. Dim server As New Microsoft.SqlServer.Management.Smo.Server(New ServerConnection(conn))
    8. Try
    9. server.ConnectionContext.ExecuteNonQuery(script)
    10. Catch [error] As Exception
    11. MessageBox.Show("Fehler bei der Ausführung des Scripts",
    12. "SQL-Server Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
    13. End Try
    14. End Using
    15. End If

    Wenn ich es ausführe, erscheint das kleine Plus neben dem Volltextkatalog (wie bei der manuellen Ausführung in MS SQL auch) und verschwindet dann sofort wieder wenn ich den Katalog anzeigen lassen will.

    Dann habe ich es damit versucht:

    VB.NET-Quellcode

    1. Dim skript As String = String.Empty
    2. Dim Process_Volltext As New Process
    3. skript = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Assemblies", "TEST.sql")
    4. Try
    5. Process_Volltext.StartInfo.FileName = "C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\sqlcmd"
    6. Process_Volltext.StartInfo.Arguments = "-U sa -P " & SW_Info.password & " -S .\TESTFILE-i " & Chr(34) & skript & Chr(34) '"-S .\TESTFILE-i " & Chr(34) & skript & Chr(34)
    7. Process_Volltext.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    8. Process_Volltext.Start()
    9. Catch ex As Exception
    10. MsgBox(ex.ToString)
    11. End Try


    Selbes Ergebnis. Der Katalog lässt sich nicht öffnen.
    Weiß jemand um dieses Problem oder hat einen Ansatz wo mein Fehler liegen könnte?

    Viele Grüße und danke im Vorraus!
    hjerteblod
    Hallo,
    Wenn ich das so kurz überfliege würde mir das ins Auge stechen...
    kann es vieleicht sein das du eine Leerstelle vor den "-U ...." Argumenten vergessen hast ??

    Process_Volltext.StartInfo.Arguments = " -U sa -P " & SW_Info.password & " -S .\TESTFILE-i " & Chr(34) & skript & Chr(34) '"-S .\TESTFILE-i " & Chr(34) & skript & Chr(34)
    __________________________________________
    mfG.

    André

    __________________________________________
    Angewandte Entwicklungsumgebung: Visual Studio 2019,
    C#, SQL, JAVA, VB(A).NET, DATENBANKEN aller Art,
    Access alle Versionen

    Neu

    ich habe eine lösung gefunden, vielleicht nützt es irgendwann jemanden:

    VB.NET-Quellcode

    1. Public Shared Function Volltextkatalog() As String
    2. Dim query As String = "CREATE FULLTEXT CATALOG [testKatalog]WITH ACCENT_SENSITIVITY = ON
    3. AS DEFAULT
    4. AUTHORIZATION [db_accessadmin]"
    5. Dim sqlCon As New SqlConnection("Server=BLABLA\BLUBB;Database=Documents;User=max;Pwd=mustermann")
    6. Using sqlCMD As New SqlCommand(query, sqlCon) With {
    7. .CommandType = CommandType.Text,
    8. .CommandTimeout = 15,
    9. .CommandText = query
    10. }
    11. sqlCon.Open()
    12. sqlCMD.ExecuteNonQuery()
    13. sqlCon.Close()
    14. End Using
    15. End Function
    16. Private Sub btn_Volltext_Click(sender As Object, e As EventArgs) Handles btn_Volltext.Click
    17. Volltextkatalog()
    18. End Sub