a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
199 lines
5.2 KiB
Plaintext
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.
|
|
|