-> Hier kostenlos registrieren
Hallo Leute
Habe die Aufgabenstellung Werte aus einem „WinCC flexible PC-Runtime“ auf einen SQL 2005 Server Express Edition zu schreiben.
Die Verbindung zum Server und das Erzeugen einer neuen Tabelle vom Runtime aus läuft problemlos. Ich kann auch Werte von Type INT in die Tabelle schreiben.
Mein Problem ist das ich außer Ganzahlen, REAL-Zahlen (Später ca.50) und noch Daten von Type DATE_AND_TIME übertragen muss.
In Abwandlung von einer Siemens FAQ sieht mein Projekt wie folgt aus.
Skript 1 „Erzeugung einer neuen Tabelle“
Dim conn, rst
Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
conn.Open "Provider=MSDASQL;DSN=C45-Archiv" 'DSN= Name der ODBC-Datenbank
Dim SQL_Tabelle
SQL_Tabelle = "CREATE TABLE "& SmartTags("SQL\Tab_Name") &" (Nr Int, Temp NUMERIC(4,1), R_Ist FLOAT(9), R_Soll FLOAT(9))"
Set rst = conn.Execute(SQL_Tabelle)
Skript 2 „Schreiben von Variabel in Tabelle“
Dim conn, rst
Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
conn.Open "Provider=MSDASQL;DSN=C45-Archiv"
Dim SQL_Tabelle
SQL_Tabelle = "SELECT * FROM "&SmartTags("SQL\Tab_Name") & " WHERE Nr = "&SmartTags("SQL\Dat_Nr") '* = Alle Daten
Set rst = conn.Execute(SQL_Tabelle)
If Not (rst.EOF And rst.BOF) Then
'Vergleich ob End of File oder Begin of File ist, wenn nicht wird der Zeiger auf den Ersten Eintrag zurückgesetzt
ShowSystemAlarm "Dat_Nr. ist bereits vorhanden!"
rst.close
Else
SQL_Tabelle = "INSERT INTO "& SmartTags("SQL\Tab_Name") & " VALUES ('"&SmartTags("SQL\Dat_Nr") &"','"&SmartTags("SQL\Temperatur") &"','"&SmartTags("SQL\NTC Ist")&"','"&SmartTags("SQL\NTC Soll")&"')"
Set rst = conn.Execute(SQL_Tabelle)
End If
Die Variabeln in flexible haben folgende Formate:
SQL\Tab_Name = String
SQL\Dat_Nr = Word
SQL\Temperatur = Int
SQL\NTC Ist = Real
SQL\NTC Soll = Real
Wenn ich das zweite Skript ausführe, erhalte ich folgende Fehlermeldung. „Fehler beim Konvertieren des varchar Datentypes in real.
Kann man jemand helfen wie ich REAL Werte übertragen kann, bzw. für Später welche Formate muß ich einstellen um das Siemens Format Dat-und-Time zu übertragen.
Harald
Habe die Aufgabenstellung Werte aus einem „WinCC flexible PC-Runtime“ auf einen SQL 2005 Server Express Edition zu schreiben.
Die Verbindung zum Server und das Erzeugen einer neuen Tabelle vom Runtime aus läuft problemlos. Ich kann auch Werte von Type INT in die Tabelle schreiben.
Mein Problem ist das ich außer Ganzahlen, REAL-Zahlen (Später ca.50) und noch Daten von Type DATE_AND_TIME übertragen muss.
In Abwandlung von einer Siemens FAQ sieht mein Projekt wie folgt aus.
Skript 1 „Erzeugung einer neuen Tabelle“
Dim conn, rst
Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
conn.Open "Provider=MSDASQL;DSN=C45-Archiv" 'DSN= Name der ODBC-Datenbank
Dim SQL_Tabelle
SQL_Tabelle = "CREATE TABLE "& SmartTags("SQL\Tab_Name") &" (Nr Int, Temp NUMERIC(4,1), R_Ist FLOAT(9), R_Soll FLOAT(9))"
Set rst = conn.Execute(SQL_Tabelle)
Skript 2 „Schreiben von Variabel in Tabelle“
Dim conn, rst
Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
conn.Open "Provider=MSDASQL;DSN=C45-Archiv"
Dim SQL_Tabelle
SQL_Tabelle = "SELECT * FROM "&SmartTags("SQL\Tab_Name") & " WHERE Nr = "&SmartTags("SQL\Dat_Nr") '* = Alle Daten
Set rst = conn.Execute(SQL_Tabelle)
If Not (rst.EOF And rst.BOF) Then
'Vergleich ob End of File oder Begin of File ist, wenn nicht wird der Zeiger auf den Ersten Eintrag zurückgesetzt
ShowSystemAlarm "Dat_Nr. ist bereits vorhanden!"
rst.close
Else
SQL_Tabelle = "INSERT INTO "& SmartTags("SQL\Tab_Name") & " VALUES ('"&SmartTags("SQL\Dat_Nr") &"','"&SmartTags("SQL\Temperatur") &"','"&SmartTags("SQL\NTC Ist")&"','"&SmartTags("SQL\NTC Soll")&"')"
Set rst = conn.Execute(SQL_Tabelle)
End If
Die Variabeln in flexible haben folgende Formate:
SQL\Tab_Name = String
SQL\Dat_Nr = Word
SQL\Temperatur = Int
SQL\NTC Ist = Real
SQL\NTC Soll = Real
Wenn ich das zweite Skript ausführe, erhalte ich folgende Fehlermeldung. „Fehler beim Konvertieren des varchar Datentypes in real.
Kann man jemand helfen wie ich REAL Werte übertragen kann, bzw. für Später welche Formate muß ich einstellen um das Siemens Format Dat-und-Time zu übertragen.
Harald