WinCC V13 VBS Skript funktioniert nicht

Bobbybau91

Level-2
Beiträge
173
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC V13 VB Skript funktioniert nicht

Hallo zusammen,

ich habe von einem externen Dienstleister ein Skript bekommen, welches eine Datenbank anlegen soll. Dieses funktioniert leider im Moment bei mir noch nicht. Der Speicherordner wird angelegt, aber mehr passiert nicht, der Ordner bleibt dann leer. Von VB habe ich leider so gut wie gar keine Ahnung, habe nur Grundkentnisse in C.

Hier das Skript:

Code:
Sub CreateSqlDataBase()
'Tip:
' 1. Verwenden Sie die Tastenkombination <CTRL+SPACE> oder <CTRL+I>, um eine Liste aller Objekte und Funktionen zu öffnen
' 2. Schreiben Sie den Code unter Verwendung des HMI Runtime Objekts.
'  Beispiel: HmiRuntime.Screens("Screen_1").
' 3. Verwenden Sie die Tastenkombination <CTRL+J>, um eine Objektreferenz zu erstellen.
'Schreiben Sie den Code ab dieser Position:

    Const ServerInstanceName = ".\SQLEXRESS", DbName = "Batchprotokoll"
    Dim fso, objConnection, objCommand, strConnectionString, strCommandText, strFullPath
    
    On Error Resume Next

    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists("C:\project\protocol") Then
        fso.CreateFolder("C:\project")
        fso.CreateFolder("C:\project\protocol")
    End If 'Funktioniert, Ordner wurden angelegt'
    
    strConnectionString = "Provider=SQLOLEDB;Data Source='" & ServerInstanceName & "';Integrated Security='SSPI';Initial Catalog='master';"
    
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Open strConnectionString
    
    strFullPath = "C:\project\protocol\" & DbName
    
    strCommandText = "IF NOT EXISTS(SELECT * FROM sys.databases WHERE Name = '" & DbName & _
     "') CREATE DATABASE [" & DbName & "] ON PRIMARY ( NAME = '" & DbName & "', FILENAME = N'" & strFullPath & _
     ".mdf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON (NAME = '" & DbName & _
     "_Log', FILENAME = N'" & strFullPath & "_Log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%);"
    
    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection
    objCommand.CommandText = strCommandText
    objCommand.Execute

    Set objCommand = Nothing

    objConnection.Close
    Set objConnection = Nothing
    CreateObject.Open 

End Sub

Erkennt da jemand einen Fehler?

Gruß Bob
 
Zuletzt bearbeitet:
Also gut kenne ich mich nicht aus.Aber brauchst du nicht den Microsoft SQL Server?

strConnectionString = "Provider=SQLOLEDB;Data Source='" & ServerInstanceName & "';Integrated Security='SSPI';Initial Catalog='master';"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also gut kenne ich mich nicht aus.Aber brauchst du nicht den Microsoft SQL Server?

strConnectionString = "Provider=SQLOLEDB;Data Source='" & ServerInstanceName & "';Integrated Security='SSPI';Initial Catalog='master';"

Das Programm wurde von dem externen Dienstleister mit dem Microsoft SQL Express Server getestet und es hat funktioniert
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mir aufgefallen ist:
Code:
[COLOR=#333333][FONT=Courier]Const ServerInstanceName = ".\SQLEXRESS", DbName = "Batchprotokoll"[/FONT][/COLOR]

Da steht als Instanznahme SQLEXRESS richtig währe (bei einer Standard Installation der MS SQL Express Edition) aber SQLEXPRESS. Somit kann er die Datenbank nicht finden! Den Instanznamen siehst Du z. B. im SQL Server Management Studio falls das mit installiert wurde.
 
Zurück
Oben