none
VB中如何用带点(“.”)的参数调用函数? RRS feed

  • 问题

  • 代码如下:

    程序块
    Dim sql As String
    sql = "select phdsql.Snapshot(" & DcsTag & ",to_date('" & PHDsqlDatetime & "','yyyy-mm-dd HH24:MI:SS'),null) from dual"
    rs.Open sql, conn

     

    当运行到最后一一句“rs.Open sql, conn”时提示:
    运行时错误'-2147217900(80040e14)':
    ORA-00904: "ETU1_FC1061"."PV": invalid identifier
    而“DcsTag”参数我传的是"ETU1_FC1061.PV"。包括点在内是一个整体。

    "ETU1_FC1061.PV"为数据库中一条记录中某一字段的值。
    这一问题我也问过其它的网友。刚开始我认为是sql语句的问题。可他们说这是VB产生的问题。因为vb会把点后的东西当作属性,前面的当作对象来处理。
    传入的参数必须是带点的。数据库是不能动的。而函数phdsql.Snapshot是系统的数据库中预定义的函数。也不能改。请各位朋友帮忙。
    2008年1月11日 1:27

答案

  • 把sql的值拿出来直接到Oracle运行看看

     

     

    2008年1月11日 1:57
    版主
  • 问题解决了。sql字符串中DcsTag用一对单引号括起来就好了。谢谢大家的帮忙。

    程序块

    sql = "select phdsql.Snapshot('" & DcsTag & "',to_date('" & PHDsqlDatetime & "','yyyy-mm-dd HH24:MI:SS'),null) from dual"

     

     

    2008年1月11日 2:46

全部回复

  • 把sql的值拿出来直接到Oracle运行看看

     

     

    2008年1月11日 1:57
    版主
  • 问题解决了。sql字符串中DcsTag用一对单引号括起来就好了。谢谢大家的帮忙。

    程序块

    sql = "select phdsql.Snapshot('" & DcsTag & "',to_date('" & PHDsqlDatetime & "','yyyy-mm-dd HH24:MI:SS'),null) from dual"

     

     

    2008年1月11日 2:46