2007-07-22 Nagappan A <anagappan@novell.com>
[mono.git] / mcs / class / Mono.Data.Tds / Mono.Data.Tds.Protocol / ChangeLog
1 2007-07-22  Nagappan A  <anagappan@novell.com>
2
3         * TdsBulkCopy.cs: Added new file to handle the bulk copy
4         operation.
5
6         * Tds.cs (ExecBulkCopyMetaData, ExecBulkCopy): Added new methods
7         to send and receive bulk data information.
8
9         * Tds70.cs (IsBlobType, IsLargeType): Moved methods to Tds.cs.
10
11         * TdsComm.cs: Fixed 2.0 compilation warnings.
12
13         * Tds50.cs: Fixed compilation warnings.
14
15         * Tds42.cs: Fixed compilation warnings.
16
17         * TdsPacketType.cs: Added Bulk type.
18
19 2007-05-30  Nagappan A  <anagappan@novell.com>
20
21         * TdsColumnType.cs: Added new types BigNVarChar, Variant to
22         TdsColumnType enumerator.
23
24         * TdsComm.cs (Append): Appends new data types to the TDS data
25         stream and also implemented new Append overloaded method.
26
27         * Tds.cs (BeginLoad): New case to handle BigBinary.
28         (GetMoneyValue): Simplified the switch / case conditions.
29
30         * TdsDataRow.cs: Instance of index checks for the given index to
31         be less than list count, else an exception will be thrown.
32
33         * Tds70.cs (sqlserverMagic): Modified byte values.
34         (ExecProc): Now directly calls ExecRPC for any number of
35         parameters being passed.
36         (ExecRPC): New logic to handle parameters.
37         (WriteParameterInfo): New private method to generate information
38         about each parameter.
39         (ProcessReturnStatus): New protected method to process the return
40         status of output parameter value.
41
42 2007-03-21  Nagappan A  <anagappan@novell.com>
43
44         * Tds70.cs (BuildParameters, FormatParameter): Include @ before
45         parameter name, if doesnot exist.
46
47 2006-07-18  Dean Brettle <dean@brettle.com>
48
49         * Tds70.cs : Fixed bug in FormatParameter() which caused 
50         ArgumentOutOfRangeException when formatting 0-length varbinary values
51         under 1.0 profile.
52
53 2006-05-03  Senganal T  <tsenganal@novell.com>
54
55         * Tds.cs : 
56                 - SetCharset () : Fix to set the Charset correctly.
57                 Patch from Andrzej Kurzeja
58
59 2006-03-08  Senganal T  <tsenganal@novell.com>
60
61         * Tds70.cs :
62                 - ProcessColumnInfo () : Set IsAutoIncrement Value for the column.
63
64 2006-02-10  Senganal T  <tsenganal@novell.com>
65
66         * Tds.cs :
67                 - GetSequentialColumn,BeginLoad, EndLoad,
68                 LoadData, SkipRow, SkipToColumnIndex
69                 New Methods to Support sequential loading of row data
70         * TdsComm.cs :
71                 - Skip : Changed arugment type from int to long.
72
73 2006-01-27  Senganal T  <tsenganal@novell.com>
74
75         * Tds.cs :
76                 - Modified GetSqlMoney () , to set the precision and Scale correctly.
77                 - Modified ProcessColumnDetails , to set the schema values correctly.
78         * TdsDataColumn.cs : Added some default values for the column schema
79         
80 2005-12-07  Senganal T  <tsenganal@novell.com>
81
82         * Tds50.cs :
83                 - IsValidRowCount () : Find out if a row count is valid.
84                 Fixes bug #76280
85         * Tds.cs :
86                 - ProcessEndToken (): Removed some redundant code.
87
88 2005-12-03  Senganal T  <tsenganal@novell.com>
89
90         * Tds70.cs : 
91                 - FormatParameter () : For DateTime Parameters, convert the value if
92                 specified as a string. Fixes bug#76880
93
94 2005-11-24  Senganal T  <tsenganal@novell.com>
95
96         * Tds.cs 
97         * Tds70.cs : 
98                 - Modifications to set the desired packetsize info when connecting
99                 to database
100
101 2005-11-23  Senganal T  <tsenganal@novell.com>
102         
103         * TdsComm.cs : 
104                 - ResizeOutBuf : Modified to shrink the output buffer if
105                 the block size is reduced. Fixed bug #76778     
106
107 2005-10-27  Senganal T  <tsenganal@novell.com>
108         
109         * Tds.cs :
110                 - Added a virtual method IsValidRowCount ()
111                 - Modified the way RecordsAffected is being counted
112
113         * Tds70.cs :
114                 - Overrode IsValidRowCount(), to check if the rowcount
115                 returned by sqlserver is valid.
116
117 2005-10-19  Senganal T  <tsenganal@novell.com>
118
119         * TdsConnectionParameter.cs :
120                 - Added a class variable 'AttachDBFileName' to store the location
121                 of the DB file.
122
123         * Tds70.cs (Connect) :
124                 - Modified to append the bytes corresponding to AttachDBFileName 
125                 into the Tds Packets. 
126
127 2005-08-26  Sureshkumar T  <tsureshkumar@novell.com>
128
129         * Tds70.cs (ExecProc): if no parameters, execute via RPC. parameter
130         support has to be added.
131
132         * Tds.cs (ExecRPC): added virtual method to execute via RPC.
133
134         This fixes bug #68978 by enabling execution of sp_reset_connection.
135
136 2005-08-24  Sureshkumar T  <tsureshkumar@novell.com>
137
138         * Tds.cs: ProcessColumnDetail (): expression columns don't have
139         baseTableName.
140
141 2005-08-05  Sureshkumar T  <tsureshkumar@novell.com>
142
143         * Tds70.cs: Reset (): remove exec.
144
145 2005-07-01  Sureshkumar T  <tsureshkumar@novell.com>
146
147         * Tds70.cs: FormatParameter: For uniqueidentifier, pass the guid
148         as '..' rather than hex. Tested with SqlServer 2005.
149
150         patch from jsinger@eggmouse.com & Hubert FONGARNAND.
151
152 2005-06-29  Sureshkumar T  <tsureshkumar@novell.com>
153
154         * TdsInternalException.cs: Add ctor for InnerException.
155
156         * TdsComm.cs: Throw TdsInternalException rather than
157         SocketException.
158
159 2005-06-01  Sureshkumar T  <tsureshkumar@novell.com>
160
161         * Tds50.cs: add a special case for datetime parameters to convert
162         to invariant culture. fixes bug #74910.
163
164 2005-04-07  Sureshkumar T  <tsureshkumar@novell.com>
165             Ankit Jain     <radical@corewars.org>
166
167         * TdsComm.cs: GetPhysicalPacket is devided further into seperate
168         methods GetPhysicalPacketHeader and
169         GetPhysicalPacketData. Implemented asynchronous ReadPacket method.
170
171         * ITds.cs: Added additional methods for asynchronous operations.
172
173         * Tds.cs: Implemented base methods for asynchronous
174         operations. Version specific derivatives should override for
175         specific operations.
176
177         * Tds70.cs: For stored procedure, "exec" is prefixed by
178         default. Implemented asynchronous method for asynchronous command
179         execution.
180
181         * TdsAsyncState.cs: Added. Internal asynchronous state object.
182
183         * TdsAsyncResult.cs: Added. Internal asynchronous result
184         implementation.
185
186 2005-04-04  Sureshkumar T  <tsureshkumar@novell.com>
187
188         * Tds50.cs: Pass parameters to the server. cut & paste from
189         Tds70.cs. To make the parmeters work with SybaseClient.
190
191 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
192
193         * Tds70.cs: turns out that sp_reset_connection procedure might not be
194         found ("Invalid object name 'sp_reset_connection'"). In this case, and
195         if we get a proper state ('Class' property in the SqlException), just
196         ignore the error.
197
198         * TdsConnectionPool.cs: if the connection cannot be reset, attemp to
199         disconnect it before losing the last reference to it.
200
201 2005-03-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
202
203         * Tds.cs: set the charset for MS SQL 2000. Patch from Aleksandar
204         Dezelin. Closes bug #73591.
205
206 2005-02-04  Sureshkumar T  <tsureshkumar@novell.com>
207
208         * Tds.cs (ProcessEndToken): Added a bool validRowCount and add to
209         recordsAffected count if we meet DoneInProc..
210
211 2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
212
213         * TdsConnectionParameters.cs: added a method Reset to initialize
214         parameters again.
215
216 2005-01-16  Daniel Morgan <danielmorgan@verizon.net>
217
218         * Tds.cs: TDS 5.0 (Sybase) needs to get a DECIMAL
219         differently than TDS 7.0 (SqlServer).  Fixes bug 70228.
220         Thanks to Sebastien Robitaille for the patch for Sybase.
221         
222 2005-01-07  Sureshkumar T  <tsureshkumar@novell.com>
223
224         * Tds70.cs : 
225         - add a special case for datetime parameters to convert to
226         invariant culture. fixes bug #70209.
227         - change format to MMM dd yyyy, this works for both client locale
228         change and server login locale change. fixes bug #66564.
229
230 2005-01-06  Sureshkumar T  <tsureshkumar@novell.com>
231
232         * Tds.cs: change the typecast to ushort for
233         GetDateTimeValue. fixes bug #70651.
234
235 2004-11-06 Gert Driesen <drieseng@users.sourceforge.net>
236         * Tds70.cs: avoid unnecessary property call.    
237
238 2004-11-01 Gert Driesen <drieseng@users.sourceforge.net>
239         
240         * Tds70.cs: when type of parameter value is enum, convert value to
241         underlying type before converting value to string as we'd otherwise
242         be using the enum field name
243
244 2004-10-30 Umadevi S <sumadevi@novell.com>
245         * Tds.cs : GetColumnValue method: handling null guid values correctly.
246                 This fixes bug #68804. 
247                 Thanks for the patch /bug report by Aleksandar Dezelin
248
249 2004-10-14 Umadevi S <sumadevi@novell.com>
250         * Tds.cs : GetTextValue method- handling zero length string correctly
251                 This fixes bug #67916
252
253 2004-08-14 Geoff Norton <gnorton@customerdna.com>
254
255         * TdsComm.cs: 
256           Tds70.cs: 
257                 Make Tds70 work on Big Endian machines.
258                 BitConverter uses unsafe and returns things in host order; we need to 
259                 swap some values to put them back into the approrpiate order for the wire.
260
261 2004-08-09 Sureshkumar T <tsureshkumar@novell.com>
262         * Tds70.cs - Prepare Method stored procedure handle read problem fixed.
263
264 2004-06-30 Umadevi S <sumadevi@novell.com>
265         * Tds.cs - In the NextResult method handling TdsPacketSubType. TableName. 
266
267
268 2004-04-22  Sebastien Pouliot <sebastien@ximian.com> 
269
270         * Tds70.cs: Updated to match changes in Mono.Security.dll.
271
272 2004-04-05  Lluis Sanchez Gual  <lluis@ximian.com>
273
274         * ITds.cs: Added method for reseting a connection.
275         * Tds.cs: Added base implementation for ITds.Reset.
276         * Tds70.cs: Implemented ITds.Reset().
277         * TdsConnectionPool.cs: Implemented connection pool that can be reused by 
278           all Tds clients.
279
280 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
281
282         * Tds.cs: All methods now return DBNull instead of null for null values.
283         * Tds50.cs, Tds70.cs: Support parameters with DBNull value.
284
285 2003-12-21  Tim Coleman <tim@timcoleman.com>
286         * Tds70.cs:
287                 Fix Integrated Security to work with Domain users.
288
289 2003-12-06  Sebastien Pouliot <spouliot@videotron.ca> 
290         for Daniel Morgan <danielmorgan@verizon.net>
291
292         Sebastien Pouliot (spouliot@motus.com) helped me greatly with his
293         NTLM stuff.
294         
295         * Mono.Data.Tds.Protocol/Tds.cs
296         * Mono.Data.Tds.Protocol/Tds70.cs
297         * Mono.Data.Tds.Protocol/TdsConnectionParameters.cs
298         * Mono.Data.Tds.Protocol/TdsPacketSubType.cs
299         * Mono.Data.Tds.Protocol/TdsPacketType.cs: added NT Authentication aka
300         Integrated Security aka Domain Login
301         
302 2003-10-19  Joerg Rosenkranz <joergr@voelcker.com>
303
304         * Tds.cs (GetStringValue): A string length of 0xFF (255) is not
305         misinterpreted as special value anymore.
306         
307         This is a fix to bug #49835.
308
309 2003-10-03  Diego Caravana  <diego@toth.it>
310
311         * Tds70.cs: Now handles parameters of type ReturnValue and
312         InputOutput.
313         (BuildParameters): skips the ReturnValue params and builds the
314         set string considering the assigned value for InputOutput ones.
315         (BuildProcedureCall): like the preceding one plus adds the return
316         value to the final select.
317         
318 2003-08-22  Duncan Mak  <duncan@ximian.com>
319
320         * Tds.cs (ProcessEndToken): RecordsAffected was not filled
321         correctly. I've found out that the record count was submitted for
322         TdsPacketSubType.Done. So I changed the behaviour to include this
323         (without deeper knowledge of the TDS protocol). Patch from Jörg
324         Rosenkranz <joergr@voelcker.com>.
325
326         This is part of a fix to bug #40315.
327         
328 2003-05-07  Miguel de Icaza  <miguel@ximian.com>
329
330         Patches from Igor Nosyryev <nosyryev@attbi.com>
331         
332         * TdsComm.cs: (GetString): GetString adds extra byte to a string
333         at end. It suppose to be '\0', but '\0' is valid value in .NET
334         string, so this byte must not be used.
335  
336         * Tds.cs (GetDecimalValue):Method reads extra byte if a DECIMAL
337         field contains NULL. As a result server's response is parsed
338         incorrectly and this method fires an exception.
339
340 2003-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
341
342         * Tds70.cs:
343         (FormatParameter): send input/output parameter names. This way we don't
344         depend on the parameter position being different of the index in the
345         parameter collection.
346
347 2002-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
348
349         * Tds.cs:
350         (Disconnect): close the stream and set connected to false.
351         (NextResult): check if after DoneProc we have a ColumnMetadata + Row,
352         which holds the values for the output parameters and read them.
353         (LoadRow): add the values to outputParameters if DoneProc.
354         When executing a stored procedure, we execute the procedure and then
355         select the parameter values.
356
357         * Tds70.cs:
358         (BuildParameters): check Parameters.
359
360         * TdsComm.cs: added Close () to close the stream.
361
362         * TdsConnectionParameters.cs: initialize all the string to be empty.
363
364 2002-11-04  Tim Coleman (tim@timcoleman.com)
365         * TdsBigDecimal.cs:
366                 New class added to handle (potentially) large
367                 decimal values
368         * Tds.cs:
369                 Modified to use TdsBigDecimal instead of
370                 decimal for transit of (potentially) large
371                 decimal values
372
373 2002-11-03  Tim Coleman (tim@timcoleman.com)
374         * TdsColumnStatus.cs:
375                 Newly added to handle column metadata
376         * Tds.cs
377                 Handle table name and column detail results
378         * Tds42.cs
379         * Tds50.cs
380         * Tds70.cs
381                 rename TableName BaseTableName for consistency
382         * TdsPacketSubType.cs:
383                 We now know what subtype 0xa5 is
384         * TdsPacketTableNameResult.cs:
385                 Add means to store table names
386         * TdsSchemaInfo.cs:
387                 Add new schema information
388
389 2002-11-01  Tim Coleman (tim@timcoleman.com)
390         * ITds.cs:
391                 Add DoneProc property
392         * Tds.cs:
393                 *Lots*.  Some stuff to get binary types
394                 to work, other stuff to get new prepares
395                 working.
396         * TdsPacketEndTokenResult.cs:
397                 Add Packetsubtype property
398         * TdsPacketRowResult:
399                 Now implements ICollection and IList.
400
401 2002-10-31  Tim Coleman (tim@timcoleman.com)
402         * TdsSchemaInfo.cs:
403                 Added because I can't really use SchemaInfo
404         * ITds.cs:
405         * Tds.cs :
406         * TdsPacketColumnInfoResult.cs :
407                 ChangeDefinition of schema
408         * Tds42.cs :
409         * Tds50.cs :
410         * Tds70.cs :
411                 Add new information to schema
412
413
414 2002-10-30  Tim Coleman (tim@timcoleman.com)
415         * TdsColumnSchema.cs:
416                 Ditch this in favor of System.Data.Common.SchemaInfo
417         * ITds.cs:
418                 Change ColumnInfo to Schema
419         * Tds.cs:
420                 Uses new SchemaInfo object
421                 Supports TEXT now.      
422         * Tds42.cs:
423         * Tds50.cs:
424         * Tds70.cs:
425         * TdsPacketColumnInfoResult.cs:
426         * TdsPacketRowResult.cs:
427                 Uses new SchemaInfo object
428         
429
430 2002-10-29  Tim Coleman (tim@timcoleman.com)
431         * ITds.cs:
432                 Add OutputParameters collection
433         * Tds.cs:
434                 Much reformatting, added handling for dates,
435                 fixed handling of output parameters, and a
436                 whole lot more
437         * TdsPacketEndTokenResult.cs:
438                 Remove incorrect exception
439         * TdsPacketType.cs:
440                 Add Logoff packet type.
441
442 2002-10-28  Tim Coleman (tim@timcoleman.com)
443         * Tds.cs:
444                 Add much handling to get the following types
445                 working in queries: string, int, decimal
446                 All sorts of other bug fixing and general
447                 purpose hackery.
448         * Tds42.cs:
449         * Tds50.cs:
450         * Tds70.cs:
451                 ProcessColumnInfo was abstracted in Tds.cs
452                 and subclassed, because 7.0 provides the information
453                 in a different format.
454         * TdsColumnSchema.cs:
455                 Added size, precision, scale
456         * TdsComm.cs:
457                 Fixed GetString because it wasn't working properly
458                 with TDS 7.0.
459         * TdsMessage.cs:
460                 Change state and severity to byte instead of int
461                 because that is more consitent.
462                 
463
464 2002-10-25  Tim Coleman (tim@timcoleman.com)
465         * TdsPacketErrorResultCollection.cs:
466                 New class added for exporting errors
467         * ITds.cs:
468         * Tds.cs:
469         * Tds70.cs:
470         * TdsComm.cs:
471         * TdsPacketEndTokenResult.cs:
472         * TdsPacketRowResult.cs:
473                 Changes to make SqlClient build.
474
475 2002-10-24  Tim Coleman (tim@timcoleman.com)
476         * ITds.cs:
477                 Added column info, and NextResult/NextRow
478                 to interface
479         * TdsColumnSchema.cs:
480                 New class added to keep track of column info
481         * Tds.cs:
482                 Many, many changes to get queries working
483                 for the most part.
484         * TdsPacketColumnInfoResult.cs:
485         * TdsPacketColumnNamesResult.cs:
486                 Doesn't use a DataColumnCollection anymore
487                 Also more complete.
488         * TdsPacketRowResult.cs:
489                 Added Add() method.
490
491 2002-10-23  Tim Coleman (tim@timcoleman.com)
492         * ITds.cs:
493         * Tds42.cs:
494         * Tds50.cs:
495         * Tds70.cs:
496         * Tds80.cs:
497                 New classes added.  Functionality
498                 is split up because different protocols
499                 have slight differences.
500         * Tds.cs:
501                 Remove some unnecessary code after
502                 the above split, and add in a whole
503                 lot more stuff for completeness.
504         * TdsColumnType.cs:
505                 Fix Int4.  Wrong enum value.
506         * TdsComm.cs:
507                 Move the encoder out of constructor
508                 because we don't know the charset at
509                 that point
510         * TdsConnectionParameters.cs:
511                 Small changes
512         * TdsPacketEndTokenResult.cs:
513                 Implement ToString ()
514
515
516 2002-10-22  Tim Coleman (tim@timcoleman.com)
517         * Tds.cs :
518                 More implementation.  Does some
519                 query stuff now.  Can also change
520                 database.
521         * TdsConnectionParameters.cs:
522                 Rename Host to DataSource, and
523                 add Hostname for the local hostname.
524         * TdsPacketEndTokenResult.cs:
525                 Change TODO attribute
526         * TODOAttribute.cs:
527                 New class added
528         
529
530 2002-10-21  Tim Coleman (tim@timcoleman.com)
531         * Tds.cs
532         * TdsComm.cs:
533                 A whole slew of changes to get logon
534                 to work (it now works in both TDS 7.0
535                 and TDS 4.2) ... danmorg can test with
536                 8.0 if he likes.
537                 TdsComm has some simplifications too,
538                 because C# has some features not present
539                 in the Java implementation.
540         * TdsConnectionParameters.cs:
541                 Change a few default values.
542         * TdsMessage.cs:
543                 Implement this class.
544
545 2002-10-20  Tim Coleman (tim@timcoleman.com)
546         * TdsColumnType.cs:
547         * TdsContext.cs:
548         * TdsEnvPacketSubType.cs:
549         * TdsMessage.cs:
550         * TdsPacketColumnInfoResult.cs:
551         * TdsPacketColumnNamesResult.cs:
552         * TdsPacketColumnOrderResult.cs:
553         * TdsPacketControlResult.cs:
554         * TdsPacketEndTokenResult.cs:
555         * TdsPacketErrorResult.cs:
556         * TdsPacketMessageResult.cs:
557         * TdsPacketOutputParam.cs:
558         * TdsPacketResult.cs:
559         * TdsPacketRetStatResult.cs:
560         * TdsPacketRowResult.cs:
561         * TdsPacketSubType.cs:
562         * TdsPacketTableNameResult.cs:
563         * TdsPacketUnknown.cs:
564                 New classes added as part of TDS internal implementation.
565         * Tds.cs:
566                 Some work on receiving and interpreting packages received from
567                 SQL Server.  Still doesn't work completely.
568         * TdsComm.cs:
569                 Add some methods as part of the ongoing work with Tds.cs
570         * TdsConnectionParameters.cs:
571                 Add default values for Encoding ("iso-8859-1"), Port (1433), 
572                 TDS Version (4.2).
573
574 2002-10-18  Tim Coleman (tim@timcoleman.com)
575         * TdsConnectionInternal:
576                 Add some implementation details
577         * TdsCommInternal:
578                 New class, which will handle the low-level
579                 communication with the database
580         * TdsPacketTypeInternal:
581                 Add new packet type, TdsPacketTypeInternal.None
582                 which is used when no packet is being constructed.
583                 The value is 0.
584
585 2002-10-17  Tim Coleman (tim@timcoleman.com)
586         * ChangeLog:
587                 New changelog added
588         * TdsCommandInternal.cs:
589         * TdsConnectionInternal.cs:
590         * TdsPacketTypeInternal.cs:
591         * TdsServerTypeInternal.cs:
592         * TdsTransactionInternal.cs:
593         * TdsVersionInternal.cs:
594                 New classes added.  These are the
595                 internal implementations, meant for
596                 "wrapping" from other locations.