不安装客户端连Oracle数据库--ddtek.oracle.dll使用时注意

转自:http://blog.csdn.net/rrrrssss00/article/details/5757301

ddtek.oracle.dll 可以不安装Oracle客户端,直接使用其来登录Oracle服务器,

 

使用上,与OracleClient基本相同,但在OracleCommand的Parameter定义和使用上略有不同,如下:

 

OracleClient:

[c-sharp] view plain copy print ?
  1.  OracleCommand mCmd = new OracleCommand("insert into " + sTable + "(test1,test2) values('111',:mBlob)", mCon);  
  2.  mCmd.Parameters.Add("mBlob", OracleType.Blob, blob.Length).Value = blob;  
  3. return mCmd.ExecuteNonQuery();  

OracleCommand mCmd = new OracleCommand("insert into " + sTable + "(test1,test2) values('111',:mBlob)", mCon); mCmd.Parameters.Add("mBlob", OracleType.Blob, blob.Length).Value = blob; return mCmd.ExecuteNonQuery();

 

ddtek

[c-sharp] view plain copy print ?
  1. OracleCommand mCmd = new OracleCommand("insert into " + sTable + "(test1,test2) values('111',?)", mCon);  
  2. mCmd.BindByName = true;  
  3. mCmd.Parameters.Add(":mBlob", OracleDbType.Blob, blob.Length).Value = blob;  
  4. return mCmd.ExecuteNonQuery();  

OracleCommand mCmd = new OracleCommand("insert into " + sTable + "(test1,test2) values('111',?)", mCon); mCmd.BindByName = true; mCmd.Parameters.Add(":mBlob", OracleDbType.Blob, blob.Length).Value = blob; return mCmd.ExecuteNonQuery();  

 

DDTEK里,SQL语句中使用?代替变量,下边按照Parameters数组中的顺序依次赋值

 

转自:http://www.cnblogs.com/zhahost/archive/2012/05/18/2508085.html

今天发现一个好东西:DataDirect(DDTek),官方网站:http://www.datadirect.com

ddtek.oracle.dll 可以不安装Oracle客户端,直接使用其来登录Oracle服务器,

 

数据库连接(后面一种为双机集群):

var conn = new DDTek.Oracle.OracleConnection();
conn.ConnectionString = "Host=172.16.1.32;Port=1521;User ID=slmesuser;Password=slmesuser;Service Name=tqmes";
conn.Open();
string conStr = "Host=10.0.1.1;Port=1521;User ID=scott;Password=tiger; Service Name=ORCL;Alternate Servers=(Host=10.0.1.2;Port=1521;Service Name=ORCL)";

访问数据库方式和其他的类似:

复制代码
var cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from tb_factory";
//cmd.CommandTimeout = 500000;

var reader = cmd.ExecuteReader();
var dtable = new DataTable("mytable");
dtable.Load(reader);
conn.Close();
复制代码

 

性能方面,因为其原理是底层接收并解析oracle通讯包,所以说比较好,有人测试过。但我测试一个负责视图查询(视图套视图,10个左右),查询和ODP.NET类似。

DDTek不是免费的,可以试用一段时间,不过加密方式不敢恭维。可以采取改变licence文件来达到破解效果。

备用下载:http://files.cnblogs.com/zhahost/DDTek.Oracle.zip

 

你可能感兴趣的:(oracle)