From: Carlos G. A. <car...@te...> - 2003-10-06 15:09:31
|
Hello: First of all i want to suggest to all people that is using 1.5 version to upgrade to the latest version using CVS sources, i'm thinking in release next version soon, but until it's released it's better to be working with the latest version from CVS. MONO ---- 1. Information about the Firebird Data Provider at mono:: project web site has been update, you can see it here: http://www.go-mono.com/firebird.html 2. Named parameters. I have made some little tests of named parameters feature with mono 0.28 on linux and seems to be working now, for more information you can see this: http://bugzilla.ximian.com/show_bug.cgi?id=48666 3- Linux makefile. I have made some changes to the linux makefile for make the build of the NUnit test suite. 4. Exception formatting. Exceptions will be correct formatted in mono. Development ------------ 1. Build system. I have make some rework to the nant build files, now versions for MS .NET 1.0, MS .NET 1.1 and mono will be built at the same time with the same nant script. 2. Implicit transaction support. I have made a change to the implicit transaction support for make that commands without a transaction (explicit) can't be executed when the command connection have a active transaction that is not updated ( committed or roll backed ). 3. Firebird services implementation. A minor fix has been added to the FbService class for make the attachment in the same way as in old 1.1 sources. 4. Firebird Events implementation. A minor change has been added to the synchronization code. 5. Blob and array fields. Now it's possible to retrieve the value of blob and array fields as result of FbCommand.ExecuteScalar method, and as result of output parameters of stored procedure execution, for this i have added a new class to the GDS implementation called GdsValue.cs. 6. Design time support. Design time support for FbParameterCollection has been improved, for this there are two new classes: FbParameterCollectionEditor.cs FbParameterConverter.cs Toolbox images now have transparent background. ( Thanks to Luciano Passuello for his feedback on this issue ) 7. Cursor name property. FbCommand.CursorName property has been removed. 8. Command builder. Update and delete commands are now generated in different way ( similar to SqlClient and OleDb providers ) Example of Update Command: UPDATE "TEST_TABLE_01" SET "INT_FIELD" = ?, "CHAR_FIELD" = ?, "VARCHAR_FIELD" = ?, "BIGINT_FIELD" = ?, "SMALLINT_FIELD" = ?, "DOUBLE_FIELD" = ?, "NUMERIC_FIELD" = ?, "DECIMAL_FIELD" = ?, "DATE_FIELD" = ?, "TIME_FIELD" = ?, "TIMESTAMP_FIELD" = ?, "CLOB_FIELD" = ?, "BLOB_FIELD" = ?, "IARRAY_FIELD" = ?, "SARRAY_FIELD" = ?, "LARRAY_FIELD" = ?, "FARRAY_FIELD" = ?, "BARRAY_FIELD" = ?, "NARRAY_FIELD" = ?, "DARRAY_FIELD" = ?, "TARRAY_FIELD" = ?, "TSARRAY_FIELD" = ?, "CARRAY_FIELD" = ?, "VARRAY_FIELD" = ?, "BIG_ARRAY" = ? WHERE ( ("INT_FIELD" = ?) AND (("CHAR_FIELD" IS NULL) OR ("CHAR_FIELD" = ?)) AND (("VARCHAR_FIELD" IS NULL) OR ("VARCHAR_FIELD" = ?)) AND (("BIGINT_FIELD" IS NULL) OR ("BIGINT_FIELD" = ?)) AND (("SMALLINT_FIELD" IS NULL) OR ("SMALLINT_FIELD" = ?)) AND (("DOUBLE_FIELD" IS NULL) OR ("DOUBLE_FIELD" = ?)) AND (("NUMERIC_FIELD" IS NULL) OR ("NUMERIC_FIELD" = ?)) AND (("DECIMAL_FIELD" IS NULL) OR ("DECIMAL_FIELD" = ?)) AND (("DATE_FIELD" IS NULL) OR ("DATE_FIELD" = ?)) AND (("TIME_FIELD" IS NULL) OR ("TIME_FIELD" = ?)) AND (("TIMESTAMP_FIELD" IS NULL) OR ("TIMESTAMP_FIELD" = ?)) AND (("EXPR_FIELD" IS NULL) OR ("EXPR_FIELD" = ?)) ) Example of Delete Command: DELETE FROM "TEST_TABLE_01" WHERE ( ("INT_FIELD" = ?) AND (("CHAR_FIELD" IS NULL) OR ("CHAR_FIELD" = ?)) AND (("VARCHAR_FIELD" IS NULL) OR ("VARCHAR_FIELD" = ?)) AND (("BIGINT_FIELD" IS NULL) OR ("BIGINT_FIELD" = ?)) AND (("SMALLINT_FIELD" IS NULL) OR ("SMALLINT_FIELD" = ?)) AND (("DOUBLE_FIELD" IS NULL) OR ("DOUBLE_FIELD" = ?)) AND (("NUMERIC_FIELD" IS NULL) OR ("NUMERIC_FIELD" = ?)) AND (("DECIMAL_FIELD" IS NULL) OR ("DECIMAL_FIELD" = ?)) AND (("DATE_FIELD" IS NULL) OR ("DATE_FIELD" = ?)) AND (("TIME_FIELD" IS NULL) OR ("TIME_FIELD" = ?)) AND (("TIMESTAMP_FIELD" IS NULL) OR ("TIMESTAMP_FIELD" = ?)) AND (("EXPR_FIELD" IS NULL) OR ("EXPR_FIELD" = ?)) ) Example of Insert Command: INSERT INTO "TEST_TABLE_01" ("INT_FIELD", "CHAR_FIELD", "VARCHAR_FIELD", "BIGINT_FIELD", "SMALLINT_FIELD", "DOUBLE_FIELD", "NUMERIC_FIELD", "DECIMAL_FIELD", "DATE_FIELD", "TIME_FIELD", "TIMESTAMP_FIELD", "CLOB_FIELD", "BLOB_FIELD", "IARRAY_FIELD", "SARRAY_FIELD", "LARRAY_FIELD", "FARRAY_FIELD", "BARRAY_FIELD", "NARRAY_FIELD", "DARRAY_FIELD", "TARRAY_FIELD", "TSARRAY_FIELD", "CARRAY_FIELD", "VARRAY_FIELD", "BIG_ARRAY") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) Thanks to all people that is using, testing and reporting issues about the Firebird .NET Data Provider. As always all comments and suggestions are wellcome. -- Best regards Carlos Guzmán Álvarez Vigo-Spain "Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." Albert Einstein. |