1 2008-07-01 Marek Habersack <mhabersack@novell.com>
3 * TdsDataColumnCollection.cs, Tds50.cs, Tds42.cs, Tds70.cs,
4 Tds.cs: adjust for changes below.
6 * TdsDataColumn.cs: use the named properties only in the 2.0
7 profile. The reason is that Mono.Data.TdsClient.TdsDataReader
8 needs to know if a property has been set or not. With 2.0 it is
9 easy to implement using nullable types, with 1.x it would require
10 using e.g. BitArray to control which field was set, and in
11 addition extra code would be needed to check whether a field was
12 set or not. Also, it would clutter the code with #ifdefs all over
15 2008-06-30 Zoltan Varga <vargaz@gmail.com>
17 * TdsDataColumn.cs: Do not inherit from Hashtable, add always set properties
18 as normal properties so code can access them without doing a hashtable lookup.
20 * Tds.cs Tds42.cs Tds50.cs Tds70.cs: Adapt to the TdsDataColumn changes.
22 2008-06-09 Veerapuram Varadhan <vvaradhan@novell.com>
24 Patch from Christian Hergert <christian.hergert@gmail.com>
25 * TdsConnectionPool.cs: Remove unnecessary locks and code refactoring
26 * Tds.cs: Add member to hold status of the connection pool
28 2008-06-09 Ankit Jain <jankit@novell.com>
30 Tds class doesn't need to inherit Component or implement ITds, fix.
32 * Tds42.cs, Tds50.cs, Tds70.cs, Tds80.cs:
33 Make Tds-derived classes sealed.
34 * TdsConnectionPool.cs: Update.
36 2008-05-17 Gert Driesen <drieseng@users.sourceforge.net>
38 * Tds.cs: Do not return 0 for decimal/numeric columns with value NULL.
39 Avoid unnecessary initialization of fields, and minor code formatting.
41 2008-05-15 Marek Habersack <mhabersack@novell.com>
43 * Tds.cs: deal with null columns when getting value for a Numeric
46 2008-05-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
48 * Tds.cs: a numeric column with no decimal digits and a precision <= 80
49 is translated into a long.
51 2007-11-10 Gert Driesen <drieseng@users.sourceforge.net>
53 * Tds.cs: Round milliseconds for datetime. Fixes part of bug #323646.
54 * Tds70.cs: Include milliseconds for datetime parameters. Fixes part
57 2007-10-17 Nagappan <anagappan@novell.com>
59 * TdsConnectionPool.cs: Default the pooling is enabled. It has to be
60 disabled only when we clear all the pools.
62 2007-09-25 Nagappan A <anagappan@novell.com>
64 * Tds.cs (Pooling): Added new property to get the internal
65 connection pooling list.
67 * ITds.cs (Pooling): Added new property to get the internal
68 connection pooling list.
70 * TdsConnectionPool.cs (ResetConnectionPool, GetConnectionPool)
71 (ReleaseConnection): Added new methods to clear connection pool.
73 2007-08-06 Nagappan A <anagappan@novell.com>
75 * TdsComm.cs (TdsComm): Now connects to the SqlServer in Async
76 mode. Fixes bug # 81934.
78 * Tds.cs (ProcessEnvironmentChange): Gets the server locale to use
79 them when required. Fixes bug # 82047.
80 When the server resets the connection, now the client code also
81 disconnects the session and remove the instance. Fixes bug #
83 Added new protected property Locale.
85 * TdsEnvPacketSubType.cs (Locale): Added new enumerator
86 entry. This gets the Locale type of SqlServer. Fixes bug # 82047.
88 * Tds70.cs (FormatParameter): Fixes the error when trying to add a
89 row with a DateTime field into an Italian SqlServer, bug # 82047.
91 2007-07-23 Nagappan A <anagappan@novell.com>
93 * TdsBulkCopy.cs: Removed all the Namespace that are not
96 2007-07-22 Nagappan A <anagappan@novell.com>
98 * TdsBulkCopy.cs: Added new file to handle the bulk copy
101 * Tds.cs (ExecBulkCopyMetaData, ExecBulkCopy): Added new methods
102 to send and receive bulk data information.
104 * Tds70.cs (IsBlobType, IsLargeType): Moved methods to Tds.cs.
106 * TdsComm.cs: Fixed 2.0 compilation warnings.
108 * Tds50.cs: Fixed compilation warnings.
110 * Tds42.cs: Fixed compilation warnings.
112 * TdsPacketType.cs: Added Bulk type.
114 2007-05-30 Nagappan A <anagappan@novell.com>
116 * TdsColumnType.cs: Added new types BigNVarChar, Variant to
117 TdsColumnType enumerator.
119 * TdsComm.cs (Append): Appends new data types to the TDS data
120 stream and also implemented new Append overloaded method.
122 * Tds.cs (BeginLoad): New case to handle BigBinary.
123 (GetMoneyValue): Simplified the switch / case conditions.
125 * TdsDataRow.cs: Instance of index checks for the given index to
126 be less than list count, else an exception will be thrown.
128 * Tds70.cs (sqlserverMagic): Modified byte values.
129 (ExecProc): Now directly calls ExecRPC for any number of
130 parameters being passed.
131 (ExecRPC): New logic to handle parameters.
132 (WriteParameterInfo): New private method to generate information
133 about each parameter.
134 (ProcessReturnStatus): New protected method to process the return
135 status of output parameter value.
137 2007-03-21 Nagappan A <anagappan@novell.com>
139 * Tds70.cs (BuildParameters, FormatParameter): Include @ before
140 parameter name, if doesnot exist.
142 2006-07-18 Dean Brettle <dean@brettle.com>
144 * Tds70.cs : Fixed bug in FormatParameter() which caused
145 ArgumentOutOfRangeException when formatting 0-length varbinary values
148 2006-05-03 Senganal T <tsenganal@novell.com>
151 - SetCharset () : Fix to set the Charset correctly.
152 Patch from Andrzej Kurzeja
154 2006-03-08 Senganal T <tsenganal@novell.com>
157 - ProcessColumnInfo () : Set IsAutoIncrement Value for the column.
159 2006-02-10 Senganal T <tsenganal@novell.com>
162 - GetSequentialColumn,BeginLoad, EndLoad,
163 LoadData, SkipRow, SkipToColumnIndex
164 New Methods to Support sequential loading of row data
166 - Skip : Changed arugment type from int to long.
168 2006-01-27 Senganal T <tsenganal@novell.com>
171 - Modified GetSqlMoney () , to set the precision and Scale correctly.
172 - Modified ProcessColumnDetails , to set the schema values correctly.
173 * TdsDataColumn.cs : Added some default values for the column schema
175 2005-12-07 Senganal T <tsenganal@novell.com>
178 - IsValidRowCount () : Find out if a row count is valid.
181 - ProcessEndToken (): Removed some redundant code.
183 2005-12-03 Senganal T <tsenganal@novell.com>
186 - FormatParameter () : For DateTime Parameters, convert the value if
187 specified as a string. Fixes bug#76880
189 2005-11-24 Senganal T <tsenganal@novell.com>
193 - Modifications to set the desired packetsize info when connecting
196 2005-11-23 Senganal T <tsenganal@novell.com>
199 - ResizeOutBuf : Modified to shrink the output buffer if
200 the block size is reduced. Fixed bug #76778
202 2005-10-27 Senganal T <tsenganal@novell.com>
205 - Added a virtual method IsValidRowCount ()
206 - Modified the way RecordsAffected is being counted
209 - Overrode IsValidRowCount(), to check if the rowcount
210 returned by sqlserver is valid.
212 2005-10-19 Senganal T <tsenganal@novell.com>
214 * TdsConnectionParameter.cs :
215 - Added a class variable 'AttachDBFileName' to store the location
218 * Tds70.cs (Connect) :
219 - Modified to append the bytes corresponding to AttachDBFileName
220 into the Tds Packets.
222 2005-08-26 Sureshkumar T <tsureshkumar@novell.com>
224 * Tds70.cs (ExecProc): if no parameters, execute via RPC. parameter
225 support has to be added.
227 * Tds.cs (ExecRPC): added virtual method to execute via RPC.
229 This fixes bug #68978 by enabling execution of sp_reset_connection.
231 2005-08-24 Sureshkumar T <tsureshkumar@novell.com>
233 * Tds.cs: ProcessColumnDetail (): expression columns don't have
236 2005-08-05 Sureshkumar T <tsureshkumar@novell.com>
238 * Tds70.cs: Reset (): remove exec.
240 2005-07-01 Sureshkumar T <tsureshkumar@novell.com>
242 * Tds70.cs: FormatParameter: For uniqueidentifier, pass the guid
243 as '..' rather than hex. Tested with SqlServer 2005.
245 patch from jsinger@eggmouse.com & Hubert FONGARNAND.
247 2005-06-29 Sureshkumar T <tsureshkumar@novell.com>
249 * TdsInternalException.cs: Add ctor for InnerException.
251 * TdsComm.cs: Throw TdsInternalException rather than
254 2005-06-01 Sureshkumar T <tsureshkumar@novell.com>
256 * Tds50.cs: add a special case for datetime parameters to convert
257 to invariant culture. fixes bug #74910.
259 2005-04-07 Sureshkumar T <tsureshkumar@novell.com>
260 Ankit Jain <radical@corewars.org>
262 * TdsComm.cs: GetPhysicalPacket is devided further into seperate
263 methods GetPhysicalPacketHeader and
264 GetPhysicalPacketData. Implemented asynchronous ReadPacket method.
266 * ITds.cs: Added additional methods for asynchronous operations.
268 * Tds.cs: Implemented base methods for asynchronous
269 operations. Version specific derivatives should override for
272 * Tds70.cs: For stored procedure, "exec" is prefixed by
273 default. Implemented asynchronous method for asynchronous command
276 * TdsAsyncState.cs: Added. Internal asynchronous state object.
278 * TdsAsyncResult.cs: Added. Internal asynchronous result
281 2005-04-04 Sureshkumar T <tsureshkumar@novell.com>
283 * Tds50.cs: Pass parameters to the server. cut & paste from
284 Tds70.cs. To make the parmeters work with SybaseClient.
286 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
288 * Tds70.cs: turns out that sp_reset_connection procedure might not be
289 found ("Invalid object name 'sp_reset_connection'"). In this case, and
290 if we get a proper state ('Class' property in the SqlException), just
293 * TdsConnectionPool.cs: if the connection cannot be reset, attemp to
294 disconnect it before losing the last reference to it.
296 2005-03-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
298 * Tds.cs: set the charset for MS SQL 2000. Patch from Aleksandar
299 Dezelin. Closes bug #73591.
301 2005-02-04 Sureshkumar T <tsureshkumar@novell.com>
303 * Tds.cs (ProcessEndToken): Added a bool validRowCount and add to
304 recordsAffected count if we meet DoneInProc..
306 2005-02-02 Sureshkumar T <tsureshkumar@novell.com>
308 * TdsConnectionParameters.cs: added a method Reset to initialize
311 2005-01-16 Daniel Morgan <danielmorgan@verizon.net>
313 * Tds.cs: TDS 5.0 (Sybase) needs to get a DECIMAL
314 differently than TDS 7.0 (SqlServer). Fixes bug 70228.
315 Thanks to Sebastien Robitaille for the patch for Sybase.
317 2005-01-07 Sureshkumar T <tsureshkumar@novell.com>
320 - add a special case for datetime parameters to convert to
321 invariant culture. fixes bug #70209.
322 - change format to MMM dd yyyy, this works for both client locale
323 change and server login locale change. fixes bug #66564.
325 2005-01-06 Sureshkumar T <tsureshkumar@novell.com>
327 * Tds.cs: change the typecast to ushort for
328 GetDateTimeValue. fixes bug #70651.
330 2004-11-06 Gert Driesen <drieseng@users.sourceforge.net>
331 * Tds70.cs: avoid unnecessary property call.
333 2004-11-01 Gert Driesen <drieseng@users.sourceforge.net>
335 * Tds70.cs: when type of parameter value is enum, convert value to
336 underlying type before converting value to string as we'd otherwise
337 be using the enum field name
339 2004-10-30 Umadevi S <sumadevi@novell.com>
340 * Tds.cs : GetColumnValue method: handling null guid values correctly.
341 This fixes bug #68804.
342 Thanks for the patch /bug report by Aleksandar Dezelin
344 2004-10-14 Umadevi S <sumadevi@novell.com>
345 * Tds.cs : GetTextValue method- handling zero length string correctly
346 This fixes bug #67916
348 2004-08-14 Geoff Norton <gnorton@customerdna.com>
352 Make Tds70 work on Big Endian machines.
353 BitConverter uses unsafe and returns things in host order; we need to
354 swap some values to put them back into the approrpiate order for the wire.
356 2004-08-09 Sureshkumar T <tsureshkumar@novell.com>
357 * Tds70.cs - Prepare Method stored procedure handle read problem fixed.
359 2004-06-30 Umadevi S <sumadevi@novell.com>
360 * Tds.cs - In the NextResult method handling TdsPacketSubType. TableName.
363 2004-04-22 Sebastien Pouliot <sebastien@ximian.com>
365 * Tds70.cs: Updated to match changes in Mono.Security.dll.
367 2004-04-05 Lluis Sanchez Gual <lluis@ximian.com>
369 * ITds.cs: Added method for reseting a connection.
370 * Tds.cs: Added base implementation for ITds.Reset.
371 * Tds70.cs: Implemented ITds.Reset().
372 * TdsConnectionPool.cs: Implemented connection pool that can be reused by
375 2004-04-01 Lluis Sanchez Gual <lluis@ximian.com>
377 * Tds.cs: All methods now return DBNull instead of null for null values.
378 * Tds50.cs, Tds70.cs: Support parameters with DBNull value.
380 2003-12-21 Tim Coleman <tim@timcoleman.com>
382 Fix Integrated Security to work with Domain users.
384 2003-12-06 Sebastien Pouliot <spouliot@videotron.ca>
385 for Daniel Morgan <danielmorgan@verizon.net>
387 Sebastien Pouliot (spouliot@motus.com) helped me greatly with his
390 * Mono.Data.Tds.Protocol/Tds.cs
391 * Mono.Data.Tds.Protocol/Tds70.cs
392 * Mono.Data.Tds.Protocol/TdsConnectionParameters.cs
393 * Mono.Data.Tds.Protocol/TdsPacketSubType.cs
394 * Mono.Data.Tds.Protocol/TdsPacketType.cs: added NT Authentication aka
395 Integrated Security aka Domain Login
397 2003-10-19 Joerg Rosenkranz <joergr@voelcker.com>
399 * Tds.cs (GetStringValue): A string length of 0xFF (255) is not
400 misinterpreted as special value anymore.
402 This is a fix to bug #49835.
404 2003-10-03 Diego Caravana <diego@toth.it>
406 * Tds70.cs: Now handles parameters of type ReturnValue and
408 (BuildParameters): skips the ReturnValue params and builds the
409 set string considering the assigned value for InputOutput ones.
410 (BuildProcedureCall): like the preceding one plus adds the return
411 value to the final select.
413 2003-08-22 Duncan Mak <duncan@ximian.com>
415 * Tds.cs (ProcessEndToken): RecordsAffected was not filled
416 correctly. I've found out that the record count was submitted for
417 TdsPacketSubType.Done. So I changed the behaviour to include this
418 (without deeper knowledge of the TDS protocol). Patch from Jörg
419 Rosenkranz <joergr@voelcker.com>.
421 This is part of a fix to bug #40315.
423 2003-05-07 Miguel de Icaza <miguel@ximian.com>
425 Patches from Igor Nosyryev <nosyryev@attbi.com>
427 * TdsComm.cs: (GetString): GetString adds extra byte to a string
428 at end. It suppose to be '\0', but '\0' is valid value in .NET
429 string, so this byte must not be used.
431 * Tds.cs (GetDecimalValue):Method reads extra byte if a DECIMAL
432 field contains NULL. As a result server's response is parsed
433 incorrectly and this method fires an exception.
435 2003-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
438 (FormatParameter): send input/output parameter names. This way we don't
439 depend on the parameter position being different of the index in the
440 parameter collection.
442 2002-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
445 (Disconnect): close the stream and set connected to false.
446 (NextResult): check if after DoneProc we have a ColumnMetadata + Row,
447 which holds the values for the output parameters and read them.
448 (LoadRow): add the values to outputParameters if DoneProc.
449 When executing a stored procedure, we execute the procedure and then
450 select the parameter values.
453 (BuildParameters): check Parameters.
455 * TdsComm.cs: added Close () to close the stream.
457 * TdsConnectionParameters.cs: initialize all the string to be empty.
459 2002-11-04 Tim Coleman (tim@timcoleman.com)
461 New class added to handle (potentially) large
464 Modified to use TdsBigDecimal instead of
465 decimal for transit of (potentially) large
468 2002-11-03 Tim Coleman (tim@timcoleman.com)
469 * TdsColumnStatus.cs:
470 Newly added to handle column metadata
472 Handle table name and column detail results
476 rename TableName BaseTableName for consistency
477 * TdsPacketSubType.cs:
478 We now know what subtype 0xa5 is
479 * TdsPacketTableNameResult.cs:
480 Add means to store table names
482 Add new schema information
484 2002-11-01 Tim Coleman (tim@timcoleman.com)
486 Add DoneProc property
488 *Lots*. Some stuff to get binary types
489 to work, other stuff to get new prepares
491 * TdsPacketEndTokenResult.cs:
492 Add Packetsubtype property
493 * TdsPacketRowResult:
494 Now implements ICollection and IList.
496 2002-10-31 Tim Coleman (tim@timcoleman.com)
498 Added because I can't really use SchemaInfo
501 * TdsPacketColumnInfoResult.cs :
502 ChangeDefinition of schema
506 Add new information to schema
509 2002-10-30 Tim Coleman (tim@timcoleman.com)
510 * TdsColumnSchema.cs:
511 Ditch this in favor of System.Data.Common.SchemaInfo
513 Change ColumnInfo to Schema
515 Uses new SchemaInfo object
520 * TdsPacketColumnInfoResult.cs:
521 * TdsPacketRowResult.cs:
522 Uses new SchemaInfo object
525 2002-10-29 Tim Coleman (tim@timcoleman.com)
527 Add OutputParameters collection
529 Much reformatting, added handling for dates,
530 fixed handling of output parameters, and a
532 * TdsPacketEndTokenResult.cs:
533 Remove incorrect exception
535 Add Logoff packet type.
537 2002-10-28 Tim Coleman (tim@timcoleman.com)
539 Add much handling to get the following types
540 working in queries: string, int, decimal
541 All sorts of other bug fixing and general
546 ProcessColumnInfo was abstracted in Tds.cs
547 and subclassed, because 7.0 provides the information
548 in a different format.
549 * TdsColumnSchema.cs:
550 Added size, precision, scale
552 Fixed GetString because it wasn't working properly
555 Change state and severity to byte instead of int
556 because that is more consitent.
559 2002-10-25 Tim Coleman (tim@timcoleman.com)
560 * TdsPacketErrorResultCollection.cs:
561 New class added for exporting errors
566 * TdsPacketEndTokenResult.cs:
567 * TdsPacketRowResult.cs:
568 Changes to make SqlClient build.
570 2002-10-24 Tim Coleman (tim@timcoleman.com)
572 Added column info, and NextResult/NextRow
574 * TdsColumnSchema.cs:
575 New class added to keep track of column info
577 Many, many changes to get queries working
579 * TdsPacketColumnInfoResult.cs:
580 * TdsPacketColumnNamesResult.cs:
581 Doesn't use a DataColumnCollection anymore
583 * TdsPacketRowResult.cs:
586 2002-10-23 Tim Coleman (tim@timcoleman.com)
592 New classes added. Functionality
593 is split up because different protocols
594 have slight differences.
596 Remove some unnecessary code after
597 the above split, and add in a whole
598 lot more stuff for completeness.
600 Fix Int4. Wrong enum value.
602 Move the encoder out of constructor
603 because we don't know the charset at
605 * TdsConnectionParameters.cs:
607 * TdsPacketEndTokenResult.cs:
608 Implement ToString ()
611 2002-10-22 Tim Coleman (tim@timcoleman.com)
613 More implementation. Does some
614 query stuff now. Can also change
616 * TdsConnectionParameters.cs:
617 Rename Host to DataSource, and
618 add Hostname for the local hostname.
619 * TdsPacketEndTokenResult.cs:
620 Change TODO attribute
625 2002-10-21 Tim Coleman (tim@timcoleman.com)
628 A whole slew of changes to get logon
629 to work (it now works in both TDS 7.0
630 and TDS 4.2) ... danmorg can test with
632 TdsComm has some simplifications too,
633 because C# has some features not present
634 in the Java implementation.
635 * TdsConnectionParameters.cs:
636 Change a few default values.
638 Implement this class.
640 2002-10-20 Tim Coleman (tim@timcoleman.com)
643 * TdsEnvPacketSubType.cs:
645 * TdsPacketColumnInfoResult.cs:
646 * TdsPacketColumnNamesResult.cs:
647 * TdsPacketColumnOrderResult.cs:
648 * TdsPacketControlResult.cs:
649 * TdsPacketEndTokenResult.cs:
650 * TdsPacketErrorResult.cs:
651 * TdsPacketMessageResult.cs:
652 * TdsPacketOutputParam.cs:
653 * TdsPacketResult.cs:
654 * TdsPacketRetStatResult.cs:
655 * TdsPacketRowResult.cs:
656 * TdsPacketSubType.cs:
657 * TdsPacketTableNameResult.cs:
658 * TdsPacketUnknown.cs:
659 New classes added as part of TDS internal implementation.
661 Some work on receiving and interpreting packages received from
662 SQL Server. Still doesn't work completely.
664 Add some methods as part of the ongoing work with Tds.cs
665 * TdsConnectionParameters.cs:
666 Add default values for Encoding ("iso-8859-1"), Port (1433),
669 2002-10-18 Tim Coleman (tim@timcoleman.com)
670 * TdsConnectionInternal:
671 Add some implementation details
673 New class, which will handle the low-level
674 communication with the database
675 * TdsPacketTypeInternal:
676 Add new packet type, TdsPacketTypeInternal.None
677 which is used when no packet is being constructed.
680 2002-10-17 Tim Coleman (tim@timcoleman.com)
683 * TdsCommandInternal.cs:
684 * TdsConnectionInternal.cs:
685 * TdsPacketTypeInternal.cs:
686 * TdsServerTypeInternal.cs:
687 * TdsTransactionInternal.cs:
688 * TdsVersionInternal.cs:
689 New classes added. These are the
690 internal implementations, meant for
691 "wrapping" from other locations.