From: Carlos G. A. <car...@te...> - 2003-04-09 15:06:31
|
Hello: > Can we not execute a whole script that has many statements, e.g. > > CREATE DOMAIN .... ; > CREATE DOMAIN .... ; > CREATE TABLE .... ; You can do anything like this: FbConnection connection = new FbConnection(connectionString); connection.Open(); FbTransaction transaction = connection.BeginTransaction(); StringBuilder batchCommand = new StringBuilder(); batchCommand.Append("CREATE DOMAIN LOGICO AS SMALLINT DEFAULT 0;"); batchCommand.Append("CREATE DOMAIN NIF AS CHAR(10) DEFAULT '';"); batchCommand.Append("CREATE DOMAIN ID AS INTEGER DEFAULT 0"); FbCommand command = new FbCommand(batchCommand.ToString(), connection, transaction); FbDataReader reader = command.ExecuteReader(); while ( reader.NextResult() ) { } reader.Close(); transaction.Commit(); connection.Close(); -- Best regards Carlos Guzmán Álvarez Vigo-Spain |
From: Carlos G. A. <car...@te...> - 2003-04-09 15:17:12
|
Hello: > One more suggestion: your GDS stuff is declared internal. If you made it > public, it would be possible for people to use it to do database stuff that > the higher level classes don't allow. Well, i don't like this, i want to have as public only the standard set of classes of ADO.NET. -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Carlos G. A. <car...@te...> - 2003-04-09 15:21:19
|
Hello: > But we're having problems - sending a batch of commands separated by semi > colons doesn't work - only the first command gets executed. But are you executing it using FbCommand.ExecuteReader and FbDataReader.NextResult() as in the example of my prior email ?? -- Best regards Carlos Guzmán Álvarez Vigo-Spain |
From: Carlos G. A. <car...@te...> - 2003-04-09 17:13:32
|
Hello: > When I try using the code you sent without change, I get the following > exception on reader.Close(): > > FbException: Dynamic SQL Error > SQL error code = -501 > Attempt to reclose a closed cursor > > Also none of the domains get created. It's working well for me, Are you testing it with CVS sources ??, i have made today some changes to batch statements. > Can you get the following to work: > > SET TERM ^ ; > SET TERM ; ^ > > If you can get SET TERM to work, we can execute each command individually. > > Currently, we have worked around the problem by writing a DLL that uses a > Delphi library (IBObjects) to run SQL scripts and calling that from C#.Net > using P/Invoke :-( > > It's far from ideal - I could send you a sample script including creating a > domain, a table and a trigger (including SET TERM) and if you can get that > to run, then ANY script should work. Until then, only standard SQL stuff > seems to work and that means we can't run a proper DB creation script :-( No, but i think you will get on problems with this, because batch updates needs to use ; as separator. Please if you can send .net provider questions to the developement list: fir...@li... -- Best regards Carlos Guzmán Álvarez Vigo-Spain |
From: Mike S. <mi...@mi...> - 2003-04-09 18:10:12
|
The problem is that you cannot send a statement to create a trigger or other stored procedure because the separator used by the stored proc code is a semi-colon. Interbase has for years allowed you to change the separator with the SET TERM statement. If you can't do that, then you can't create or edit stored procs. I'm using the latest sources checked out this afternoon using CVS, including the CreateDatabase() method & rebuilt with NAnt. Cheers, Mike. -----Original Message----- From: Carlos Guzman Alvarez [mailto:car...@te...] Sent: 09 April 2003 18:23 To: Mike Scott; Firebird .Net Provider Subject: Re: [Firebird-net-provider] Re: How to CREATE DATABASE using .Net FB Provider Hello: > When I try using the code you sent without change, I get the following > exception on reader.Close(): > > FbException: Dynamic SQL Error > SQL error code = -501 > Attempt to reclose a closed cursor > > Also none of the domains get created. It's working well for me, Are you testing it with CVS sources ??, i have made today some changes to batch statements. > Can you get the following to work: > > SET TERM ^ ; > SET TERM ; ^ > > If you can get SET TERM to work, we can execute each command individually. > > Currently, we have worked around the problem by writing a DLL that uses a > Delphi library (IBObjects) to run SQL scripts and calling that from C#.Net > using P/Invoke :-( > > It's far from ideal - I could send you a sample script including creating a > domain, a table and a trigger (including SET TERM) and if you can get that > to run, then ANY script should work. Until then, only standard SQL stuff > seems to work and that means we can't run a proper DB creation script :-( No, but i think you will get on problems with this, because batch updates needs to use ; as separator. Please if you can send .net provider questions to the developement list: fir...@li... -- Best regards Carlos Guzmán Álvarez Vigo-Spain |
From:
<car...@te...> - 2003-04-10 08:29:53
|
Hello: > The problem is that you cannot send a statement to create a trigger or other > stored procedure because the separator used by the stored proc code is a > semi-colon. Interbase has for years allowed you to change the separator with > the SET TERM statement. If you can't do that, then you can't create or edit > stored procs. > > I'm using the latest sources checked out this afternoon using CVS, including > the CreateDatabase() method & rebuilt with NAnt. I have made more changes, now you can for example alter a stored proc using ExecuteNonQuery, an example that is working for me: FbConnection connection = new FbConnection(connectionString); connection.Open(); FbTransaction transaction = connection.BeginTransaction(); StringBuilder commandText = new StringBuilder(); commandText.Append( "ALTER PROCEDURE SELECT_DATA " + " RETURNS ( " + " INT_FIELD INTEGER, " + " VARCHAR_FIELD VARCHAR(100), " + " DECIMAL_FIELD DECIMAL(15,2)) " + " AS " + " begin " + " SELECT INT_FIELD, VARCHAR_FIELD, DECIMAL_FIELD FROM TEST_TABLE_01 " + " WHERE INT_FIELD = 2 INTO :INT_FIELD, :VARCHAR_FIELD, :DECIMAL_FIELD; " + " suspend; "+ " end "); FbCommand command = new FbCommand(commandText.ToString(), connection, transaction); command.ExecuteNonQuery(); transaction.Commit(); connection.Close(); -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Carlos G. A. <car...@te...> - 2003-04-09 17:14:07
|
Hello: >>>But are you executing it using FbCommand.ExecuteReader and > > FbDataReader.NextResult() as in the example of my prior email ?? << > > We're using ExecuteNonQuery as there's no data returned, e.g. create tables > and domains. > > Should we use ExecuteReader?! Yes. -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Carlos G. A. <car...@te...> - 2003-04-09 17:18:01
|
HEllo: > That's a pity, as GDS access is generally available and if someone wants to > do it with .Net, there will be a second alternate (and incompatible) > solution to yours. Probably you are right, i think this is not needed in ADO .NET, i can be wrong but it's my point of view :). -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Carlos G.A. <car...@te...> - 2003-04-09 17:29:30
|
Hello: >> That's a pity, as GDS access is generally available and if someone >> wants to >> do it with .Net, there will be a second alternate (and incompatible) >> solution to yours. > > > > Probably you are right, i think this is not needed in ADO .NET, i can > be wrong but it's my point of view :). A last question, in each case if i decide to make this it will be made after v1.0 release. Best regards Carlos Guzman Alvarez Vigo-Spain |
From: Carlos G. A. <car...@te...> - 2003-04-11 08:39:35
|
Hello: > All of the Interbase/Firebird connectivity components that I've used in the > past have supported SET TERM, and could also execute what I assumed to be a > DSQL script. > > Are you saying that these components must have interpreted the scripts > locally and made specific calls to Interbase? I can't tell you how they made because i can't see the sources, but yesterday i'm seeing IBConsole ( it's and application and not interface component but how i now that ibconsole allow to exec isql commands i see this ) sources of Firebird CVS and as i see (i don't see it in deep ) this made a parsing of the command. > What I want to do is have a complete script that creates my database and > sets up all the tables, stored procs, etc. so that I can run this either in > a tool such as IBExpert, or directly in my application both for unit testing > (current unit tests create the database fresh each run) and for > installation. > > Do you foresee a way of doing this with the .Net provider? Well you can make a little class for parse the script file and exec each command individually, i think it's not difficult task to do :) -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Mike S. <mi...@mi...> - 2003-04-11 09:33:14
|
Hi Carlos I'm still finding that your sample code you sent a few days ago gives: FbException: Dynamic SQL Error SQL error code = -501 Attempt to reclose a closed cursor Here is the sample code exactly as I have it. If you have a moment, could you try it and see if it fails for you: File.Delete( @"c:\Temp\New.gdb" ) ; FbConnection.CreateDatabase( "localhost", 3050, @"c:\Temp\New.gdb", "SYSDBA", "masterkey", 3 ) ; FbConnection connection = new FbConnection(connectionString); connection.Open(); FbTransaction transaction = connection.BeginTransaction(); StringBuilder batchCommand = new StringBuilder(); batchCommand.Append("CREATE DOMAIN LOGICO AS SMALLINT DEFAULT 0;"); batchCommand.Append("CREATE DOMAIN NIF AS CHAR(10) DEFAULT '';"); batchCommand.Append("CREATE DOMAIN ID AS INTEGER DEFAULT 0"); FbCommand command = new FbCommand(batchCommand.ToString(), connection, transaction); FbDataReader reader = command.ExecuteReader(); while ( reader.NextResult() ) { } reader.Close(); transaction.Commit(); connection.Close(); Cheers, Mike. |
From: Carlos G. A. <car...@te...> - 2003-04-11 09:55:14
|
HEllo: > I'm still finding that your sample code you sent a few days ago gives: > > FbException: Dynamic SQL Error > SQL error code = -501 > Attempt to reclose a closed cursor There are a bug with my last commit ( yesterday ) it's fixed now, if you continue to have problems tell to me and i will send you a compiled version of the dll. -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Mike S. <mi...@mi...> - 2003-04-11 11:59:16
|
Carlos I've been looking at the source code :-) I see that you use an explicit ';' to split batch commands. This is essentially the same problem that the ISQL SET TERM command solves. Here's a proposed modification to FbCommand.cs that adds a CommandTerminator property to allow the user to set the command terminator to something other than semi-colon: // added these fields private string terminator = ";" ; private char[] terminatorChars = { ';' } ; // new property public string CommandTerminator { get { return terminator ; } set { if ( terminator != value ) { terminator = value ; terminatorChars = value.ToCharArray() ; } } } // modified CommandText /// <include file='xmldoc/fbcommand.xml' path='doc/member[@name="P:CommandText"]/*'/> public string CommandText { get { return commands[actualCommand] == null ? "" : commands[actualCommand]; } set { if (statement != null && commandText != value && commandText != String.Empty) { statement.DropStatement(); } commandText = value; commands = commandText.Split(terminatorChars); actualCommand = 0; } } Cheers, Mike. -----Original Message----- From: Carlos Guzman Alvarez [mailto:car...@te...] Sent: 11 April 2003 11:13 To: mi...@mi... Subject: Re: [Firebird-net-provider] Re: How to CREATE DATABASE using .Net FB Provider Hello: > But your last email suggested that you'd now got it to work with stored > procs. Here's some sample dialect 3 code to create a stored proc. Could you > try it and tell me how you got it to do it! :-) > > CREATE PROCEDURE "CreateUserKey" returns (AVALUE Integer) AS > begin > avalue = gen_id("UserID",1); > end You can do that using ExecuteNonQuery method, now batch command execution is restricted to ExecuteReader calls. A piece of code using your stored proc sample: FbConnection connection = new FbConnection(connectionString); connection.Open(); FbTransaction transaction = connection.BeginTransaction(); StringBuilder batchCommand = new StringBuilder(); batchCommand.Append( "CREATE PROCEDURE \"CreateUserKey\" returns (AVALUE Integer) AS \r\n" + "begin \r\n" + "\tavalue = gen_id(\"UserID\",1); \r\n" + "end"); FbCommand command = new FbCommand(batchCommand.ToString(), connection, transaction); command.ExecuteNonQuery(); command.Dispose(); transaction.Commit(); connection.Close(); > It seems that Firebird is using that semi-colon as a delimiter, so the only > way to get this to work is to change the delimiter, but I don't know how to > do that. It's not firebird it's the provider for allow batch command execution :) -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Carlos G. A. <car...@te...> - 2003-04-11 12:38:44
|
Hello: > I've been looking at the source code :-) > > I see that you use an explicit ';' to split batch commands. This is > essentially the same problem that the ISQL SET TERM command solves. > > Here's a proposed modification to FbCommand.cs that adds a CommandTerminator > property to allow the user to set the command terminator to something other > than semi-colon: > > // added these fields > > private string terminator = ";" ; > private char[] terminatorChars = { ';' } ; > > // new property > > public string CommandTerminator > { > get { return terminator ; } > set > { > if ( terminator != value ) > { > terminator = value ; > terminatorChars = value.ToCharArray() ; > } > } > } Well in first place i think this is not needed. But what are people toughts to add this for 1.1 release ?? ( actual branch is feature closed, and after RC2 i'm thinking in open a new developement branch for 1.1 version of the provider with the modifications needed to run with .Net Framework 1.1 too ) > // modified CommandText > > /// <include file='xmldoc/fbcommand.xml' > path='doc/member[@name="P:CommandText"]/*'/> > public string CommandText > { > get > { > return commands[actualCommand] == null ? "" : commands[actualCommand]; > } > set > { > if (statement != null && commandText != value && commandText != > String.Empty) > { > statement.DropStatement(); > } > > commandText = value; > commands = commandText.Split(terminatorChars); > actualCommand = 0; > } > } This piece of code do not match with actual CVS sources :) , i ask any more :) are you sure you are working with latest CVS sources ?? -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Mike S. <mi...@mi...> - 2003-04-11 13:40:43
|
Hi Carlos Sorry, got the correct source now - must have made a mistake during the checkout - don't know how it happened :-( Mike. -----Original Message----- From: fir...@li... [mailto:fir...@li...]On Behalf Of Carlos Guzman Alvarez Sent: 11 April 2003 13:48 To: mi...@mi... Cc: Firebird .Net Provider Subject: Re: [Firebird-net-provider] Re: How to CREATE DATABASE using .Net FB Provider Hello: > I've been looking at the source code :-) > > I see that you use an explicit ';' to split batch commands. This is > essentially the same problem that the ISQL SET TERM command solves. > > Here's a proposed modification to FbCommand.cs that adds a CommandTerminator > property to allow the user to set the command terminator to something other > than semi-colon: > > // added these fields > > private string terminator = ";" ; > private char[] terminatorChars = { ';' } ; > > // new property > > public string CommandTerminator > { > get { return terminator ; } > set > { > if ( terminator != value ) > { > terminator = value ; > terminatorChars = value.ToCharArray() ; > } > } > } Well in first place i think this is not needed. But what are people toughts to add this for 1.1 release ?? ( actual branch is feature closed, and after RC2 i'm thinking in open a new developement branch for 1.1 version of the provider with the modifications needed to run with .Net Framework 1.1 too ) > // modified CommandText > > /// <include file='xmldoc/fbcommand.xml' > path='doc/member[@name="P:CommandText"]/*'/> > public string CommandText > { > get > { > return commands[actualCommand] == null ? "" : commands[actualCommand]; > } > set > { > if (statement != null && commandText != value && commandText != > String.Empty) > { > statement.DropStatement(); > } > > commandText = value; > commands = commandText.Split(terminatorChars); > actualCommand = 0; > } > } This piece of code do not match with actual CVS sources :) , i ask any more :) are you sure you are working with latest CVS sources ?? -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Firebird-net-provider mailing list Fir...@li... https://lists.sourceforge.net/lists/listinfo/firebird-net-provider |
From: Carlos G. A. <car...@te...> - 2003-04-11 14:02:47
|
Hello: > Sorry, got the correct source now - must have made a mistake during the > checkout - don't know how it happened :-( Ok no problem :) -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Mike S. <mi...@mi...> - 2003-04-11 13:45:52
|
Carlos >> Well in first place i think this is not needed. << I don't think it's a good idea to have "magic values" in the source code - in this case ';'. It's much more flexible if the user of the class can change it. If it was a property before, then I wouldn't have had any problem with creating a stored proc :-) Mike. -----Original Message----- From: fir...@li... [mailto:fir...@li...]On Behalf Of Carlos Guzman Alvarez Sent: 11 April 2003 13:48 To: mi...@mi... Cc: Firebird .Net Provider Subject: Re: [Firebird-net-provider] Re: How to CREATE DATABASE using .Net FB Provider Hello: > I've been looking at the source code :-) > > I see that you use an explicit ';' to split batch commands. This is > essentially the same problem that the ISQL SET TERM command solves. > > Here's a proposed modification to FbCommand.cs that adds a CommandTerminator > property to allow the user to set the command terminator to something other > than semi-colon: > > // added these fields > > private string terminator = ";" ; > private char[] terminatorChars = { ';' } ; > > // new property > > public string CommandTerminator > { > get { return terminator ; } > set > { > if ( terminator != value ) > { > terminator = value ; > terminatorChars = value.ToCharArray() ; > } > } > } Well in first place i think this is not needed. But what are people toughts to add this for 1.1 release ?? ( actual branch is feature closed, and after RC2 i'm thinking in open a new developement branch for 1.1 version of the provider with the modifications needed to run with .Net Framework 1.1 too ) > // modified CommandText > > /// <include file='xmldoc/fbcommand.xml' > path='doc/member[@name="P:CommandText"]/*'/> > public string CommandText > { > get > { > return commands[actualCommand] == null ? "" : commands[actualCommand]; > } > set > { > if (statement != null && commandText != value && commandText != > String.Empty) > { > statement.DropStatement(); > } > > commandText = value; > commands = commandText.Split(terminatorChars); > actualCommand = 0; > } > } This piece of code do not match with actual CVS sources :) , i ask any more :) are you sure you are working with latest CVS sources ?? -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Firebird-net-provider mailing list Fir...@li... https://lists.sourceforge.net/lists/listinfo/firebird-net-provider |
From: Carlos G. A. <car...@te...> - 2003-04-11 14:07:07
|
Hello: > I don't think it's a good idea to have "magic values" in the source code - > in this case ';'. It's much more flexible if the user of the class can > change it. > > If it was a property before, then I wouldn't have had any problem with > creating a stored proc :-) With latest CVS sources you can do it using ExecuteNonQuery method ( now that you have it you can try by yourself :) ). I'm thinking in add an ExecuteScript method to FbCommand for version 1.1, any thoughts ??? -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. |
From: Mike S. <mi...@mi...> - 2003-04-11 14:21:58
|
Hi Carlos Yes, I already tried it with ExecuteNonQuery() :-) This is where it should be, as it doesn't return a cursor - ExecuteReader() implies something else. Yes, ExecuteScript is a great idea, as it means that the Firebird Provider becomes a "one-stop-solution" for anything you need to do with Firebird. I don't want to have to use a separate tool to manage DBs, because I need to code it into the unit tests and into the final application. You'll have to do something like SET TERM so that you can change the terminator as required. In which case, you'll need to parse the SQL properly so that you can ignore SET TERM inside quotes and comments. I'd strongly recommend using SET TERM because this is the standard for scripts, and we can take a script from IBObjects, ISQL or whatever, and run it unchanged using the provider - cool! Mike. -----Original Message----- From: fir...@li... [mailto:fir...@li...]On Behalf Of Carlos Guzman Alvarez Sent: 11 April 2003 15:17 To: mi...@mi... Cc: Firebird .Net Provider Subject: Re: [Firebird-net-provider] Re: How to CREATE DATABASE using .Net FB Provider Hello: > I don't think it's a good idea to have "magic values" in the source code - > in this case ';'. It's much more flexible if the user of the class can > change it. > > If it was a property before, then I wouldn't have had any problem with > creating a stored proc :-) With latest CVS sources you can do it using ExecuteNonQuery method ( now that you have it you can try by yourself :) ). I'm thinking in add an ExecuteScript method to FbCommand for version 1.1, any thoughts ??? -- Best regards Carlos Guzmán Álvarez Vigo-Spain "No tengo dones especiales.Sólo soy apasionadamente curioso" Albert Einstein, científico. ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Firebird-net-provider mailing list Fir...@li... https://lists.sourceforge.net/lists/listinfo/firebird-net-provider |
From: Dick C. <rc...@mo...> - 2003-12-29 09:55:46
|
Hello, What conditions would cause the connection.Open() method to fail with the exception message: "Invalid PInvoke metadata format"? I'm pretty sure my Firebird server is running fine (because I have other apps using it without any problems). I'm also sure that my .NET Provider (RC3) is ok because I have other apps running on the same machine that works fine. My database (GDB) also seems ok because I have no problems directly manipulating it using ISQL. But whenever I open the database programmatically, I'm getting that PInvoke error. Dick |
From:
<car...@te...> - 2003-12-29 10:11:52
|
Hello: > What conditions would cause the connection.Open() method to fail with > the exception message: "Invalid PInvoke metadata format"? Usually gives on bad installations of .NET, or using an 1.1 assembly with the 1.0 .NET Framework, can give to by a bad compilation of the assembly, just try to built it from the sources and test it. > I'm also sure that my .NET Provider (RC3) Huuummm ... may be RC1 ?? -- Best regards Carlos Guzmán Álvarez Vigo-Spain |
From: Dick C. <rc...@mo...> - 2003-12-29 10:21:59
|
Carlos Guzm=E1n =C1lvarez wrote: > Hello: >=20 >> What conditions would cause the connection.Open() method to fail with=20 >> the exception message: "Invalid PInvoke metadata format"? >=20 >=20 > Usually gives on bad installations of .NET, or using an 1.1 assembly=20 > with the 1.0 .NET Framework, can give to by a bad compilation of the=20 > assembly, just try to built it from the sources and test it. >=20 >> I'm also sure that my .NET Provider (RC3)=20 >=20 >=20 > Huuummm ... may be RC1 ?? You suggest that I return to RC1? I seem to recall reading from the=20 list previously that RC3 is for 1.1 .NET Framework, while RC1 is for=20 1.0. My system has Visual Studio with 1.0 .NET Framework, but I also=20 manually installed the 1.1 .NET Framework Runtime. Dick |
From:
<car...@te...> - 2003-12-29 10:24:34
|
Hello: > You suggest that I return to RC1? I seem to recall reading from the > list previously that RC3 is for 1.1 .NET Framework, while RC1 is for > 1.0. My system has Visual Studio with 1.0 .NET Framework, but I also > manually installed the 1.1 .NET Framework Runtime. Sorry, I mean .NET Provider 1.5 RC1, the RC3 was not released yet, RC2 was released today, both RC1 and RC2 versions of the .NET Data Provider have installations for the .NET Framework 1.0 and 1.1. -- Best regards Carlos Guzmán Álvarez Vigo-Spain |