1金币
我用的是新中大的一个ERP也是使用SAP的一个数据库 希望能也支持至存储过程 ,这个跟orcal是类似的
开发的端口以及说明文档如下
http://dcx.sap.com/index.html#12 ... et-development.html
- 使用存储过程
- 可以将存储过程用于 SQL Anywhere .NET 数据提供程序。ExecuteReader 方法用于调用返回结果集的存储过程,而 ExecuteNonQuery 方法用于调用不返回结果集的存储过程。ExecuteScalar 方法用于调用仅返回单个值的存储过程。
- 调用存储过程前,必须先创建 SAParameter 对象。使用问号作为参数的占位符,如下所示:
- sp_producttype( ?, ? )
- 有关 Parameter 对象的详细信息,请参见SAParameter 类。
- ♦ 执行存储过程
- 1.声明并初始化一个 SAConnection 对象。
- SAConnection conn = new SAConnection(
- "Data Source=SQL Anywhere 12 Demo" );
- 2.打开该连接。
- conn.Open();
- 3.添加一个 SACommand 对象,以定义并执行一条 SQL 语句。以下代码使用 CommandType 属性将语句标识为存储过程。
- SACommand cmd = new SACommand( "ShowProductInfo",
- conn );
- cmd.CommandType = CommandType.StoredProcedure;
- 如果不指定 CommandType 属性,则必须使用问号作为参数的占位符,如下所示:
- SACommand cmd = new SACommand(
- "call ShowProductInfo(?)", conn );
- cmd.CommandType = CommandType.Text;
- 4.添加一个 SAParameter 对象以定义存储过程的参数。必须为存储过程需要的每个参数创建一个新的 SAParameter 对象。
- SAParameter param = cmd.CreateParameter();
- param.SADbType = SADbType.Int32;
- param.Direction = ParameterDirection.Input;
- param.Value = 301;
- cmd.Parameters.Add( param );
- 有关 Parameter 对象的详细信息,请参见SAParameter 类。
- 5.调用 ExecuteReader 方法以返回 DataReader 对象。Get 方法用于以指定的数据类型返回结果。
- SADataReader reader = cmd.ExecuteReader();
- reader.Read();
- int ID = reader.GetInt32(0);
- string name = reader.GetString(1);
- string description = reader.GetString(2);
- decimal price = reader.GetDecimal(6);
- 6.关闭 SADataReader 和 SAConnection 对象。
- reader.Close();
- conn.Close();
- 调用存储过程的替代方法
- 上述说明的第 3 步介绍了两种调用存储过程的方法。另外一种不使用 Parameter 对象而调用存储过程的方法是从源代码调用存储过程,如下所示:
- SACommand cmd = new SACommand(
- "call ShowProductInfo( 301 )", conn );
[color=rgb(137, 92, 220) !important]复制代码
[color=rgb(137, 92, 220) !important]
|
|