Mysql WINCC和SQL在表中添加新元素

Mysql WINCC和SQL在表中添加新元素,mysql,vbscript,wincc,tia-portal,Mysql,Vbscript,Wincc,Tia Portal,我已经在WINCC中创建了一个项目,在这里我创建了一个表(示例在底部),然后将温度变送器的值放入其中,以1秒为周期。我的问题是,一段时间后,新数据并没有出现在表的底部,而是随机出现在某个位置并开始在那个里写入。它并没有覆盖它,只是开始随机插入,然后在底部,然后再随机插入,等等 以下是我创建表的代码: Sub Create_new_table () Dim conn, rst, SQL_Table, name On Error Resume Next Set conn = CreateObje

我已经在WINCC中创建了一个项目,在这里我创建了一个表(示例在底部),然后将温度变送器的值放入其中,以1秒为周期。我的问题是,一段时间后,新数据并没有出现在表的底部,而是随机出现在某个位置并开始在那个里写入。它并没有覆盖它,只是开始随机插入,然后在底部,然后再随机插入,等等

以下是我创建表的代码:

Sub Create_new_table ()
Dim conn, rst, SQL_Table, name

On Error Resume Next

Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
name =Year(Date) & "_" & Month(Date) & "_" & Day(Date)
'Open data source - Datenquelle öffnen
conn.Open "Provider=MSDASQL;DSN=Database" 'DSN= Name of the ODBC database - DSN= Name der ODBC-Datenbank

'Error routine - Fehlerroutine
If Err.Number <> 0 Then
    ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
    Err.Clear
    Set conn = Nothing
    Exit Sub
End If


' FORMING TABLE
SQL_Table = "CREATE TABLE Paster_TT43_" & name & "(" &_
        "Signal NVARCHAR(30) ," &_
        "Date NVARCHAR(30) ," &_
        "Time NVARCHAR(30) ," &_
        "Value NVARCHAR(30)  )"
Set rst = conn.Execute(SQL_Table)

' There are more tables to create there is one for example
'Error routine - Fehlerroutine 
If Err.Number <> 0 Then
    ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
    Err.Clear
    'Close data source - Datenquelle schließen
    conn.close
    Set conn = Nothing
    Set rst = Nothing
    Exit Sub
End If

'Close data source - Datenquelle schließen
conn.close

Set rst = Nothing
Set conn = Nothing

End Sub
子创建新表()
Dim conn,rst,SQL_表,名称
出错时继续下一步
Set conn=CreateObject(“ADODB.Connection”)
Set rst=CreateObject(“ADODB.Recordset”)
名称=年(日)&“月(日)&”日(日)
'开放数据源-Datenquelleöffnen
conn.Open“Provider=MSDASQL;DSN=Database”'DSN=ODBC数据库的名称-DSN=ODBC数据库的名称
'错误例程-Fehlerroutine
如果错误号为0,则
ShowSystemAlarm“Error#”和Err.Number&“”和Err.Description
呃,明白了
设置连接=无
出口接头
如果结束
"成型台",
SQL_Table=“创建表粘贴器”&name&(“&_
“信号NVARCHAR(30),”&_
“日期NVARCHAR(30),”&_
“时间NVARCHAR(30),”&_
“值NVARCHAR(30))”
设置rst=conn.Execute(SQL_表)
“有更多的表要创建,例如,有一个
'错误例程-Fehlerroutine
如果错误号为0,则
ShowSystemAlarm“Error#”和Err.Number&“”和Err.Description
呃,明白了
'关闭数据源-Datenquelle schließen
康涅狄格州
设置连接=无
设置rst=无
出口接头
如果结束
'关闭数据源-Datenquelle schließen
康涅狄格州
设置rst=无
设置连接=无
端接头
这就是创建一个表的示例 现在,作为向其中添加新元素的示例,它每秒钟都在运行

Sub Add_New_Element()
Dim conn, conn2, rst, SQL_Table,SQL_Table2, name, rssql, rs, insertsql, Date, Time

name =Year(Date) & "_" & Month(Date) & "_" & Day(Date)
Date = Day(Date) & "_" & Month(Date) & "_" & Year(Date) 
Time = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)

On Error Resume Next

Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=MSDASQL;Initial Catalog=BazaPodataka;DSN=Database"
If Err.Number <> 0 Then
    ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
    Err.Clear
    Set conn = Nothing
    Exit Sub
End If

SQL_Table = "INSERT INTO Paster_TT43_" & name & "(Signal, Date, Time, Value) VALUES ('" & SmartTags("15_Analog_input_TT43.Name") & "' , '" & datum & "' , ' " & vreme & "' , ' " & SmartTags("15_Analog_input_TT43.Scaled_Signal") &  " ')"
Set rst = conn.Execute(SQL_Table)

'more signals after this etc..
conn.close
Set rst = Nothing
Set conn = Nothing

End Sub
子添加新元素()
Dim conn,conn2,rst,SQL_表,SQL_表2,名称,rssql,rs,insertsql,日期,时间
名称=年(日)&“月(日)&”日(日)
日期=日(日)&“月(日)&”年(日)
时间=小时(时间)&“&分钟(时间)&“:”&秒(时间)
出错时继续下一步
Set conn=CreateObject(“ADODB.Connection”)
conn.Open“Provider=MSDASQL;Initial Catalog=BazaPodataka;DSN=Database”
如果错误号为0,则
ShowSystemAlarm“Error#”和Err.Number&“”和Err.Description
呃,明白了
设置连接=无
出口接头
如果结束
SQL_Table=“插入粘贴器_TT43_”&name&“(信号、日期、时间、值)值(“&SmartTags(“15_模拟输入_TT43.name”)&“,”&datum&“,”&vreme&“,””&SmartTags(“15_模拟输入_TT43.Scaled_信号”)&“)
设置rst=conn.Execute(SQL_表)
"这之后有更多的信号等等。。
康涅狄格州
设置rst=无
设置连接=无
端接头

谢谢

您如何检查表中的值?您可以按日期、时间排序,以便按顺序查看它们。不要将数据/查询的可视输出误认为它存储在SQL数据库中的实际顺序。过于简化:SQL不以任何特定顺序存储(新)行。相反,新数据存储在“合适的地方”。如果您希望查询结果按特定顺序排序,SQL使用
order BY
和/或
GROUP BY
子句提供了必要的方法。您如何检查表中的值?您可以按日期、时间排序,以便按顺序查看它们。不要将数据/查询的可视输出误认为它存储在SQL数据库中的实际顺序。过于简化:SQL不以任何特定顺序存储(新)行。相反,新数据存储在“合适的地方”。如果希望查询结果按特定顺序排序,SQL提供了必要的方法,使用
order BY
和/或
GROUP BY
子句。