使用输出参数从Informix中检索值

时间:2011-01-17 14:27:47

标签: c# ado.net informix

我需要使用输出参数对Informix数据库执行查询以检索所需的值。我已经尝试了许多不同的查询变体,但到目前为止还没有一个有效。我在文档中看到的唯一示例使用存储过程来获取结果,但在这种情况下,存储过程不是一个选项。

我正在尝试做的相关代码是:

        DB2Connection con = new DB2Connection(ConStr);
        DB2Command cmd = con.CreateCommand();

        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select ? = Column1 from Table1 where Table1.serial = 1";
        cmd.Parameters.Add("param", DB2Type.Integer).Direction = ParameterDirection.Output;

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        object o = cmd.Parameters["param"].Value;

这与我对SQL Server使用的查询相同,因为我不确定Informix的正确语法

我正在使用:
Visual Studio 2010
.NET Framework 2.0
Informix 11.5(DB2驱动程序,IBM.Data.DB2.dll)

通过更改查询并使用相应的ado.net驱动程序,我为Oracle和MS SQL Server工作的方法相同

甲骨文:

cmd.CommandType = CommandType.Text; 
cmd.CommandText = "BEGIN select Column1 INTO :param from Table1 where Table1.serial = 1; END;";
cmd.Parameters.Add(":param ", OracleDbType.Int32).Direction = ParameterDirection.Output;

SQL Server:

cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT @param = Column1 from Table1 where Table1.serial;";
cmd.Parameters.Add("@param", SqlDbType.Int).Direction = ParameterDirection.Output;

有没有人知道如果没有使用存储过程,informix是否可以实现这一点? cmd.ExecuteScalar();不是一个选项,因为正在使用的框架需要使用输出参数。

0 个答案:

没有答案