Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

199 lines
5.2 KiB
Plaintext

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.