System.Data TODO List
=====================
-This TODO list last updated on 2002-04-23
-
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.
-
-In order to do this, we need to compile
- SqlDataReader
- DataTable
+
+ 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...
-MSDN has the classes:
- DataRelation, DataRelationCollection, DataTable, DataTableCollection
-
-Mono has the classes:
- DataRelationCollection, DataTable, DataTableRelationCollection
-
-Something is not right here:
- maybe mono's DataTableRelationCollection
- was suppose to be DataTableCollection
-
- This would mean that DataRelation is missing.
-
-Other classes missing:
- * InternalDataCollectionBase - this is a public class despite its name
- * DataRowBuilder
- * Constraint
- * ConstraintCollection
-
System.Data.Common classes that need to be implemented:
- implement DataAdapter.cs
- implement DataColumnMapping.cs
* DataRowCollection
* DataColumnCollection
* DataTableCollection
- * DataRelationCollection
- * DataConstraintCollection
+ * 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:
- DataView
+ DataRowView
+ DataSysDescriptionAttribute
DataViewManager
DataViewSetting
- DataViewSettingCollection
- ForeignKeyConstraint
- PropertyCollection
- UniqueConstraint
+ FillErrorEventArgs
+ MergeFailedEventArgs
TypedDataSetGenerator
-
-Exceptions that still need to be done:
- (need to see what exceptions need to be done)
- SyntaxErrorException
- SqlNullValueException
- SqlTruncateException
- SqlTypeException
- TypedDataSetGeneratorException
-The additional System.Data.SqlTypes classes need to be stubbed:
+The additional System.Data.SqlTypes classes need to be implemented:
SqlByte
SqlDataTime
SqlDecimal
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:
* get SqlDataAdapter/DataSet working
-* provide a standard scheme for stroring
- connection string data
+* Create Library for PInvoking into libgda
+ This will be used by System.Data.OleDb classes
* Begin System.Data.OleDb classes:
- OleDbConnection
* Do more OleDb classes for DataSet:
- OleDbDataAdapter
- others...
+
+* Security Audit of System.Data
* Create a MySQL ADO.NET Provider
* 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.
+