This is a discussion on SQL-DMO and C#: retrieve the list of User-Defined Functions within the SQL Server forums, part of the Microsoft SQL Server category; --> http://www.csharphelp.com/archives2/archive342.html I am using the sample code from this link but I am unable to figure out how to ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| http://www.csharphelp.com/archives2/archive342.html I am using the sample code from this link but I am unable to figure out how to retrieve the list of the User-Defined Functions. I am able to get the count of the user defined functions correctly using: db.ListObjects(SQLDMO.SQLDMO_OBJECT_TYPE.SQLDMOObj _UserDefinedFunction, SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name).Cou nt but I am unable to get to enumerate the function names. Then I tried to see if I can achieve what I want using SQLObjectList but I was unsuccessful. Does someone know how I can do this using C#? Thank you This is the full code I have: private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { this.Cursor = Cursors.WaitCursor; SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass(); srv.Connect(this.cboServers.SelectedItem.ToString( ), this.txtUser.Text, this.txtPassword.Text); for (int i = 0; i < srv.Databases.Count; i++) { if (srv.Databases.Item(i + 1, "dbo").Name == this.cboDatabase.SelectedItem.ToString()) { SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo"); this.lstObjects.Items.Clear(); SQLDMO.SQLObjectList sqludf; sqludf = db.ListObjects(SQLDMO.SQLDMO_OBJECT_TYPE.SQLDMOObj _UserDefinedFunction, SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name); for (int j = 0; j < sqludf.Count; j++) { //this.lstObjects.Items.Add(db.ListObjects(SQLDMO.SQ LDMO_OBJECT_TYPE.SQLDMOObj_UserDefinedFunction, SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name).Ite m(j + 1, "dbo").Name); } this.Cursor = Cursors.Default; return; } } this.Cursor = Cursors.Default; } |
| |||
| hi, serge wrote: > http://www.csharphelp.com/archives2/archive342.html > > I am using the sample code from this link but I am > unable to figure out how to retrieve the list of > the User-Defined Functions. I am able to get the > count of the user defined functions correctly using: > > db.ListObjects(SQLDMO.SQLDMO_OBJECT_TYPE.SQLDMOObj _UserDefinedFunction, > SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name).Cou nt > > but I am unable to get to enumerate the function names. > > Then I tried to see if I can achieve what I want using > SQLObjectList but I was unsuccessful. > > Does someone know how I can do this using C#? > > Thank you > > This is the full code I have: > > private void linkLabel5_LinkClicked(object sender, > LinkLabelLinkClickedEventArgs e) > { > this.Cursor = Cursors.WaitCursor; > SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass(); > srv.Connect(this.cboServers.SelectedItem.ToString( ), > this.txtUser.Text, this.txtPassword.Text); > for (int i = 0; i < srv.Databases.Count; i++) > { > if (srv.Databases.Item(i + 1, "dbo").Name == > this.cboDatabase.SelectedItem.ToString()) > { > SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo"); > this.lstObjects.Items.Clear(); > SQLDMO.SQLObjectList sqludf; > sqludf = > db.ListObjects(SQLDMO.SQLDMO_OBJECT_TYPE.SQLDMOObj _UserDefinedFunction, > SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name); > for (int j = 0; j < sqludf.Count; j++) > { > > //this.lstObjects.Items.Add(db.ListObjects(SQLDMO.SQ LDMO_OBJECT_TYPE.SQLDMOObj_UserDefinedFunction, > SQLDMO.SQLDMO_OBJSORT_TYPE.SQLDMOObjSort_Name).Ite m(j > + 1, "dbo").Name); } this.Cursor = Cursors.Default; > return; > } > } > this.Cursor = Cursors.Default; > } try using the SQLDMO.Database2 interface, as the original one does not provide functionnalities to access SQL Server 2000 new features.. -- Andrea Montanari (Microsoft MVP - SQL Server) http://www.asql.biz/DbaMgr.shtm http://italy.mvps.org DbaMgr2k ver 0.18.0 - DbaMgr ver 0.62.0 (my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual interface) --------- remove DMO to reply |
| |||
| Hi Serge, As well as using SQLDMO, you could also query the built-in sysobjects table to get the names of your UDFs, e.g. SELECT [name] AS [UDF Name] FROM sysobjects WHERE xtype = 'FN' or xtype = 'IF' ORDER BY [name] FN = Scalar function IF = In-lined table-function HTH, Chris |
| |||
| Thank you Chris. I would still hope someone knows how to achieve this using SQL-DMO. Obviously using SQL-DMO I am able to get the count of the user-defined functions so I am hoping someone who knows C# and/or SQL-DMO would be able to tell me what I need to write to make this code show me the function name or the SQL object name using SQLObjects.. |