Home All Groups Group Topic Archive Search About

What I want in ADO.NET 3.0

Author
13 Dec 2006 6:42 PM
David Thielen
Hi;

I think the following would be a gigantic help for a lot of people (all
being standard calls so we do not have to write selects on a per vendor
basis):

1. Enumerate servers works for all ADO.NET clients (ie - it's a required
feature).
2. For a given server - enumerate all databases (schemas in Oracle's case).
3. For a given database/schema - enumerate all tables, views, and stored
procedures - can filter by user vs system ones.
4. For a table/view - get all columns.
5. Get an autocreated primary key from an insert.
6. Create a connection string form standard parameters (server, database,
uname/pw or truested).
7. Run a script (to create a database, etc). The script would be vendor
specific but being able to just pass in a script would be very useful.
8. Enumerate all users in a database, create a user, assign a user to a
created database. (I know this one may be a bit more than is doable yet.)

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm

Author
13 Dec 2006 7:34 PM
Miha Markic [MVP C#]
Hi David,

Show quote
"David Thielen" <thielen@nospam.nospam> wrote in message
news:E79963DF-BD1A-4FF1-8A2C-B94135A4FC3A@microsoft.com...
> Hi;
>
> I think the following would be a gigantic help for a lot of people (all
> being standard calls so we do not have to write selects on a per vendor
> basis):
>
> 1. Enumerate servers works for all ADO.NET clients (ie - it's a required
> feature).
> 2. For a given server - enumerate all databases (schemas in Oracle's
> case).
> 3. For a given database/schema - enumerate all tables, views, and stored
> procedures - can filter by user vs system ones.
> 4. For a table/view - get all columns.

All of the above depend on the provider, specially enumeration of servers.
Also, there is DbConneciton.GetSchema where you can find 2-4.

> 5. Get an autocreated primary key from an insert.

Depends on the database.

> 6. Create a connection string form standard parameters (server, database,
> uname/pw or truested).

Depends on the provider. There are already Sql, Oracle, OleDb and Odbc
ConnectionStringBuilders.

> 7. Run a script (to create a database, etc). The script would be vendor
> specific but being able to just pass in a script would be very useful.

A script is usually a bunch of sql statements you can execute using
DbCommand class.

> 8. Enumerate all users in a database, create a user, assign a user to a
> created database. (I know this one may be a bit more than is doable yet.)

You have resort to database specific voodoos as each database treats them
differently.

BTW, perhaps a better place (there are MS guys partecipating) to discuss
ado.net 3 features is here:
http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=533&SiteID=1

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/
Author
13 Dec 2006 7:49 PM
David Thielen
Hi;

On 2 - 4 I've tried that and it works in some cases but it's not something
you can depend on. And the documentation is non-existent on what to pass in
so it takes a ton of guesswork.

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm




Show quote
"Miha Markic [MVP C#]" wrote:

> Hi David,
>
> "David Thielen" <thielen@nospam.nospam> wrote in message
> news:E79963DF-BD1A-4FF1-8A2C-B94135A4FC3A@microsoft.com...
> > Hi;
> >
> > I think the following would be a gigantic help for a lot of people (all
> > being standard calls so we do not have to write selects on a per vendor
> > basis):
> >
> > 1. Enumerate servers works for all ADO.NET clients (ie - it's a required
> > feature).
> > 2. For a given server - enumerate all databases (schemas in Oracle's
> > case).
> > 3. For a given database/schema - enumerate all tables, views, and stored
> > procedures - can filter by user vs system ones.
> > 4. For a table/view - get all columns.
>
> All of the above depend on the provider, specially enumeration of servers.
> Also, there is DbConneciton.GetSchema where you can find 2-4.
>
> > 5. Get an autocreated primary key from an insert.
>
> Depends on the database.
>
> > 6. Create a connection string form standard parameters (server, database,
> > uname/pw or truested).
>
> Depends on the provider. There are already Sql, Oracle, OleDb and Odbc
> ConnectionStringBuilders.
>
> > 7. Run a script (to create a database, etc). The script would be vendor
> > specific but being able to just pass in a script would be very useful.
>
> A script is usually a bunch of sql statements you can execute using
> DbCommand class.
>
> > 8. Enumerate all users in a database, create a user, assign a user to a
> > created database. (I know this one may be a bit more than is doable yet.)
>
> You have resort to database specific voodoos as each database treats them
> differently.
>
> BTW, perhaps a better place (there are MS guys partecipating) to discuss
> ado.net 3 features is here:
> http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=533&SiteID=1
>
> --
> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
> RightHand .NET consulting & development www.rthand.com
> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
>
Author
13 Dec 2006 8:13 PM
Miha Markic [MVP C#]
You should check out OleDb's (native, not .net) provider similar method - it
takes same parameters and spits out same data.

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Show quote
"David Thielen" <thielen@nospam.nospam> wrote in message
news:B5D2F0D3-9EFC-4EA5-8C5C-ED56EF8E49C2@microsoft.com...
> Hi;
>
> On 2 - 4 I've tried that and it works in some cases but it's not something
> you can depend on. And the documentation is non-existent on what to pass
> in
> so it takes a ton of guesswork.
>
> --
> thanks - dave
> david_at_windward_dot_net
> http://www.windwardreports.com
>
> Cubicle Wars - http://www.windwardreports.com/film.htm
>
>
>
>
> "Miha Markic [MVP C#]" wrote:
>
>> Hi David,
>>
>> "David Thielen" <thielen@nospam.nospam> wrote in message
>> news:E79963DF-BD1A-4FF1-8A2C-B94135A4FC3A@microsoft.com...
>> > Hi;
>> >
>> > I think the following would be a gigantic help for a lot of people (all
>> > being standard calls so we do not have to write selects on a per vendor
>> > basis):
>> >
>> > 1. Enumerate servers works for all ADO.NET clients (ie - it's a
>> > required
>> > feature).
>> > 2. For a given server - enumerate all databases (schemas in Oracle's
>> > case).
>> > 3. For a given database/schema - enumerate all tables, views, and
>> > stored
>> > procedures - can filter by user vs system ones.
>> > 4. For a table/view - get all columns.
>>
>> All of the above depend on the provider, specially enumeration of
>> servers.
>> Also, there is DbConneciton.GetSchema where you can find 2-4.
>>
>> > 5. Get an autocreated primary key from an insert.
>>
>> Depends on the database.
>>
>> > 6. Create a connection string form standard parameters (server,
>> > database,
>> > uname/pw or truested).
>>
>> Depends on the provider. There are already Sql, Oracle, OleDb and Odbc
>> ConnectionStringBuilders.
>>
>> > 7. Run a script (to create a database, etc). The script would be vendor
>> > specific but being able to just pass in a script would be very useful.
>>
>> A script is usually a bunch of sql statements you can execute using
>> DbCommand class.
>>
>> > 8. Enumerate all users in a database, create a user, assign a user to a
>> > created database. (I know this one may be a bit more than is doable
>> > yet.)
>>
>> You have resort to database specific voodoos as each database treats them
>> differently.
>>
>> BTW, perhaps a better place (there are MS guys partecipating) to discuss
>> ado.net 3 features is here:
>> http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=533&SiteID=1
>>
>> --
>> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
>> RightHand .NET consulting & development www.rthand.com
>> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
>>
Author
13 Dec 2006 9:16 PM
David Thielen
Yes we used that and that got us quite a ways. But it's not 100% from what we
have seen. I think it was DB2 where it wasn't returning stored procedures and
views - or something like that.

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm




Show quote
"Miha Markic [MVP C#]" wrote:

> You should check out OleDb's (native, not .net) provider similar method - it
> takes same parameters and spits out same data.
>
> --
> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
> RightHand .NET consulting & development www.rthand.com
> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
>
> "David Thielen" <thielen@nospam.nospam> wrote in message
> news:B5D2F0D3-9EFC-4EA5-8C5C-ED56EF8E49C2@microsoft.com...
> > Hi;
> >
> > On 2 - 4 I've tried that and it works in some cases but it's not something
> > you can depend on. And the documentation is non-existent on what to pass
> > in
> > so it takes a ton of guesswork.
> >
> > --
> > thanks - dave
> > david_at_windward_dot_net
> > http://www.windwardreports.com
> >
> > Cubicle Wars - http://www.windwardreports.com/film.htm
> >
> >
> >
> >
> > "Miha Markic [MVP C#]" wrote:
> >
> >> Hi David,
> >>
> >> "David Thielen" <thielen@nospam.nospam> wrote in message
> >> news:E79963DF-BD1A-4FF1-8A2C-B94135A4FC3A@microsoft.com...
> >> > Hi;
> >> >
> >> > I think the following would be a gigantic help for a lot of people (all
> >> > being standard calls so we do not have to write selects on a per vendor
> >> > basis):
> >> >
> >> > 1. Enumerate servers works for all ADO.NET clients (ie - it's a
> >> > required
> >> > feature).
> >> > 2. For a given server - enumerate all databases (schemas in Oracle's
> >> > case).
> >> > 3. For a given database/schema - enumerate all tables, views, and
> >> > stored
> >> > procedures - can filter by user vs system ones.
> >> > 4. For a table/view - get all columns.
> >>
> >> All of the above depend on the provider, specially enumeration of
> >> servers.
> >> Also, there is DbConneciton.GetSchema where you can find 2-4.
> >>
> >> > 5. Get an autocreated primary key from an insert.
> >>
> >> Depends on the database.
> >>
> >> > 6. Create a connection string form standard parameters (server,
> >> > database,
> >> > uname/pw or truested).
> >>
> >> Depends on the provider. There are already Sql, Oracle, OleDb and Odbc
> >> ConnectionStringBuilders.
> >>
> >> > 7. Run a script (to create a database, etc). The script would be vendor
> >> > specific but being able to just pass in a script would be very useful.
> >>
> >> A script is usually a bunch of sql statements you can execute using
> >> DbCommand class.
> >>
> >> > 8. Enumerate all users in a database, create a user, assign a user to a
> >> > created database. (I know this one may be a bit more than is doable
> >> > yet.)
> >>
> >> You have resort to database specific voodoos as each database treats them
> >> differently.
> >>
> >> BTW, perhaps a better place (there are MS guys partecipating) to discuss
> >> ado.net 3 features is here:
> >> http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=533&SiteID=1
> >>
> >> --
> >> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
> >> RightHand .NET consulting & development www.rthand.com
> >> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
> >>
>
Author
13 Dec 2006 10:01 PM
Miha Markic [MVP C#]
Yes, I agree that it is a hassle and one have to do some tests to see what
it actually returns..

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Show quote
"David Thielen" <thielen@nospam.nospam> wrote in message
news:A3CFFE5F-4411-4ED0-8D9A-98D943A2B592@microsoft.com...
> Yes we used that and that got us quite a ways. But it's not 100% from what
> we
> have seen. I think it was DB2 where it wasn't returning stored procedures
> and
> views - or something like that.
>
> --
> thanks - dave
> david_at_windward_dot_net
> http://www.windwardreports.com
>
> Cubicle Wars - http://www.windwardreports.com/film.htm
>
>
>
>
> "Miha Markic [MVP C#]" wrote:
>
>> You should check out OleDb's (native, not .net) provider similar method -
>> it
>> takes same parameters and spits out same data.
>>
>> --
>> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
>> RightHand .NET consulting & development www.rthand.com
>> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
>>
>> "David Thielen" <thielen@nospam.nospam> wrote in message
>> news:B5D2F0D3-9EFC-4EA5-8C5C-ED56EF8E49C2@microsoft.com...
>> > Hi;
>> >
>> > On 2 - 4 I've tried that and it works in some cases but it's not
>> > something
>> > you can depend on. And the documentation is non-existent on what to
>> > pass
>> > in
>> > so it takes a ton of guesswork.
>> >
>> > --
>> > thanks - dave
>> > david_at_windward_dot_net
>> > http://www.windwardreports.com
>> >
>> > Cubicle Wars - http://www.windwardreports.com/film.htm
>> >
>> >
>> >
>> >
>> > "Miha Markic [MVP C#]" wrote:
>> >
>> >> Hi David,
>> >>
>> >> "David Thielen" <thielen@nospam.nospam> wrote in message
>> >> news:E79963DF-BD1A-4FF1-8A2C-B94135A4FC3A@microsoft.com...
>> >> > Hi;
>> >> >
>> >> > I think the following would be a gigantic help for a lot of people
>> >> > (all
>> >> > being standard calls so we do not have to write selects on a per
>> >> > vendor
>> >> > basis):
>> >> >
>> >> > 1. Enumerate servers works for all ADO.NET clients (ie - it's a
>> >> > required
>> >> > feature).
>> >> > 2. For a given server - enumerate all databases (schemas in Oracle's
>> >> > case).
>> >> > 3. For a given database/schema - enumerate all tables, views, and
>> >> > stored
>> >> > procedures - can filter by user vs system ones.
>> >> > 4. For a table/view - get all columns.
>> >>
>> >> All of the above depend on the provider, specially enumeration of
>> >> servers.
>> >> Also, there is DbConneciton.GetSchema where you can find 2-4.
>> >>
>> >> > 5. Get an autocreated primary key from an insert.
>> >>
>> >> Depends on the database.
>> >>
>> >> > 6. Create a connection string form standard parameters (server,
>> >> > database,
>> >> > uname/pw or truested).
>> >>
>> >> Depends on the provider. There are already Sql, Oracle, OleDb and Odbc
>> >> ConnectionStringBuilders.
>> >>
>> >> > 7. Run a script (to create a database, etc). The script would be
>> >> > vendor
>> >> > specific but being able to just pass in a script would be very
>> >> > useful.
>> >>
>> >> A script is usually a bunch of sql statements you can execute using
>> >> DbCommand class.
>> >>
>> >> > 8. Enumerate all users in a database, create a user, assign a user
>> >> > to a
>> >> > created database. (I know this one may be a bit more than is doable
>> >> > yet.)
>> >>
>> >> You have resort to database specific voodoos as each database treats
>> >> them
>> >> differently.
>> >>
>> >> BTW, perhaps a better place (there are MS guys partecipating) to
>> >> discuss
>> >> ado.net 3 features is here:
>> >> http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=533&SiteID=1
>> >>
>> >> --
>> >> Miha Markic [MVP C#, INETA Country Leader for Slovenia]
>> >> RightHand .NET consulting & development www.rthand.com
>> >> Blog: http://cs.rthand.com/blogs/blog_with_righthand/
>> >>
>>
Author
15 Dec 2006 7:33 AM
WenYuan Wang
Hi Dave

According to your description, I understand that you have some suggestions
on ADO.net and look forward to the next version of ADO.net (3.0)
incorporating these features.
If I misunderstood anything here, please don't hesitate to correct me.

Thanks for your feedback.

As you mentioned, ADO.net 2.0 is not as smart as we expected and there are
some known issues when it is used to connect to Oracle and DB2.

But I think our product team must be working hard to resolve these issues.
Any suggestions from our customers will be appreciated

Would you mind submitting this feedback to our product feedback center,
http://connect.microsoft.com/site/sitehome.aspx?SiteID=210,
so that our development team can get it from there.

If there is anything I can help with, please feel free to reply me. We will
follow up.
I'm glad to work with you.
Best regards,
Wen Yuan

AddThis Social Bookmark Button