New file
[mono.git] / mcs / class / System.Data / TODO
1 System.Data TODO List
2 =====================
3
4 Update this file as needed...
5
6 * To get ExecuteReader() in a SqlCommand object to return 
7   a SqlDataReader object which can Read() data and get a String or
8   Int32 from the database.  Other types can be done later.
9   
10   A class (SqlDataReader) that implements IDataReader/IDataRecord
11   only has one row in memory at a time.
12
13 In order to do this, we need to compile and edit these classes:
14         SqlDataReader   DataTable       DataRowCollection               DataRow
15                                                                 DataColumnCollection    DataColumn
16                                                                 DataConstraintCollection DataConstraint
17                                                                 DataRelationCollection  DataRelation
18                                                                 DataTableCollection
19         and dependencies...
20
21 System.Data.Common classes that need to be implemented:
22  - implement DataAdapter.cs
23  - implement DataColumnMapping.cs
24  - implement DataColumnMappingCollection.cs
25  - implement DataTableMapping.cs
26  - implement DataTableMappingCollection.cs
27  - implement DbDataAdapter.cs
28  - implement DbDataPermission.cs
29  - implement DbDataPermissionAttribute.cs
30  - implement RowUpdatedEventArgs.cs
31  - implement RowUpdatingEventArgs.cs
32
33 The following classes implement InternalDataCollectionBase:
34         * DataRowCollection
35         * DataColumnCollection
36         * DataTableCollection
37         * DataRelationCollection - an abstract class used by DataTable and DataSet
38         * ConstraintCollection
39
40 DataTableRelationCollection is an internal class that implements DataRelationCollection
41 and is used by DataTable for parent/child relations.  Don't know if it will/will not
42 be used by DataSet.
43
44 Other classes, structs, etc. that are missing:
45         DataRowView
46         DataSysDescriptionAttribute
47         DataViewManager
48         DataViewSetting
49         DataViewSettingCollection
50         FillErrorEventArgs
51         MergeFailedEventArgs
52         TypedDataSetGenerator
53
54 Exceptions that still need to be stubbed:
55         (need to see what exceptions need to be done)
56         ConstraintException
57         DataException
58         DBConcurrencyException
59         InvalidConstraintException
60         InvalidExpressionException
61         MissingPrimaryKeyException
62         NonNullAllowedException
63         ReadOnlyException
64         RowNotInTableException
65         SqlNullValueException
66         SqlTruncateException
67         SqlTypeException
68         StrongTypingException
69         SyntaxErrorException
70         TypedDataSetGeneratorException
71         VersionNotFoundException
72  
73 The additional System.Data.SqlTypes classes need to be stubbed:
74         SqlByte
75         SqlDataTime
76         SqlDecimal
77         SqlDouble
78         SqlGuid
79         SqlInt16
80         SqlInt64
81         SqlMoney
82         SqlSingle
83
84 * provide a standard scheme for storing
85   connection string data
86
87 * allow Execute methods in SqlCommand to
88   call a stored procedure
89
90 * Create a script for testing System.Data:
91   - calls script to create 
92     a test database named monotestdb
93   - set up nunit for testing System.Data
94   - set up System.Data.Config or some other 
95     file to hold connection strings and other
96     configuration settings for the testing System.Data
97   - any other stuff needed...
98
99 * get SqlParameter/SqlParameterCollection
100   working so you can:
101   - for queries/commands that have parameters:
102     o  input 
103     o  output 
104     o  return
105     o  input/output
106   - call a stored procedure with parameters
107  
108 * be able to return a XmlReader from
109   using method ExecuteXmlReader of
110   a SqlCommand object
111
112 * get SqlDataAdapter/DataSet working
113
114 * Create Library for PInvoking into libgda
115   This will be used by System.Data.OleDb classes
116
117 * Begin System.Data.OleDb classes:
118   - OleDbConnection
119   - OleDbCommand
120   - OleDbTransaction
121
122 * Do more of the OleDb classes to
123   retrieve a OleDbDataReader object
124   from a query (SELECT FROM):
125   - OleDbDataReader
126   - others...
127
128 * Do more OleDb classes for DataSet:
129   - OleDbDataAdapter
130   - others...
131   
132 * Security Audit of System.Data
133
134 * Create a MySQL ADO.NET Provider
135
136 * Create an Oracle ADO.NET Provider
137
138 * Create an Interbase ADO.NET Provider
139
140 * Create a Sybase ADO.NET Provider (TDS?)
141
142 * Create an IBM UDB DB2 ADO.NET Provider
143
144 * Create other ADO.NET providers...
145
146 Integration
147 ===========
148
149 * get System.Data to work with ASP.NET's
150   System.Web.UI.WebControls.DataGrid
151
152 * get System.Data to work with GUI
153   System.Windows.Forms.DataGrid
154