1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
|
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.
|