MDM - WinCC: Scripting (VBS, ANSI-C, VBA) Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Einleitung Die folgenden Beispiele beschreiben die Projektierung einer Access-Datenbankanbindung über einen ODBC-Treiber. • • Beispiel 1 schreibt einen Variablenwert aus WinCC in eine Access-Datenbank. Beispiel 2 liest einen Wert aus der Datenbank und schreibt diesen Wert in eine WinCC Variable. Die Beispiele enthalten keine Fehlerbehandlung. Vorgehensweise Beispiel 1 1. Access-Datenbank mit Tabelle WINCC_DATA und Spalten (ID, TagValue) mit der ID als Autowert erstellen. 2. ODBC-Datenquelle mit Namen "SampleDSN" einrichten, Verweis auf obige AccessDatenbank. 3. Programmierung. This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete documentation can be found at: /dokumentation/default.aspx?DocVersionId=16483325707&Language=de-DE&TopicId=6168965899 05.04.2017 MDM - WinCC: Scripting (VBS, ANSI-C, VBA) Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Beispiel 1 'VBS108 Dim objConnection Dim strConnectionString Dim lngValue Dim strSQL Dim objCommand strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;" lngValue = HMIRuntime.Tags("Tag1").Read strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objCommand = CreateObject("ADODB.Command") With objCommand .ActiveConnection = objConnection .CommandText = strSQL End With objCommand.Execute Set objCommand = Nothing objConnection.Close Set objConnection = Nothing This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete documentation can be found at: /dokumentation/default.aspx?DocVersionId=16483325707&Language=de-DE&TopicId=6168965899 05.04.2017 MDM - WinCC: Scripting (VBS, ANSI-C, VBA) Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Vorgehensweise Beispiel 2 1. WinCC Variable mit dem Namen dbValue anlegen. 2. Access-Datenbank mit Tabelle WINCC_DATA und den Spalten: ID, TagValue erstellen (ID als Autowert). 3. ODBC-Datenquelle mit Namen "SampleDSN" einrichten, Verweis auf obige AccessDatenbank. 4. Programmierung. This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete documentation can be found at: /dokumentation/default.aspx?DocVersionId=16483325707&Language=de-DE&TopicId=6168965899 05.04.2017 MDM - WinCC: Scripting (VBS, ANSI-C, VBA) Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Beispiel 2 'VBS108a Dim objConnection Dim objCommand Dim objRecordset Dim strConnectionString Dim strSQL Dim lngValue Dim lngCount strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;" strSQL = "select TagValue from WINCC_DATA where ID = 1" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objRecordset = CreateObject("ADODB.Recordset") Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.CommandText = strSQL Set objRecordset = objCommand.Execute lngCount = objRecordset.Fields.Count If (lngCount>0) Then objRecordset.movefirst This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete lngValue = can objRecordset.Fields(0).Value documentation be found at: /dokumentation/default.aspx?DocVersionId=16483325707&Language=de-DE&TopicId=6168965899 05.04.2017 HMIRuntime.Tags("dbValue").Write lngValue MDM - WinCC: Scripting (VBS, ANSI-C, VBA) Beispiel: So projektieren Sie eine Datenbankanbindung mit VBS Es gibt unterschiedliche Möglichkeiten, den ConnectionString für die Verbindung zu definieren, abhängig vom verwendeten Provider: Microsoft OLE DB provider for ODBC Ermöglicht Verbindungen zu einer beliebigen ODBC Datenquelle. Die entsprechende Syntax ist: "[Provider=MSDASQL;]{DSN=name|FileDSN=filename}; [DATABASE=database;]UID=user; PWD=password" Andere Microsoft OLE DB Provider (z.B. MS Jet, MS SQL Server) Sie können ohne DSN arbeiten. Die entsprechende Syntax ist: "[Provider=provider;]DRIVER=driver; SERVER=server; DATABASE=database; UID=user; PWD=password" Siehe auch → Allgemeine Beispiele zu VBScript This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete documentation can be found at: /dokumentation/default.aspx?DocVersionId=16483325707&Language=de-DE&TopicId=6168965899 05.04.2017