使用SQLDMO从SQLServer中获取信息

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

提要:

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的内容。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航