WINCC6.2下C脚本访问SQL SERVER 存储过程

各位老师和朋友:
   
    我现在需要在WINCC6.2下用C脚本访问SQL SERVER 存储过程(有输入输出参数)。

 想请各位老师和朋友提供一个完整的访问语句(C脚本),谢谢!!!
 

问题补充:
dcount107:

   您好!
       非常感谢您的指导,那如果添加“输出参数”,方法应该和添加“输入参数”一样,是不是要特别指明它是输出。又该如何写呢,请指教。我刚学习,实在是不好意思。

最佳答案

数据导出和存储过程是两码事,不要混为一谈。

  要访问存储过程,必然要使用ADODB.Command对象,而C脚本似乎无法使用oComm->ActiveConnection = oConn;这样的语句来指定连接(至少我试过是这样的),因此走C脚本行不通。

  下面是一个例子,用于访问带一个参数的存储过程:
  ----------------------------
  '数据库名称:ProTest    表名:USERNAME  字段1:USERID 字段2:USERNAME
  '#存储过程:'
  'CREATE PROCEDURE DelUser 
  '  @UserID Int
  '  As
  '        DELETE FROM USERNAME WHERE USERID = @UserID      
  Dim oConn,oComm,oPara
  Set oConn = CreateObject("ADODB.Connection")
  Set oComm = CreateObject("ADODB.Command")
  Set oPara = CreateObject("ADODB.Parameter")

  Dim strConn
  strConn="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=ProTest"
  oConn.Open strConn '连接数据库
  HMIRuntime.Trace "SQL Connecting OK!" & vbCrLf

   oComm.ActiveConnection = oConn
      oComm.CommandType =&H0004 'adCmdStoredProc  '类型为存储过程,相当于调用SQL SERVER预设的函数
      oComm.CommandText = "DelUser"   '指定存储过程名称
      Set oPara = oComm.CreateParameter("USERID", 3,&H0001 , 4) '添加1个参数 3--adInteger,&H0001--adParamInput
      oPara.Value = 2  '设置参数值(即欲删除的UserID)
      oComm.Parameters.Append oPara  '添加
      oComm.Execute  '执行命令
  Set oPara= Nothing
  Set oComm= Nothing
  oConn.Close
  Set oConn = Nothing

 -------------------------
 补充:肯定要指定类型的啊,&H0002代表adParamOutput,比如:
 Set oParaOut = oComm.CreateParameter("TotleCount", 3,&H0002 , 4) 
 ....
 ....
 MsgBox oParaOut.Value

提问者对于答案的评价:
很详细,非常感谢!
 以后有问题还要请教您啊!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐