wincc脚本将数据写入SQL不成功

C脚本可以写入浮点数,但无法写入字符串,VB脚本估计是连接数据库语句问题,数据库用的windows授权连接,怎么设定VB的UID和PWD,C脚本怎么写入字符串?
VB脚本:
Sub OnClick(Byval Item)       
'Private cn As ADODB.Connection
'Private rs As ADODB.Recordset
'Private Sub insertData(nowValue As Double)
Dim database,server
Dim strcn,cn,rs,com
Dim is_SQL
Dim DateTime,Login,Te
Set cn=CreateObject("ADODB.connection")
Set rs=CreateObject("ADODB.Recordset")
Set com=CreateObject("ADODB.Command")
DateTime=Now
Set Te=HMIRuntime.Tags("S7$Program(3)/IVIG_BATCHNO.BATCH_NO01")
Te.Read
Set server=HMIRuntime.Tags("@ServerName")
server.Read
Is_SQL="insert into guf(test2) values('"& Te.Value &"')"
'server=server.Value & "\WINCC"
'database="test"
strcn="Provider=MSDASQL;DSN=test;UID=;PWD="
'strcn="provider=SQLOLEDB.1;DRIVER=SQL SERVER;SERVER="& SERVER &";DATABASE="& database &";UID=;PWD="
'strcn="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=test"
'strcn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=(local)\\\wincc"
cn.ConnectionString=strcn
cn.Open
com.ActiveConnection=cn
com.CommandText = Is_SQL
com.Execute
Set com = Nothing
'HMIRuntime.DataSet.Add"cn",cn
cn.Execute is_SQL
cn.Close
Set rs = Nothing
Set com = Nothing

End Sub

C脚本:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

__object  *cn=NULL ;
__object  *rs  =NULL;


{
char  *connstr="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=(local)\\\wincc";
char sql[80];
char sql1[80];
char sql2[80];

float spd;//test tag
char *test;
cn=__object_create("ADODB.Connection");
 rs=__object_create("ADODB.RecordSet");
cn->ConnectionString = connstr;
cn->Open(connstr);

spd=GetTagFloat("TE201101/AI.U");
test=GetTagChar("S7$Program(3)/IVIG_BATCHNO.BATCH_NO01");
 if  (cn->State  ==  0)

    {
        MessageBox(NULL,"database connection fail!","warning",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
    }

sprintf(sql2,"insert into guf  (login)  values(%f)",Time);
rs->open(sql2,cn);
sprintf(sql,"insert into guf  (gw1)  values(%f)",spd);
MessageBox(NULL,sql2,NULL,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
sprintf(sql1,"insert into guf  values('%s')",test);
rs->open(sql,cn);
MessageBox(NULL,sql,NULL,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
if(cn->State  !=  0) 

{
    MessageBox(NULL," database connection secessful!","congratulations",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
rs->open(sql,cn);
rs->open(sql1,cn);
rs->open(sql2,cn);
//printf("\r\n%s",rs->Field("Temp"));
rs->close();     
 cn->Close();

__object_delete(rs);

__object_delete(cn);

}
}
}

最佳答案

vbs的资料参考:
WinCC/连通性软件包 V7.4
https://support.industry.siemens.com/cs/cn/zh/view/109736226
WinCC数据开放性
https://support.industry.siemens.com/cs/cn/zh/view/78682604
WinCC、Excel、VBA、脚本、连通性软件包
https://support.industry.siemens.com/cs/cn/zh/view/71676391
WinCC数据报表实现方法介绍
https://support.industry.siemens.com/cs/cn/zh/view/78668993
如何从SQL数据库中通过趋势归档输出变量?
https://support.industry.siemens.com/cs/cn/zh/view/44240726

提问者对于答案的评价:
提供的资料很全,不像有的人,全篇主观观点,毫无建设性,多谢!我阅读资料发现是我VB中调用ADO时,少写了一次连接语句,C中无法写入字符串还是无法解决,再研究一下。

最佳答案作者回复:
很高兴帮到你
我c语言水平也不行,有问题可以论坛交流

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc139032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日 上午1:55
下一篇 2017年6月1日 上午1:55

相关推荐

  • WINCC中的运行系统RT和组态,运行RC版有什么区别

    WINCC中的运行系统RT和组态`运行RC版有什么区别? 运行系统RT有什么功能? 组态`运行RC版有什么功能? 问题补充:我想再问下,是否RC和RT都要做好相…

    SIMATIC WinCC 2019年6月11日
  • 请问触摸屏PDZ文件和PACK&GO是什么?

    请问各位前辈触摸屏PDZ文件和PACK&GO是什么?是不是所有的触摸屏都是只有勾了回传和安装SD卡才能回传源组态吗?谢谢了! 最佳答案 那些操作面板支持上载,链接:http://w…

    SIMATIC WinCC 2017年6月29日
  • 什么是WINCC中的C动作?

    我想从上位机上做个带左右箭头的按钮,鼠标点击一下箭头指向左边显示自动(对应的变量M0.0为1),再点击一下箭头指向右边显示手动(对应的变量M0.0为0),好像可以组态按钮属性为C动…

    SIMATIC WinCC 2019年6月11日
  • WINCC C脚本为什么会死循环呢?

    我有这么一段C脚本,一执行就不动了,谁能给帮助解决一下? 具体代码如下: int i; for(i=1;i<=2;i++) …

    SIMATIC WinCC 2019年6月11日
  • wincc脚本控件的编写

    请问谁有wincc脚本控件编写教程啊,c和vb哪个用的多呢,谢谢了! 最佳答案 c和vb用的都挺多,看你自己熟悉哪个了。教程网上很多的,自己可以搜索下。 提问者对于答案的评价:谢谢…

    SIMATIC WinCC 2019年6月11日
  • WINCC V6.0SP2和SP3所附带SQL SERVER SP3是一样的么?

    最佳答案 不一样 提问者对于答案的评价:thanks

    SIMATIC WinCC 2019年6月11日
  • WinCC收发数据

    本人小白一枚,目前在做项目调研,想请教下在虚拟仿真环境中能否模拟网络通信在WinCC中收发数据。不胜感激 问题补充:补充:在PLCSIM中进行仿真,然后模拟WinCC和PLC之间的…

    SIMATIC WinCC 2020年11月1日
  • I/O域输出格式

    I/O域输出格式9999与09999有没有什么功能上的区别 9999显示出来是一个0 09999显示出来是0000 除了在外观上有区别以外有没有什么本…

    SIMATIC WinCC 2019年6月11日
  • 字幕滚动

    在WINCC中,怎样实现字幕滚动的效果,就像LED屏一样。 最佳答案 在PLC里写程序,利用移位指令,相关程序发给你了 提问者对于答案的评价:我想做的是,字母滚动,但根据各位前辈的…

    SIMATIC WinCC 2019年6月11日
  • win10操作系统下能否安装WinCC fIexible软件?

    win10操作系统下能否安装WinCC fIexible软件?如能,详细版本是什么? 最佳答案 WinccFlexible 2008 SP5可以安装在…

    2020年11月1日