标题: 使用SQLDMO从SQL Server中获取信息
问天
元帅
Rank: 1


元帅勋章 终身成就勋章
UID 11493
精华 187
积分 34201
帖子 33353
威望 91
金币 13148
热心 2617
阅读权限 100
注册 2006-4-7
状态 离线
使用SQLDMO从SQL Server中获取信息

提要:
ms sql server提供了一个非常方便的COM组件“SQLDMO”来帮助我们获取和管理SQL Server。在这里提供一些想法和实现
系统要求:
windows2000server
vs.net rc3
sql server 2000
正文:
1.在.NET中使用sqldmo.dll
path :>tlbimp sqldmo.dll /out : rc3sqldmo.dll
创建一个新的C#项目(winform, library....),添加引用,选择Browse,找到rc3sqldmo.dll,加入。
2.查看rc3sqldmo.dll的结构
打开object view,选择rc3sqldmo,你能浏览所有的属性、方法和事件的定义。
3.使用rc3sqldmo
    获得连接
            rc3sqldmo.sqlserver2 mysqlsvr = new rc3sqldmo.sqlserver2class();

mysqlsvr .connect("sqlservername","uid","pws");
    获得数据库信息

rc3sqldmo.databases mydbs=mysqlsvr.databases;
rc3sqldmo.database2 mydb =new rc3sqldmo.database2class();
mydb=mydbs.item("dbname","owner"); 或mydb=mysqlsvr.databases.item("dbname","owner");  
   获得表和字段的信息

rc3sqldmo.Tables mytbls= mysqlsvr.databases.item("dbname","owner").tables;
rc3sqldmo.table2 mytbl = new rc3sqldmo.table2class();
mytbl = mytbls.item("tablename","owner");或
mytbl = mysqlsvr.databases.item("dbname","owner").tables.item("tablename","owner");
string[3] mylist = new string[3];
rc3sqldmo.column2 myfield = new rc3sqldmo.column2class();
foreach(object o in mytbl.columns)
{   
        myfield = (rc3sqldmo.column2) o;
        mylist[0]=myfield.name;
       mylist[1] = myfield.datatype;
      mylist[2] =myfield.length.tostring();
}
获得存储过程的信息:


rc3sqldmo.storedprecudure2 mysp = new rc3sqldmo.storedprecudure2class();
mysp =mysqlsvr.batabase.itrm("dbname",owner).storedprecudures.item[B("spname",owner)]  
用途的讨论::

动态管理sql server
动态获得table,storedprecudure的结构信息
还能增加,修改所有sql server object的内容。

网友 问天 签名 - 网友社区 请您回个帖。谢谢
PR查询 免费域名 免费空间
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-12 00:52
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP