System.Data TODO List ===================== Update this file as needed... * To get ExecuteReader() in a SqlCommand object to return a SqlDataReader object which can Read() data and get a String or Int32 from the database. Other types can be done later. A class (SqlDataReader) that implements IDataReader/IDataRecord only has one row in memory at a time. In order to do this, we need to compile and edit these classes: SqlDataReader DataTable DataRowCollection DataRow DataColumnCollection DataColumn DataConstraintCollection DataConstraint DataRelationCollection DataRelation DataTableCollection and dependencies... System.Data.Common classes that need to be implemented: - implement DataAdapter.cs - implement DataColumnMapping.cs - implement DataColumnMappingCollection.cs - implement DataTableMapping.cs - implement DataTableMappingCollection.cs - implement DbDataAdapter.cs - implement DbDataPermission.cs - implement DbDataPermissionAttribute.cs - implement RowUpdatedEventArgs.cs - implement RowUpdatingEventArgs.cs The following classes implement InternalDataCollectionBase: * DataRowCollection * DataColumnCollection * DataTableCollection * DataRelationCollection - an abstract class used by DataTable and DataSet * ConstraintCollection DataTableRelationCollection is an internal class that implements DataRelationCollection and is used by DataTable for parent/child relations. Don't know if it will/will not be used by DataSet. Other classes, structs, etc. that are missing: DataRowView DataSysDescriptionAttribute DataViewManager DataViewSetting FillErrorEventArgs MergeFailedEventArgs TypedDataSetGenerator The additional System.Data.SqlTypes classes need to be implemented: SqlByte SqlDataTime SqlDecimal SqlDouble SqlGuid SqlInt16 SqlInt64 SqlMoney SqlSingle * provide a standard scheme for storing connection string data * allow Execute methods in SqlCommand to call a stored procedure * Create a script for testing System.Data: - calls script to create a test database named monotestdb - set up nunit for testing System.Data - set up System.Data.Config or some other file to hold connection strings and other configuration settings for the testing System.Data - any other stuff needed... * get SqlParameter/SqlParameterCollection working so you can: - for queries/commands that have parameters: o input o output o return o input/output - call a stored procedure with parameters * be able to return a XmlReader from using method ExecuteXmlReader of a SqlCommand object * get SqlDataAdapter/DataSet working * Create Library for PInvoking into libgda This will be used by System.Data.OleDb classes * Begin System.Data.OleDb classes: - OleDbConnection - OleDbCommand - OleDbTransaction * Do more of the OleDb classes to retrieve a OleDbDataReader object from a query (SELECT FROM): - OleDbDataReader - others... * Do more OleDb classes for DataSet: - OleDbDataAdapter - others... * Security Audit of System.Data * Create a MySQL ADO.NET Provider * Create an Oracle ADO.NET Provider * Create an Interbase ADO.NET Provider * Create a Sybase ADO.NET Provider (TDS?) * Create an IBM UDB DB2 ADO.NET Provider * Create other ADO.NET providers... Integration =========== * get System.Data to work with ASP.NET's System.Web.UI.WebControls.DataGrid * get System.Data to work with GUI System.Windows.Forms.DataGrid Provider Factoros (target: mono 1.2 PROFILE=net_2_0) ==================================================== * Create Configuration Class DbProviderFactoriesConfigurationHandler - done DbProviderConfigurationHandler - not much documents/use cases. ConnectionStringsSection - done ConnectionStringSettingsCollection - done ConnectionStringSettings - done FIXME: Currently the test case for ConnectionStringsSection fails as new configuration API is not yet implemented in System.dll. A temporary handler ConnectionStringSectionHandler is available in System.Data.dll. * Create Base class DbProviderFactories - done DbProviderFactory - done DbConnectionFactory Add nunit test cases for these. - done * Create Factory classes & methods for Providers. Factory methods for SqlClient - done. Factory methods for Odbc provider - done. Factory methods for OleDb provider * DbConnectionStringBuilder - done Asynchronous Command Execution ((target: mono 1.2 PROFILE=net_2_0) ================================================================== * Implement the following Asynchronous Execution Commands for SqlClient - BeginExecuteNonQuery (2 overrides) - done - BeginExecuteReader (3 overrides) - done - BegineExecuteXmlReader - done - Implement corresponding asynchronous methods in Tds driver - done * Pending - Provide Stand Alone test cases - Check whether the result column is xml while doing EndExecuteXmlReader. Test Cases ========== * Provide a single consistent test fixture for all data providers available in Test/ProviderTests * NUnit-ize Provider Tests * Make these tests to be able to run by command make run-test PROVIDER=mysql # to run tests marked for mysql & SQL92. * Provide SQL92 complaint scripts for shema & data, to be loaded irrelevant of data providers.