Re: getting a list of databases
Tim Bunce wrote: Changes in DBI 1.16,30th May 2001 Added note to data_sources() method docs that some drivers may require a connected database handle to be supplied as an attribute. With all due respect, Tim, this is completely ducking the issue. Yes, after a fashion it resolves the problem, rather like saying Under-age kids should not drink in pubs solves a problem. It doesn't really cut to the meat of the issue though -- the data_sources() method is not generally useful because the interface is incomplete. On Sun, Jun 10, 2001 at 03:36:12PM -0700, Jonathan Leffler wrote: Michael Peppler wrote: Curt Russell Crandall writes: I didn't have an Informix DB available at the time, but yes it does return a list of dbs with data_sources... however, Sybase does not as well as many others. DBD::Sybase could be made to return the list of known servers (from the interfaces file), but not the list of databases, as that requires connecting to each of the servers in the interfaces file (and we need to know user/pwd for each server, etc - gets a little hairy). We had a discussion about this on the dbi-users mailing list during February 2000, in the run-up to the release of DBI 1.14. Tim promised to look into it, but either came up with a negative decision without notifying us or (much more likely) overlooked a comparatively minor feature that only impacts a few database servers... == quote 1 == Subject: Re: DBI-data_sources() - assumption of anonymous user is a bug Date: Wed, 09 Feb 2000 20:41:54 -0800 From: Jonathan Leffler [EMAIL PROTECTED] To: Randall Whitman [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Randall Whitman wrote: We consider the assumption of an anonymous user to be a bug -- that is, the behavior that DBI-data_sources(mysql); returns an empty array because we do not have an anonymous user in MySQL. In other words, it should be possible to do one of the following: @databases = DBI-data_sources(mysql, USER, PASSWORD);## or... $dbh = DBI-connect(dbi:mysql:, USER, PASSWORD); @databases = $dbh-data_sources(mysql); I sympathize with this; the last remaining test the DBD::Informix 1.00 pre-releases sometimes skip (instead of failing as in earlier versions) is the data sources test, and it too is because there is no user information available even though it can be needed to connect to the database server to obtain the list of databases. I note in passing that if you do the connection first, DBD::Informix will generate a list of data sources OK, but the whole point of the data sources method is to find out what's available before formally connecting to one of the available data sources. Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I realize that implementation of such would require support from the actual driver module, but currently the DBI does not provide a way to use such a feature. I have posted a note regarding this issue to [EMAIL PROTECTED] [...] [from msql-mysql-modules] We consider the assumption of an anonymous user in listdbs to be a bug. .. I agree with you, but I refuse to support listdbs, as there is the portable DBI-data_sources(). IMO the better way to go is the support for user names and passwords with the data_sources method. If you are interested in that, please contact Tim Bunce. .. Thanks, Jochen == end quote 1 == == quote 2 == Date: Thu, 10 Feb 2000 10:11:23 + From: Tim Bunce [EMAIL PROTECTED] To: Jonathan Leffler [EMAIL PROTECTED] CC: Randall Whitman [EMAIL PROTECTED], [EMAIL PROTECTED] On Wed, Feb 09, 2000 at 08:41:54PM -0800, Jonathan Leffler wrote: Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I'll look into it. Tim. == end quote 2 == On Thu, 7 Jun 2001, Jonathan Leffler wrote: Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? [...] Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with [...] Have you tried using data_sources with DBD::Informix? [...] -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h
Re: getting a list of databases
Perhaps what would be useful is a set of comliance attributes that describes which optional DBI interfaces are supported and to what extent. Jonathan Leffler wrote: Tim Bunce wrote: Changes in DBI 1.16,30th May 2001 Added note to data_sources() method docs that some drivers may require a connected database handle to be supplied as an attribute. With all due respect, Tim, this is completely ducking the issue. Yes, after a fashion it resolves the problem, rather like saying Under-age kids should not drink in pubs solves a problem. It doesn't really cut to the meat of the issue though -- the data_sources() method is not generally useful because the interface is incomplete. On Sun, Jun 10, 2001 at 03:36:12PM -0700, Jonathan Leffler wrote: Michael Peppler wrote: Curt Russell Crandall writes: I didn't have an Informix DB available at the time, but yes it does return a list of dbs with data_sources... however, Sybase does not as well as many others. DBD::Sybase could be made to return the list of known servers (from the interfaces file), but not the list of databases, as that requires connecting to each of the servers in the interfaces file (and we need to know user/pwd for each server, etc - gets a little hairy). We had a discussion about this on the dbi-users mailing list during February 2000, in the run-up to the release of DBI 1.14. Tim promised to look into it, but either came up with a negative decision without notifying us or (much more likely) overlooked a comparatively minor feature that only impacts a few database servers... == quote 1 == Subject: Re: DBI-data_sources() - assumption of anonymous user is a bug Date: Wed, 09 Feb 2000 20:41:54 -0800 From: Jonathan Leffler [EMAIL PROTECTED] To: Randall Whitman [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Randall Whitman wrote: We consider the assumption of an anonymous user to be a bug -- that is, the behavior that DBI-data_sources(mysql); returns an empty array because we do not have an anonymous user in MySQL. In other words, it should be possible to do one of the following: @databases = DBI-data_sources(mysql, USER, PASSWORD);## or... $dbh = DBI-connect(dbi:mysql:, USER, PASSWORD); @databases = $dbh-data_sources(mysql); I sympathize with this; the last remaining test the DBD::Informix 1.00 pre-releases sometimes skip (instead of failing as in earlier versions) is the data sources test, and it too is because there is no user information available even though it can be needed to connect to the database server to obtain the list of databases. I note in passing that if you do the connection first, DBD::Informix will generate a list of data sources OK, but the whole point of the data sources method is to find out what's available before formally connecting to one of the available data sources. Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I realize that implementation of such would require support from the actual driver module, but currently the DBI does not provide a way to use such a feature. I have posted a note regarding this issue to [EMAIL PROTECTED] [...] [from msql-mysql-modules] We consider the assumption of an anonymous user in listdbs to be a bug. .. I agree with you, but I refuse to support listdbs, as there is the portable DBI-data_sources(). IMO the better way to go is the support for user names and passwords with the data_sources method. If you are interested in that, please contact Tim Bunce. .. Thanks, Jochen == end quote 1 == == quote 2 == Date: Thu, 10 Feb 2000 10:11:23 + From: Tim Bunce [EMAIL PROTECTED] To: Jonathan Leffler [EMAIL PROTECTED] CC: Randall Whitman [EMAIL PROTECTED], [EMAIL PROTECTED] On Wed, Feb 09, 2000 at 08:41:54PM -0800, Jonathan Leffler wrote: Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I'll look into it. Tim. == end quote 2 == On Thu, 7 Jun 2001, Jonathan Leffler wrote: Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? [...] Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with [...] Have you tried using data_sources with DBD::Informix? [...] -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h -- Simon Oliver --- Department of Biomolecular Sciences UMIST, PO Box 88, Sackville St Manchester, M60 1QD United Kingdom Phone: +44 161 200 8912 Fax:+44 161 236 0409 Mobile:
Re: getting a list of databases
On Mon, Jun 25, 2001 at 08:32:42PM -0700, Jonathan Leffler wrote: Tim Bunce wrote: Changes in DBI 1.16,30th May 2001 Added note to data_sources() method docs that some drivers may require a connected database handle to be supplied as an attribute. With all due respect, Tim, this is completely ducking the issue. Yes, after a fashion it resolves the problem, rather like saying Under-age kids should not drink in pubs solves a problem. It doesn't really cut to the meat of the issue though -- the data_sources() method is not generally useful because the interface is incomplete. Portable applications rarely need to use data_sources(). The DBI always has to steer a course between the important and the impractical. The correct 'complete' interface is probably the ODBC SQLBrowseConnect() but I don't think you'd thank me for mandating that. Tim.
Re: getting a list of databases
Changes in DBI 1.16,30th May 2001 Added note to data_sources() method docs that some drivers may require a connected database handle to be supplied as an attribute. Tim. On Sun, Jun 10, 2001 at 03:36:12PM -0700, Jonathan Leffler wrote: Michael Peppler wrote: Curt Russell Crandall writes: I didn't have an Informix DB available at the time, but yes it does return a list of dbs with data_sources... however, Sybase does not as well as many others. DBD::Sybase could be made to return the list of known servers (from the interfaces file), but not the list of databases, as that requires connecting to each of the servers in the interfaces file (and we need to know user/pwd for each server, etc - gets a little hairy). We had a discussion about this on the dbi-users mailing list during February 2000, in the run-up to the release of DBI 1.14. Tim promised to look into it, but either came up with a negative decision without notifying us or (much more likely) overlooked a comparatively minor feature that only impacts a few database servers... == quote 1 == Subject: Re: DBI-data_sources() - assumption of anonymous user is a bug Date: Wed, 09 Feb 2000 20:41:54 -0800 From: Jonathan Leffler [EMAIL PROTECTED] To: Randall Whitman [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Randall Whitman wrote: We consider the assumption of an anonymous user to be a bug -- that is, the behavior that DBI-data_sources(mysql); returns an empty array because we do not have an anonymous user in MySQL. In other words, it should be possible to do one of the following: @databases = DBI-data_sources(mysql, USER, PASSWORD);## or... $dbh = DBI-connect(dbi:mysql:, USER, PASSWORD); @databases = $dbh-data_sources(mysql); I sympathize with this; the last remaining test the DBD::Informix 1.00 pre-releases sometimes skip (instead of failing as in earlier versions) is the data sources test, and it too is because there is no user information available even though it can be needed to connect to the database server to obtain the list of databases. I note in passing that if you do the connection first, DBD::Informix will generate a list of data sources OK, but the whole point of the data sources method is to find out what's available before formally connecting to one of the available data sources. Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I realize that implementation of such would require support from the actual driver module, but currently the DBI does not provide a way to use such a feature. I have posted a note regarding this issue to [EMAIL PROTECTED] [...] [from msql-mysql-modules] We consider the assumption of an anonymous user in listdbs to be a bug. .. I agree with you, but I refuse to support listdbs, as there is the portable DBI-data_sources(). IMO the better way to go is the support for user names and passwords with the data_sources method. If you are interested in that, please contact Tim Bunce. .. Thanks, Jochen == end quote 1 == == quote 2 == Date: Thu, 10 Feb 2000 10:11:23 + From: Tim Bunce [EMAIL PROTECTED] To: Jonathan Leffler [EMAIL PROTECTED] CC: Randall Whitman [EMAIL PROTECTED], [EMAIL PROTECTED] On Wed, Feb 09, 2000 at 08:41:54PM -0800, Jonathan Leffler wrote: Please can we modify DBI 1.14 to handle this, Tim? It looks like a simple, backwards compatible extension to me... I'll look into it. Tim. == end quote 2 == On Thu, 7 Jun 2001, Jonathan Leffler wrote: Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? [...] Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with [...] Have you tried using data_sources with DBD::Informix? [...] -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h
Re: getting a list of databases
Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? I'm trying to build a Perl/Tk application that would give me an interface similar to say RapidSQL where I can have a frame containing a list of all the databases on a server... by clicking one, I can enter that database and issue commands and stuff. Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with at this moment. I know in Sybase I could just query the master..sysdatabases table to get this list, but I was hoping there'd be a more portable method available in the DBI especially since I don't know what command to issue in Informix to get a similar list. Have you tried using data_sources with DBD::Informix? If you don't have it, you must have a really, really, really ancient version of DBD::Informix and you are three to four years overdue for an upgrade. Check the test -- t/t??dblist.t IIRC. And/or the documentation? -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h
Re: getting a list of databases
I didn't have an Informix DB available at the time, but yes it does return a list of dbs with data_sources... however, Sybase does not as well as many others. On Thu, 7 Jun 2001, Jonathan Leffler wrote: Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? I'm trying to build a Perl/Tk application that would give me an interface similar to say RapidSQL where I can have a frame containing a list of all the databases on a server... by clicking one, I can enter that database and issue commands and stuff. Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with at this moment. I know in Sybase I could just query the master..sysdatabases table to get this list, but I was hoping there'd be a more portable method available in the DBI especially since I don't know what command to issue in Informix to get a similar list. Have you tried using data_sources with DBD::Informix? If you don't have it, you must have a really, really, really ancient version of DBD::Informix and you are three to four years overdue for an upgrade. Check the test -- t/t??dblist.t IIRC. And/or the documentation? -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h
Re: getting a list of databases
Curt Russell Crandall writes: I didn't have an Informix DB available at the time, but yes it does return a list of dbs with data_sources... however, Sybase does not as well as many others. DBD::Sybase could be made to return the list of known servers (from the interfaces file), but not the list of databases, as that requires connecting to each of the servers in the interfaces file (and we need to know user/pwd for each server, etc - gets a little hairy). Michael On Thu, 7 Jun 2001, Jonathan Leffler wrote: Curt Russell Crandall wrote: Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? I'm trying to build a Perl/Tk application that would give me an interface similar to say RapidSQL where I can have a frame containing a list of all the databases on a server... by clicking one, I can enter that database and issue commands and stuff. Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with at this moment. I know in Sybase I could just query the master..sysdatabases table to get this list, but I was hoping there'd be a more portable method available in the DBI especially since I don't know what command to issue in Informix to get a similar list. Have you tried using data_sources with DBD::Informix? If you don't have it, you must have a really, really, really ancient version of DBD::Informix and you are three to four years overdue for an upgrade. Check the test -- t/t??dblist.t IIRC. And/or the documentation? -- Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) Guardian of DBD::Informix 1.00.PC1 -- see http://www.cpan.org/ #include disclaimer.h -- Michael Peppler - Data Migrations Inc. - [EMAIL PROTECTED] http://www.mbay.net/~mpeppler - [EMAIL PROTECTED] International Sybase User Group - http://www.isug.com Sybase on Linux mailing list: [EMAIL PROTECTED]
getting a list of databases
Is the DBI-data_sources method the only facility available in the DBI to get a list of databases on a server? I'm trying to build a Perl/Tk application that would give me an interface similar to say RapidSQL where I can have a frame containing a list of all the databases on a server... by clicking one, I can enter that database and issue commands and stuff. Sybase won't return anything with data_sources and I'm not sure if Informix will either... those are the 2 dbs I'm concerned with at this moment. I know in Sybase I could just query the master..sysdatabases table to get this list, but I was hoping there'd be a more portable method available in the DBI especially since I don't know what command to issue in Informix to get a similar list. Thank you, Curt Crandall