我需要使用输出参数对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();不是一个选项,因为正在使用的框架需要使用输出参数。