New test.
[mono.git] / mcs / class / Mono.Data.Tds / Mono.Data.Tds.Protocol / ITds.cs
1 //
2 // Mono.Data.Tds.Protocol.ITds.cs
3 //
4 // Author:
5 //   Tim Coleman (tim@timcoleman.com)
6 //
7 // Copyright (C) 2002 Tim Coleman
8 //
9
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30
31 using Mono.Data.Tds;
32 using System;
33 using System.Collections;
34
35 namespace Mono.Data.Tds.Protocol {
36         public interface ITds 
37         {
38                 #region Properties
39
40                 string Database {
41                         get;
42                 }
43
44                 bool DoneProc {
45                         get;
46                 }
47
48                 bool IsConnected {
49                         get;
50                 }
51                 
52                 string ServerVersion {
53                         get;
54                 }
55
56                 TdsDataColumnCollection Columns {
57                         get;
58                 }
59
60                 TdsDataRow ColumnValues {
61                         get;
62                 }
63
64                 ArrayList OutputParameters {
65                         get;    
66                         set;
67                 }
68
69                 int RecordsAffected {
70                         get;
71                         set;
72                 }
73
74                 bool SequentialAccess {
75                         get;
76                         set;
77                 }
78
79                 #endregion // Properties
80
81                 #region Methods
82
83                 void Cancel ();
84                 bool Connect (TdsConnectionParameters connectionParameters);
85                 void Disconnect ();
86                 bool Reset ();
87
88                 void Execute (string commandText);
89                 void ExecProc (string procedure);
90
91                 void Execute (string commandText, TdsMetaParameterCollection parameters, int timeout, bool wantResults);
92                 void ExecPrepared (string statementId, TdsMetaParameterCollection parameters, int timeout, bool wantResults);
93                 void ExecProc (string procedure, TdsMetaParameterCollection parameters, int timeout, bool wantResults);
94
95                 bool NextResult ();
96                 bool NextRow ();
97
98                 string Prepare (string commandText, TdsMetaParameterCollection parameters);
99
100                 void SkipToEnd ();
101
102                 void Unprepare (string statementId);
103
104                 #endregion
105
106                 #region Events
107
108                 event TdsInternalErrorMessageEventHandler TdsErrorMessage;
109                 event TdsInternalInfoMessageEventHandler TdsInfoMessage;
110
111                 #endregion // Events
112
113 #if NET_2_0
114                 #region Asynchronous Methods
115                 IAsyncResult BeginExecuteNonQuery (string sql,
116                                                    TdsMetaParameterCollection parameters,
117                                                    AsyncCallback callback,
118                                                    object state);
119                 void EndExecuteNonQuery (IAsyncResult ar);
120                 IAsyncResult BeginExecuteQuery (string sql,
121                                                    TdsMetaParameterCollection parameters,
122                                                    AsyncCallback callback,
123                                                    object state);
124                 void EndExecuteQuery (IAsyncResult ar);
125
126                 IAsyncResult BeginExecuteProcedure (string prolog,
127                                                                     string epilog,
128                                                                     string cmdText,
129                                                                     bool IsNonQuery,
130                                                                     TdsMetaParameterCollection parameters,
131                                                                     AsyncCallback callback,
132                                                                     object state);
133                 void EndExecuteProcedure (IAsyncResult ar);
134
135                 void WaitFor (IAsyncResult ar);
136                 void CheckAndThrowException (IAsyncResult ar);
137
138                 #endregion //Asynchronous Methods
139 #endif // NET_2_0
140
141         }
142 }