【转】aardio通过DmProvider.dll操作达梦数据库

光庆 2023-7-28 998

转自:庄.园

于 2022-03-29 20:38:13 发布

————————————————

版权声明:本文为CSDN博主「庄.园」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zhuang8750/article/details/123831313


前面发了aardio通过ODBC操作达梦数据库,感觉还是不方便,需要安装ODBC驱动,下面利用DmProvider.dll操作达梦数据库。

在光庆的指导下,简单封装了一个库,代码如下:

//dm
import dotNet;
class dm {
ctor(server,database,UserId,PWD){
this.conn = _dm.DmConnection("server="++server++";database="++database++";User Id="++UserId++";PWD="++PWD);
if this.conn this.conn.Open()
};
query = function(strCmd){
if !this.conn return ;
var cmd = _dm.DmCommand(strCmd, this.conn);
var rs = cmd.ExecuteReader();
return rs;
}
exec = function(strCmd){
if !this.conn return ;
var cmd = _dm.DmCommand(strCmd, this.conn);
if cmd return cmd.ExecuteNonQuery();
}
}
namespace dm {
_dll = ..dotNet.loadFile($ "\lib\dm\DmProvider.dll"); //导入程序集文件
_dm = _dll.import("Dm"); //导入程序集中的名字空间或类
} 

操作实例代码如下:.

import console;
import dm;
var dm=dm("localhost","DMHR","SYSDBA","zzb123456")
var rs=dm.query("select * from DMHR.EMPLOYEE")
var b={}
var n=0
while (rs.Read()) {
var a = {};
for(i=0;10;1){
a[i] = rs.GetString(i);
}
n=n+1;
b[n]={a}
}
console.dump(b)
rs.Close();
//更新
dm.exec("update DMHR.EMPLOYEE set EMAIL='333@163.COM' where EMPLOYEE_NAME='马学铭'")
console.log("更新成功!")
console.pause();
//删除
dm.exec("delete DMHR.EMPLOYEE where EMPLOYEE_NAME='林子程'")
console.log("删除成功!")
console.pause(); 

最新回复 (0)
返回