Sybase ASE数据库使用ADO.net访问存储过程方法详解

DotNet 同时被 2 个专栏收录
6 篇文章 0 订阅
99 篇文章 0 订阅

本文为本人(iihero)原创,如若转载,请尊重个人劳动,务必注明原始出处。

在ASE里使用ado.net,基本上常见的有两种方式,一种是使用oledb方式(dotnet系统框架自带),一种是直接使用ASE自带的adonet库来访问。想获取高性能,后者为佳。

而每种方式对store procedure的调用,也可以分两种模式,一种是显示指定这是调用存储过程,另一种是采取传统的存储过程调用文本方式:"{call test_proc(?, ?)}",这表示调用存储过程,带两个参数。

简单的SQL CUD操作或者SELECT查询,就不用介绍了,本文同样适合这些情形的处理。

下边是一个详细的示例,既有输出参数,同时又有输出的结果集。准备工作:
创建下述的表和示例存储过程:test_proc

 

 

示例程序:(总共4种访问方式)
重要提上边提到的两种调用模式。
还有一个是关于数据库的连接串:两个库的连接串是不一样的:
1. OLEDB
string oleString = @"Provider=Sybase.ASEOLEDBProvider;InitialCatalog=iihero;User Id=spring;Password=spring1;ServerName=sean-laptop;Network Protocol=Winsock;Server Port Address=5000";
这里我没有采用http://www.connectionstrings.com/上提到的oledb连接方式,如下:
Provider=Sybase.ASEOLEDBProvider;Srvr=myASEserver,5000;Catalog=myDataBase;User Id=myUsername;Password=myPassword;
而是直接采用机器名(Server Name),端口(Server Port Address),数据库(Initial Catalog), 用户(User Id), 密码(Password)的形式,一目了然,同时你也不用依赖于创建的数据源或者interfaces文件(sql.ini)

 

2. AseDotNet
string adoNetString = @"Data Source=sean-laptop;Port=5000;UID=spring;PWD=spring1;Database=iihero;";
这种方式比较简单,机器名(Data Source), 端口(Port),用户名(UID), 密码(PWD),数据库(Database)
也是含义非常明确。

不过,值得说明的是,本文采用的是AseClient的第二个版本:即$SYBASE/DataAccess/ADONET/dll/Sybase.AdoNet2.AseClient.dll而不是Sybase.Data.AseClient.dll。因为第二个版本的实现更容易使用。
Sybase.Data.AseClient.dll中都是直接实现接口类IDbConnection, IDbCommand之类,而第二个版本则是继承抽象类DbCoonnection, DbCommand。


实际上ASE的连接串还是非常简明的。
下边是实际验证时使用的代码。读者可以根据自己的喜好选择任意一种方式。

 

 

输出结果:
demo123
@s_count = 1
demo123
@s_count = 1
demo123
@s_count = 1
demo123
@s_count = 1

 

  • 0
    点赞
  • 7
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

iihero

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值