1 2009-05-16 Veerapuram Varadhan <vvaradhan@novell.com>
3 * Tds70.cs (WriteParameterInfo): Default precision is 29 and not 28.
5 2009-05-16 Veerapuram Varadhan <vvaradhan@novell.com>
7 * Tds70.cs (WriteParameterInfo): Do not change the original
10 2009-05-16 Veerapuram Varadhan <vvaradhan@novell.com>
13 * Tds.cs (ServerTdsVersion): New property to access ServerVersion.
15 * Tds70.cs (WriteParameterInfo): Treat Decimal types as Numeric
16 types from SQL Server 2000.
18 * TdsVersion.cs: Add SQL Server 2008 version.
20 2009-05-02 Veerapuram Varadhan <vvaradhan@novell.com>
22 ** Fixes #462947 - Patch by Gert Driesen
23 * Tds.cs (InitExec): More intialization of variables.
25 2009-04-28 Veerapuram Varadhan <vvaradhan@novell.com>
27 * Tds.cs (InitExec): Move initialization of SequentialAccess related
30 2009-04-28 Veerapuram Varadhan <vvaradhan@novell.com>
32 * Tds.cs (ExecuteQuery): Reset all the variables related to LoadData
33 when performing queries with SequentialAccess set to true. Fixes
34 incorrect handling of data retrieval when multiple queries are run
35 with SequentialAccess set to true for the same instance of Tds.
37 2009-04-28 Veerapuram Varadhan <vvaradhan@novell.com>
39 * Tds.cs (ExecuteQuery): Reset SequentialAccess read state variables
40 in order to avoid blocking forever when two queries are executed with
41 SequentialAccess set to true for the same instance of Tds.
43 2009-04-28 Veerapuram Varadhan <vvaradhan@novell.com>
46 * Tds70.cs (Reset): Call base.Reset to update Database being used.
48 2009-04-28 Gonzalo Paniagua Javier <gonzalo@novell.com>
50 * TdsConnectionPool.cs: if GetConnection() fails to create a
51 connection, try again several times and then throw. Improved
52 ResetConnectionPool() so that it does not immediately close
53 connections in use. Don't re-add connections that have been closed.
55 * Tds.cs: Connected tests the socket connection too. Made Disconnect()
58 * TdsComm.cs: set more socket options (timeout and NoDelay) and have a
59 single entry point for reading from the stream.
61 2009-03-23 Veerapuram Varadhan <vvaradhan@novell.com>
63 * Tds.cs: Properly handle TdsColumnType.BigInt as we support TDS 8 now.
65 2009-03-15 Veerapuram Varadhan <vvaradhan@novell.com>
68 * Tds70.cs (Reset): Call base.Reset to update Database being used.
70 2009-03-14 Veerapuram Varadhan <vvaradhan@novell.com>
72 * Tds70.cs (WriteParameterInfo): Handle scenarios of Partlentype,
75 2009-03-04 Veerapuram Varadhan <vvaradhan@novell.com>
77 * TdsComm.cs (Append (*)): Do not create temporary byte arrays,
78 instead manipulate directly. Saves quite a bit of allocations
79 and improves performance.
80 (AppendInternal) : Do the math here.
81 (TdsByteOrder) : Property that indicates the byte-order-encoding which,
82 is independent of host's byte-order-encoding.
83 (SendPhysicalPacket): Add packet-id to the header
85 2009-02-26 Veerapuram Varadhan <vvaradhan@novell.com>
87 * Tds.cs (ProcessLoginAck): Set TdsVersion to the version
88 supported by the server.
89 (GetColumnValue): lcid and sortId are available only from Tds 8.
91 * Tds80.cs (ProcessColumnInfo, ProcessOutputParam): Call base
92 methods if the server version is less than Tds 8.
94 2009-02-19 Veerapuram Varadhan <vvaradhan@novell.com>
96 * Tds.cs: Tds 8 collation support
99 TdsDataColumn.cs: - ditto -
100 TdsCollation.cs: New file. Based on patch from Dmitry S. Kataev
101 <dmitryskey@hotmail.com>
103 2009-02-02 Veerapuram Varadhan <vvaradhan@novell.com>
105 * Tds.cs: TDS 8 changes
108 TdsVersion.cs: - ditto -
109 TdsEnvPacketSubType.cs: - ditto -
110 TdsComm.cs: - ditto -
112 2009-01-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
114 * Tds70.cs: fix for output parameters and '@'.
115 Fixes bug #470579. Patch from Varadhan.
117 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
119 * TdsConnectionPool.cs: made getting/releasing connections thread safe.
120 If we have a release connection available, we return that without locking
122 2009-01-21 Christian Hergert <christian.hergert@gmail.com>
124 * TdsComm.cs: optimize Append(byte[],int,byte) for adding data to
125 the buffer in the largest size of chunks possible. also optimize
126 other Append overloads to use this rather than lots of Append(byte).
128 2009-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
130 * TdsComm.cs: no need for the ManualResetEvent or the timeout instance
133 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
135 * Tds70.cs: fix my mistake in the previous patch.
137 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
139 * Tds70.cs: more '@' handling.
141 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
143 * Tds70.cs: send the leading '@' for parameters that do not have one.
145 Thanks to William Shallum.
147 2009-01-04 Gert Driesen <drieseng@users.sourceforge.net>
149 * Tds.cs: Support detecting NULL value when sequentially reading
150 text/ntext/image column. Fixed typo in exception message in
151 GetSequentialColumnValue. Support reading zero-length binary data.
153 2008-12-30 Gert Driesen <drieseng@users.sourceforge.net>
155 * Tds.cs: Added IsWideType method.
156 * Tds70.cs: Fixed columnsize for unicode columns. Set precision
157 and scale for non-decimal/numeric column.
158 * TdsColumnType.cs: Adds tds names as comment.
160 2008-12-30 Gert Driesen <drieseng@users.sourceforge.net>
162 * Tds.cs (LoadData): Improve exception message when attempting to
163 read before the current position. Update the remaining length of the
164 stream when skipping bytes.
166 2008-12-05 Gonzalo Paniagua Javier <gonzalo@novell.com>
168 * Tds70.cs: support parameter names with or without a leading '@'.
170 2008-11-13 Veerapuram Varadhan <vvaradhan@novell.com>
172 * TdsComm.cs (ResetConnection, IsConnected): Added a property and
173 method. IsConnected will check for any connection-reset occurrance
174 from other end-point of the underlying socket. ResetConnection
175 adds the "reset" bit in the Status flag field of packet header.
176 Set socket option to keep alive, whereever supported and also, let
177 the socket close along with the underlying stream.
179 * Tds70.cs (Reset): Use the new ResetConnection property instead
180 of executing sp_reset_connection. Saves a round-trip.
182 2008-11-11 Gert Driesen <drieseng@users.sourceforge.net>
184 * Tds70.cs: Support writing negative (small)money values. Added
185 overflow check for smallmoney values. Fixes bug #428139.
186 * Tds.cs: Fixed reading negative (small)money values.
188 2008-11-09 Gert Driesen <drieseng@users.sourceforge.net>
190 * TdsConnectionPool.cs: Added TdsConnectionPoolManager.GetConnection
191 overload that can be used to retrieve an existing connection pool.
192 Modified ResetConnectionPool () to skip free slots in the pool and to
193 close pooled connections that are not in use. Pooled connections that
194 are in use are now marked as non-pooled so that they are no longer
195 returned to the pool when they are closed. Fixes bug #443131.
197 2008-09-16 Veerapuram Varadhan <vvaradhan@novell.com>
199 Patch from Christian Hergert <christian.hergert@gmail.com>
200 * TdsComm.cs: Expose the stream to be internally used by other
202 * Tds70.cs (Reset): Validate whether the connection is available
205 2008-07-09 Veerapuram Varadhan <vvaradhan@novell.com>
207 * TdsComm.cs: Cleanup stray Console.WriteLine that got in during last commit
209 2008-07-09 Veerapuram Varadhan <vvaradhan@novell.com>
211 Patch by Jon Larimer <jlarimer@gmail.com> fixes ##407208
212 * TdsComm.cs: Call DNS.GetHostEntry() only for host names and not for IPs.
214 2008-07-06 Gert Driesen <drieseng@users.sourceforge.net>
216 * TdsConnectionPool.cs: When pooled connection cannot be reset, remove
217 it from pool and allow slot to be re-used for a newly established
218 connection. Fixes part of bug #360157. When pool is full, and no
219 connection becomes available before the connect timeout has elapsed,
220 then throw an InvalidOperationException instead of a SqlException.
221 * Tds50.cs: Fixed compiler warning. Removed extra tabs, and changed
222 spaces to tabs. Minor code formatting.
223 * Tds70.cs: Removed extra tabs, and changed spaces to tabs. Code
224 formatting. Avoid calling Environment.UserDomainName if username
225 contains domain. Use String.Empty instead of "".
226 * TdsConnectionParameters.cs: Invoke Reset method for initializing
227 fields. Spaces to tabs.
229 2008-07-04 Gert Driesen <drieseng@users.sourceforge.net>
231 * TdsConnectionPool.cs: On 1.0 profile, use object[] for list of
232 connections. Patch provided by Christian Hergert. Fixes bug #406540.
234 2008-07-04 Gert Driesen <drieseng@users.sourceforge.net>
236 * Tds.cs: Avoid accessing TdsDataColumnCollection indexer. On 2.0
237 profile, use predefined properties on TdsDataColumn for setting the
238 BaseColumnName and BaseTableName. Fixes bug #406556.
239 * Tds50.cs: Avoid accessing TdsDataColumnCollection indexer, and
242 2008-07-01 Gert Driesen <drieseng@users.sourceforge.net>
244 * Tds70.cs: Avoid accessing TdsDataColumnCollection indexer.
245 * Tds.cs: Removed unused method.
246 * TdsComm.cs: Fixed compiler warning.
248 2008-07-01 Marek Habersack <mhabersack@novell.com>
250 * TdsDataColumnCollection.cs, Tds50.cs, Tds42.cs, Tds70.cs,
251 Tds.cs: adjust for changes below.
253 * TdsDataColumn.cs: use the named properties only in the 2.0
254 profile. The reason is that Mono.Data.TdsClient.TdsDataReader
255 needs to know if a property has been set or not. With 2.0 it is
256 easy to implement using nullable types, with 1.x it would require
257 using e.g. BitArray to control which field was set, and in
258 addition extra code would be needed to check whether a field was
259 set or not. Also, it would clutter the code with #ifdefs all over
262 2008-06-30 Zoltan Varga <vargaz@gmail.com>
264 * TdsDataColumn.cs: Do not inherit from Hashtable, add always set properties
265 as normal properties so code can access them without doing a hashtable lookup.
267 * Tds.cs Tds42.cs Tds50.cs Tds70.cs: Adapt to the TdsDataColumn changes.
269 2008-06-09 Veerapuram Varadhan <vvaradhan@novell.com>
271 Patch from Christian Hergert <christian.hergert@gmail.com>
272 * TdsConnectionPool.cs: Remove unnecessary locks and code refactoring
273 * Tds.cs: Add member to hold status of the connection pool
275 2008-06-09 Ankit Jain <jankit@novell.com>
277 Tds class doesn't need to inherit Component or implement ITds, fix.
279 * Tds42.cs, Tds50.cs, Tds70.cs, Tds80.cs:
280 Make Tds-derived classes sealed.
281 * TdsConnectionPool.cs: Update.
283 2008-05-17 Gert Driesen <drieseng@users.sourceforge.net>
285 * Tds.cs: Do not return 0 for decimal/numeric columns with value NULL.
286 Avoid unnecessary initialization of fields, and minor code formatting.
288 2008-05-15 Marek Habersack <mhabersack@novell.com>
290 * Tds.cs: deal with null columns when getting value for a Numeric
293 2008-05-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
295 * Tds.cs: a numeric column with no decimal digits and a precision <= 80
296 is translated into a long.
298 2007-11-10 Gert Driesen <drieseng@users.sourceforge.net>
300 * Tds.cs: Round milliseconds for datetime. Fixes part of bug #323646.
301 * Tds70.cs: Include milliseconds for datetime parameters. Fixes part
304 2007-10-17 Nagappan <anagappan@novell.com>
306 * TdsConnectionPool.cs: Default the pooling is enabled. It has to be
307 disabled only when we clear all the pools.
309 2007-09-25 Nagappan A <anagappan@novell.com>
311 * Tds.cs (Pooling): Added new property to get the internal
312 connection pooling list.
314 * ITds.cs (Pooling): Added new property to get the internal
315 connection pooling list.
317 * TdsConnectionPool.cs (ResetConnectionPool, GetConnectionPool)
318 (ReleaseConnection): Added new methods to clear connection pool.
320 2007-08-06 Nagappan A <anagappan@novell.com>
322 * TdsComm.cs (TdsComm): Now connects to the SqlServer in Async
323 mode. Fixes bug # 81934.
325 * Tds.cs (ProcessEnvironmentChange): Gets the server locale to use
326 them when required. Fixes bug # 82047.
327 When the server resets the connection, now the client code also
328 disconnects the session and remove the instance. Fixes bug #
330 Added new protected property Locale.
332 * TdsEnvPacketSubType.cs (Locale): Added new enumerator
333 entry. This gets the Locale type of SqlServer. Fixes bug # 82047.
335 * Tds70.cs (FormatParameter): Fixes the error when trying to add a
336 row with a DateTime field into an Italian SqlServer, bug # 82047.
338 2007-07-23 Nagappan A <anagappan@novell.com>
340 * TdsBulkCopy.cs: Removed all the Namespace that are not
343 2007-07-22 Nagappan A <anagappan@novell.com>
345 * TdsBulkCopy.cs: Added new file to handle the bulk copy
348 * Tds.cs (ExecBulkCopyMetaData, ExecBulkCopy): Added new methods
349 to send and receive bulk data information.
351 * Tds70.cs (IsBlobType, IsLargeType): Moved methods to Tds.cs.
353 * TdsComm.cs: Fixed 2.0 compilation warnings.
355 * Tds50.cs: Fixed compilation warnings.
357 * Tds42.cs: Fixed compilation warnings.
359 * TdsPacketType.cs: Added Bulk type.
361 2007-05-30 Nagappan A <anagappan@novell.com>
363 * TdsColumnType.cs: Added new types BigNVarChar, Variant to
364 TdsColumnType enumerator.
366 * TdsComm.cs (Append): Appends new data types to the TDS data
367 stream and also implemented new Append overloaded method.
369 * Tds.cs (BeginLoad): New case to handle BigBinary.
370 (GetMoneyValue): Simplified the switch / case conditions.
372 * TdsDataRow.cs: Instance of index checks for the given index to
373 be less than list count, else an exception will be thrown.
375 * Tds70.cs (sqlserverMagic): Modified byte values.
376 (ExecProc): Now directly calls ExecRPC for any number of
377 parameters being passed.
378 (ExecRPC): New logic to handle parameters.
379 (WriteParameterInfo): New private method to generate information
380 about each parameter.
381 (ProcessReturnStatus): New protected method to process the return
382 status of output parameter value.
384 2007-03-21 Nagappan A <anagappan@novell.com>
386 * Tds70.cs (BuildParameters, FormatParameter): Include @ before
387 parameter name, if doesnot exist.
389 2006-07-18 Dean Brettle <dean@brettle.com>
391 * Tds70.cs : Fixed bug in FormatParameter() which caused
392 ArgumentOutOfRangeException when formatting 0-length varbinary values
395 2006-05-03 Senganal T <tsenganal@novell.com>
398 - SetCharset () : Fix to set the Charset correctly.
399 Patch from Andrzej Kurzeja
401 2006-03-08 Senganal T <tsenganal@novell.com>
404 - ProcessColumnInfo () : Set IsAutoIncrement Value for the column.
406 2006-02-10 Senganal T <tsenganal@novell.com>
409 - GetSequentialColumn,BeginLoad, EndLoad,
410 LoadData, SkipRow, SkipToColumnIndex
411 New Methods to Support sequential loading of row data
413 - Skip : Changed arugment type from int to long.
415 2006-01-27 Senganal T <tsenganal@novell.com>
418 - Modified GetSqlMoney () , to set the precision and Scale correctly.
419 - Modified ProcessColumnDetails , to set the schema values correctly.
420 * TdsDataColumn.cs : Added some default values for the column schema
422 2005-12-07 Senganal T <tsenganal@novell.com>
425 - IsValidRowCount () : Find out if a row count is valid.
428 - ProcessEndToken (): Removed some redundant code.
430 2005-12-03 Senganal T <tsenganal@novell.com>
433 - FormatParameter () : For DateTime Parameters, convert the value if
434 specified as a string. Fixes bug#76880
436 2005-11-24 Senganal T <tsenganal@novell.com>
440 - Modifications to set the desired packetsize info when connecting
443 2005-11-23 Senganal T <tsenganal@novell.com>
446 - ResizeOutBuf : Modified to shrink the output buffer if
447 the block size is reduced. Fixed bug #76778
449 2005-10-27 Senganal T <tsenganal@novell.com>
452 - Added a virtual method IsValidRowCount ()
453 - Modified the way RecordsAffected is being counted
456 - Overrode IsValidRowCount(), to check if the rowcount
457 returned by sqlserver is valid.
459 2005-10-19 Senganal T <tsenganal@novell.com>
461 * TdsConnectionParameter.cs :
462 - Added a class variable 'AttachDBFileName' to store the location
465 * Tds70.cs (Connect) :
466 - Modified to append the bytes corresponding to AttachDBFileName
467 into the Tds Packets.
469 2005-08-26 Sureshkumar T <tsureshkumar@novell.com>
471 * Tds70.cs (ExecProc): if no parameters, execute via RPC. parameter
472 support has to be added.
474 * Tds.cs (ExecRPC): added virtual method to execute via RPC.
476 This fixes bug #68978 by enabling execution of sp_reset_connection.
478 2005-08-24 Sureshkumar T <tsureshkumar@novell.com>
480 * Tds.cs: ProcessColumnDetail (): expression columns don't have
483 2005-08-05 Sureshkumar T <tsureshkumar@novell.com>
485 * Tds70.cs: Reset (): remove exec.
487 2005-07-01 Sureshkumar T <tsureshkumar@novell.com>
489 * Tds70.cs: FormatParameter: For uniqueidentifier, pass the guid
490 as '..' rather than hex. Tested with SqlServer 2005.
492 patch from jsinger@eggmouse.com & Hubert FONGARNAND.
494 2005-06-29 Sureshkumar T <tsureshkumar@novell.com>
496 * TdsInternalException.cs: Add ctor for InnerException.
498 * TdsComm.cs: Throw TdsInternalException rather than
501 2005-06-01 Sureshkumar T <tsureshkumar@novell.com>
503 * Tds50.cs: add a special case for datetime parameters to convert
504 to invariant culture. fixes bug #74910.
506 2005-04-07 Sureshkumar T <tsureshkumar@novell.com>
507 Ankit Jain <radical@corewars.org>
509 * TdsComm.cs: GetPhysicalPacket is devided further into seperate
510 methods GetPhysicalPacketHeader and
511 GetPhysicalPacketData. Implemented asynchronous ReadPacket method.
513 * ITds.cs: Added additional methods for asynchronous operations.
515 * Tds.cs: Implemented base methods for asynchronous
516 operations. Version specific derivatives should override for
519 * Tds70.cs: For stored procedure, "exec" is prefixed by
520 default. Implemented asynchronous method for asynchronous command
523 * TdsAsyncState.cs: Added. Internal asynchronous state object.
525 * TdsAsyncResult.cs: Added. Internal asynchronous result
528 2005-04-04 Sureshkumar T <tsureshkumar@novell.com>
530 * Tds50.cs: Pass parameters to the server. cut & paste from
531 Tds70.cs. To make the parmeters work with SybaseClient.
533 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
535 * Tds70.cs: turns out that sp_reset_connection procedure might not be
536 found ("Invalid object name 'sp_reset_connection'"). In this case, and
537 if we get a proper state ('Class' property in the SqlException), just
540 * TdsConnectionPool.cs: if the connection cannot be reset, attemp to
541 disconnect it before losing the last reference to it.
543 2005-03-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
545 * Tds.cs: set the charset for MS SQL 2000. Patch from Aleksandar
546 Dezelin. Closes bug #73591.
548 2005-02-04 Sureshkumar T <tsureshkumar@novell.com>
550 * Tds.cs (ProcessEndToken): Added a bool validRowCount and add to
551 recordsAffected count if we meet DoneInProc..
553 2005-02-02 Sureshkumar T <tsureshkumar@novell.com>
555 * TdsConnectionParameters.cs: added a method Reset to initialize
558 2005-01-16 Daniel Morgan <danielmorgan@verizon.net>
560 * Tds.cs: TDS 5.0 (Sybase) needs to get a DECIMAL
561 differently than TDS 7.0 (SqlServer). Fixes bug 70228.
562 Thanks to Sebastien Robitaille for the patch for Sybase.
564 2005-01-07 Sureshkumar T <tsureshkumar@novell.com>
567 - add a special case for datetime parameters to convert to
568 invariant culture. fixes bug #70209.
569 - change format to MMM dd yyyy, this works for both client locale
570 change and server login locale change. fixes bug #66564.
572 2005-01-06 Sureshkumar T <tsureshkumar@novell.com>
574 * Tds.cs: change the typecast to ushort for
575 GetDateTimeValue. fixes bug #70651.
577 2004-11-06 Gert Driesen <drieseng@users.sourceforge.net>
578 * Tds70.cs: avoid unnecessary property call.
580 2004-11-01 Gert Driesen <drieseng@users.sourceforge.net>
582 * Tds70.cs: when type of parameter value is enum, convert value to
583 underlying type before converting value to string as we'd otherwise
584 be using the enum field name
586 2004-10-30 Umadevi S <sumadevi@novell.com>
587 * Tds.cs : GetColumnValue method: handling null guid values correctly.
588 This fixes bug #68804.
589 Thanks for the patch /bug report by Aleksandar Dezelin
591 2004-10-14 Umadevi S <sumadevi@novell.com>
592 * Tds.cs : GetTextValue method- handling zero length string correctly
593 This fixes bug #67916
595 2004-08-14 Geoff Norton <gnorton@customerdna.com>
599 Make Tds70 work on Big Endian machines.
600 BitConverter uses unsafe and returns things in host order; we need to
601 swap some values to put them back into the approrpiate order for the wire.
603 2004-08-09 Sureshkumar T <tsureshkumar@novell.com>
604 * Tds70.cs - Prepare Method stored procedure handle read problem fixed.
606 2004-06-30 Umadevi S <sumadevi@novell.com>
607 * Tds.cs - In the NextResult method handling TdsPacketSubType. TableName.
610 2004-04-22 Sebastien Pouliot <sebastien@ximian.com>
612 * Tds70.cs: Updated to match changes in Mono.Security.dll.
614 2004-04-05 Lluis Sanchez Gual <lluis@ximian.com>
616 * ITds.cs: Added method for reseting a connection.
617 * Tds.cs: Added base implementation for ITds.Reset.
618 * Tds70.cs: Implemented ITds.Reset().
619 * TdsConnectionPool.cs: Implemented connection pool that can be reused by
622 2004-04-01 Lluis Sanchez Gual <lluis@ximian.com>
624 * Tds.cs: All methods now return DBNull instead of null for null values.
625 * Tds50.cs, Tds70.cs: Support parameters with DBNull value.
627 2003-12-21 Tim Coleman <tim@timcoleman.com>
629 Fix Integrated Security to work with Domain users.
631 2003-12-06 Sebastien Pouliot <spouliot@videotron.ca>
632 for Daniel Morgan <danielmorgan@verizon.net>
634 Sebastien Pouliot (spouliot@motus.com) helped me greatly with his
637 * Mono.Data.Tds.Protocol/Tds.cs
638 * Mono.Data.Tds.Protocol/Tds70.cs
639 * Mono.Data.Tds.Protocol/TdsConnectionParameters.cs
640 * Mono.Data.Tds.Protocol/TdsPacketSubType.cs
641 * Mono.Data.Tds.Protocol/TdsPacketType.cs: added NT Authentication aka
642 Integrated Security aka Domain Login
644 2003-10-19 Joerg Rosenkranz <joergr@voelcker.com>
646 * Tds.cs (GetStringValue): A string length of 0xFF (255) is not
647 misinterpreted as special value anymore.
649 This is a fix to bug #49835.
651 2003-10-03 Diego Caravana <diego@toth.it>
653 * Tds70.cs: Now handles parameters of type ReturnValue and
655 (BuildParameters): skips the ReturnValue params and builds the
656 set string considering the assigned value for InputOutput ones.
657 (BuildProcedureCall): like the preceding one plus adds the return
658 value to the final select.
660 2003-08-22 Duncan Mak <duncan@ximian.com>
662 * Tds.cs (ProcessEndToken): RecordsAffected was not filled
663 correctly. I've found out that the record count was submitted for
664 TdsPacketSubType.Done. So I changed the behaviour to include this
665 (without deeper knowledge of the TDS protocol). Patch from Jörg
666 Rosenkranz <joergr@voelcker.com>.
668 This is part of a fix to bug #40315.
670 2003-05-07 Miguel de Icaza <miguel@ximian.com>
672 Patches from Igor Nosyryev <nosyryev@attbi.com>
674 * TdsComm.cs: (GetString): GetString adds extra byte to a string
675 at end. It suppose to be '\0', but '\0' is valid value in .NET
676 string, so this byte must not be used.
678 * Tds.cs (GetDecimalValue):Method reads extra byte if a DECIMAL
679 field contains NULL. As a result server's response is parsed
680 incorrectly and this method fires an exception.
682 2003-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
685 (FormatParameter): send input/output parameter names. This way we don't
686 depend on the parameter position being different of the index in the
687 parameter collection.
689 2002-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
692 (Disconnect): close the stream and set connected to false.
693 (NextResult): check if after DoneProc we have a ColumnMetadata + Row,
694 which holds the values for the output parameters and read them.
695 (LoadRow): add the values to outputParameters if DoneProc.
696 When executing a stored procedure, we execute the procedure and then
697 select the parameter values.
700 (BuildParameters): check Parameters.
702 * TdsComm.cs: added Close () to close the stream.
704 * TdsConnectionParameters.cs: initialize all the string to be empty.
706 2002-11-04 Tim Coleman (tim@timcoleman.com)
708 New class added to handle (potentially) large
711 Modified to use TdsBigDecimal instead of
712 decimal for transit of (potentially) large
715 2002-11-03 Tim Coleman (tim@timcoleman.com)
716 * TdsColumnStatus.cs:
717 Newly added to handle column metadata
719 Handle table name and column detail results
723 rename TableName BaseTableName for consistency
724 * TdsPacketSubType.cs:
725 We now know what subtype 0xa5 is
726 * TdsPacketTableNameResult.cs:
727 Add means to store table names
729 Add new schema information
731 2002-11-01 Tim Coleman (tim@timcoleman.com)
733 Add DoneProc property
735 *Lots*. Some stuff to get binary types
736 to work, other stuff to get new prepares
738 * TdsPacketEndTokenResult.cs:
739 Add Packetsubtype property
740 * TdsPacketRowResult:
741 Now implements ICollection and IList.
743 2002-10-31 Tim Coleman (tim@timcoleman.com)
745 Added because I can't really use SchemaInfo
748 * TdsPacketColumnInfoResult.cs :
749 ChangeDefinition of schema
753 Add new information to schema
756 2002-10-30 Tim Coleman (tim@timcoleman.com)
757 * TdsColumnSchema.cs:
758 Ditch this in favor of System.Data.Common.SchemaInfo
760 Change ColumnInfo to Schema
762 Uses new SchemaInfo object
767 * TdsPacketColumnInfoResult.cs:
768 * TdsPacketRowResult.cs:
769 Uses new SchemaInfo object
772 2002-10-29 Tim Coleman (tim@timcoleman.com)
774 Add OutputParameters collection
776 Much reformatting, added handling for dates,
777 fixed handling of output parameters, and a
779 * TdsPacketEndTokenResult.cs:
780 Remove incorrect exception
782 Add Logoff packet type.
784 2002-10-28 Tim Coleman (tim@timcoleman.com)
786 Add much handling to get the following types
787 working in queries: string, int, decimal
788 All sorts of other bug fixing and general
793 ProcessColumnInfo was abstracted in Tds.cs
794 and subclassed, because 7.0 provides the information
795 in a different format.
796 * TdsColumnSchema.cs:
797 Added size, precision, scale
799 Fixed GetString because it wasn't working properly
802 Change state and severity to byte instead of int
803 because that is more consitent.
806 2002-10-25 Tim Coleman (tim@timcoleman.com)
807 * TdsPacketErrorResultCollection.cs:
808 New class added for exporting errors
813 * TdsPacketEndTokenResult.cs:
814 * TdsPacketRowResult.cs:
815 Changes to make SqlClient build.
817 2002-10-24 Tim Coleman (tim@timcoleman.com)
819 Added column info, and NextResult/NextRow
821 * TdsColumnSchema.cs:
822 New class added to keep track of column info
824 Many, many changes to get queries working
826 * TdsPacketColumnInfoResult.cs:
827 * TdsPacketColumnNamesResult.cs:
828 Doesn't use a DataColumnCollection anymore
830 * TdsPacketRowResult.cs:
833 2002-10-23 Tim Coleman (tim@timcoleman.com)
839 New classes added. Functionality
840 is split up because different protocols
841 have slight differences.
843 Remove some unnecessary code after
844 the above split, and add in a whole
845 lot more stuff for completeness.
847 Fix Int4. Wrong enum value.
849 Move the encoder out of constructor
850 because we don't know the charset at
852 * TdsConnectionParameters.cs:
854 * TdsPacketEndTokenResult.cs:
855 Implement ToString ()
858 2002-10-22 Tim Coleman (tim@timcoleman.com)
860 More implementation. Does some
861 query stuff now. Can also change
863 * TdsConnectionParameters.cs:
864 Rename Host to DataSource, and
865 add Hostname for the local hostname.
866 * TdsPacketEndTokenResult.cs:
867 Change TODO attribute
872 2002-10-21 Tim Coleman (tim@timcoleman.com)
875 A whole slew of changes to get logon
876 to work (it now works in both TDS 7.0
877 and TDS 4.2) ... danmorg can test with
879 TdsComm has some simplifications too,
880 because C# has some features not present
881 in the Java implementation.
882 * TdsConnectionParameters.cs:
883 Change a few default values.
885 Implement this class.
887 2002-10-20 Tim Coleman (tim@timcoleman.com)
890 * TdsEnvPacketSubType.cs:
892 * TdsPacketColumnInfoResult.cs:
893 * TdsPacketColumnNamesResult.cs:
894 * TdsPacketColumnOrderResult.cs:
895 * TdsPacketControlResult.cs:
896 * TdsPacketEndTokenResult.cs:
897 * TdsPacketErrorResult.cs:
898 * TdsPacketMessageResult.cs:
899 * TdsPacketOutputParam.cs:
900 * TdsPacketResult.cs:
901 * TdsPacketRetStatResult.cs:
902 * TdsPacketRowResult.cs:
903 * TdsPacketSubType.cs:
904 * TdsPacketTableNameResult.cs:
905 * TdsPacketUnknown.cs:
906 New classes added as part of TDS internal implementation.
908 Some work on receiving and interpreting packages received from
909 SQL Server. Still doesn't work completely.
911 Add some methods as part of the ongoing work with Tds.cs
912 * TdsConnectionParameters.cs:
913 Add default values for Encoding ("iso-8859-1"), Port (1433),
916 2002-10-18 Tim Coleman (tim@timcoleman.com)
917 * TdsConnectionInternal:
918 Add some implementation details
920 New class, which will handle the low-level
921 communication with the database
922 * TdsPacketTypeInternal:
923 Add new packet type, TdsPacketTypeInternal.None
924 which is used when no packet is being constructed.
927 2002-10-17 Tim Coleman (tim@timcoleman.com)
930 * TdsCommandInternal.cs:
931 * TdsConnectionInternal.cs:
932 * TdsPacketTypeInternal.cs:
933 * TdsServerTypeInternal.cs:
934 * TdsTransactionInternal.cs:
935 * TdsVersionInternal.cs:
936 New classes added. These are the
937 internal implementations, meant for
938 "wrapping" from other locations.