About this download

The .NET Data Provider for Teradata is an implementation of the Microsoft ADO.NET specification. It provides direct access to the Teradata Database and integrates with the DataSet. .NET Applications use the .NET Data Provider for Teradata to load data into the Teradata Database or retrieve data from the Teradata Database.


                     .NET Data Provider for Teradata               



1.0 Overview
1.1   New Features
1.2   Problems Fixed
2.0 Teradata Product Dependencies
3.0 Operating Environments
4.0 Installation
4.1   Recommendations
4.2   Installation Procedure
5.0 Uninstall
6.0 Restrictions and Known Issues

1.0 Overview
The .NET Data Provider for Teradata is an implementation of the Microsoft 
ADO.NET specification. It provides direct access to the Teradata Database 
and integrates with the DataSet. .NET Applications use the .NET Data Provider
for Teradata to load data into the Teradata Database or retrieve data from
the Teradata Database. 

1.1 New Features
.NET Data Provider for Teradata Version contains no new features.

.NET Data Provider for Teradata Version new features are:

  a) New Provider Specific Types have been added that support the
     Teradata Database Interval Types:

            Database equivalent:  INTERVAL YEAR

            Database equivalent:  INTERVAL YEAR TO MONTH

            Database equivalent:  INTERVAL MONTH

            Database equivalent:  INTERVAL DAY

            Database equivalent:  INTERVAL DAY TO HOUR

            Database equivalent:  INTERVAL DAY TO MINUTE

            Database equivalent:  INTERVAL DAY TO SECOND

            Database equivalent:  INTERVAL HOUR

            Database equivalent:  INTERVAL HOUR TO MINUTE

            Database equivalent:  INTERVAL HOUR TO SECOND

            Database equivalent:  INTERVAL MINUTE

            Database equivalent:  INTERVAL MINUTE TO SECOND

            Database equivalent:  INTERVAL SECOND

  b) Support for the Teradata Graphic Server Character Set has
     been added.

  c) Query Band and Trusted Session support has been added at
     the connection and transaction levels.  The TdQueryBand object will 
     manage the Query Band definitions.

  d) Support for IPV6 has been added.

  e) Support for System.DateTimeOffset has been added.  
     Applications can send data of type DateTimeOffset to Teradata, and
     receive data from Teradata as a DateTimeOffset type.  This feature
     can be turned off by setting the Connection String Attribute
     EnableDateTimeOffset to false.

  f) The installation package for the .Net Data Provider for
     Teradata is now digitally signed.  The digital signature assures
     that the installation package has not been tampered with or altered
     by a third party.

  g) The TdError type contains a new property called Info.  For syntax 
     errors the Info property will contain the character position of the 
     parser syntax error in the command text.  For other errors the
     content meaning will vary.

.Net Data Provider for Teradata Version new feature are:

  a) Provider now supports the StatementInfo parcel when receiving 
     data from Teradata.  This enables the provider to make available 
     additional metadata about SQL statements sent to Teradata.  

     A new connection string attribute, UseEnhancedSchemaTable, has been 
     added to prevent compatibility problems with existing applications 
     that are caused by the additional metadata.  The default setting for 
     this attribute is "true" which indicates that the additional metadata 
     will be available to an application.  
     The following features are also available When UseEnhancedSchemaTable 
     is "true":
       -Additional metadata is available to an application 

       -TdCommandBuilder requires that a primary key must be defined by the 
        database table specified in the SELECT statement.

       -The setting of the property TdCommandBuider.ConflictOption will now 
        affect how the WHERE clause is constructed.

       -The TdCommandBuilder will use the key of the table when constructing 
        the WHERE clause of the UPDATE and DELETE statements.

       -Visual Studio 2005 DataSet Designer
          The Key of the tables will be displayed.

       -Sql Server Business Intelligence Development Studio
           Cubes can be created without manually specifying the key when the
           corresponding database table has been defined with a key.

       -Visual Studio 2008 Query Designer
           All relationships between tables are displayed graphically .

     When this attribute is set to "false", the provider will return the same 
     metadata as the prior releases.

  b) New Provider Specific Types have been added that support the Teradata 
     Database Period Data Types:

            Database equivalent:  PERIOD(DATE)
            Database equivalent:  PERIOD(TIME(scale))

            Database equivalent:  PERIOD(TIME(scale) WITH TIME ZONE)

            Database equivalent:  PERIOD(TIMESTAMP(scale))

            Database equivalent:  PERIOD(TIMESTAMP(scale) WITH TIME ZONE)

   c) The Table Schema Collection will return information about tables that 
      have No Primary Index.

1.2 Problems Fixed


  a) DR135592:  Connections using Internet Protocol Version 6 (IPv6) now 
     succeed regardless of the length of the IPv6 address. Connections 
     with an address of exactly 25 characters failed previously. 
  b) DR137172:  Data Source to IP-Address resolution now succeeds on
     on Microsoft Windows 7. Previously Data Provider generated error number
     115006 (Could not resolve DataSource=XCOPn to an IP Address) in some 
     cases (e.g. Teradata SQL Assistant 13.0).

  c) DR137565:  Efix installations will now ask for confirmation of
     removing the version being replaced (if exists).  Complete the
     removal of the existing program folder and the provider directory.

  d) DR138376:  Connection pooling will not add a session that may have
     been killed previously.  The connection string property 
     "Max Pool Size" must have been set for the killed session to be
     returned back to the connection pool causing the error.


  a) DR129806:  The Teradata Database would return the error "Locator
     is invalid because it has been changed" when filling a DataTable that 
     contains a LOB data.  This occurs when TdDataAdapter.FillSchema is called 
     to populate the DataTable with schema information, and then calling 
     TdDataAdapter.Fill.  This will no longer occur.  

  b) DR130274:  The Parse methods of TdTimestampWithTimeZone and 
     TdTimeWithTimezone was unable to parse a string that did not contain a UTC
     offset.  A FormatException gets thrown.  The Parse methods have been fixed
     so that a string that does not contain a UTC offset can be succesfully 
     parsed.  The default UTC offset that will be used is the local offset of 
     the machine.

  c) DR130286:  There are some applications that add a new line character to 
     the CommandText.  When the command is executed, the Teradata Database
     will throw an error indicating that the new line character is not a valid
     token.  The provider will now remove the new line character before 
     submitting the command to Teradata.

  d) DR131704:  The documentation for the Add and Subtract methods for 
     TdPeriodTime and TdPeriodTimeWithTimeZone incorrectly stated that an
     ArithmeticException will get thrown when the operation results with the
     beginning bound of the period being greater than or equal to the ending
     bound.  This has been changed to state that a TdException will get 

  e) DR133580: "00:00" was used as the default offset when 
     TdTimestampWithTimeZone and TdTimeWithTimeZone objects
     are created using constructors that do not include a UTC offset
     parameter.  This default was also being used when a "timestamp" or 
     "time" was implicitly converted to a TdTimestampWithTimeZone or 
     TdTimeWithTimeZone, respectively.  This has changed so that the local
     offset of the machine is used as the default offset.

     This change in behavior also affects TdTimestampWithTimeZone and

  f) DR134080:  The end bound of a period was not being correctly 
     handled when explicitly converted to another Period type.  Suppose
     a period has an end bound that is equivalent to the UNTIL_CHANGED 
     value.  When it is converted to another Period type, the end 
     bound of the resulting period was not being set to the equivalent
     UNTIL_CHANGED value of the targeted period.

     This has been fixed so that the UNTIL_CHANGED value of the 
     source type is converted to the equivalent UNTIL_CHANGED value
     of the targeted period type during an explicit conversion operation.
     This affects conversions to TdPeriodTimeWithTimeZone and 


  a) DR123430:  The DataSet Designer now orders columns of tables in the 
     order that they were defined in the data definition.

  b) DR123610:  An ArgumentOutOfRangeException will now be thrown when 
     the property TdDataAdapter.UpdateBatchSize is set to a negative 
  c) DR126310:  Documentation has been added to Developer's Guide under
     Working With Provider Features -- TdDataAdapter And TdCommandBuiler
     -- Guidelines -- Attempting to insert a Null value into an Identity 
     Column.  This section provides a guideline when inserting data of
     type decimal into a column defined as a DECIMAL and "GENERATED

  d) DR126436:  The Teradata Provider now correctly handles the situation
     when an instance of a TdCommandBuilder is set to another instance 
     of a TdDataAdapter using the TdCommandBuilder.DataAdapter property. 
     When TdCommandBuilder.DataAdapter is used to change the associated 
     TdDataAdapter, the provider unregisters with the existing one 
     then registers with the new data adapter. 

  e) DR127698:  An ArgumentOutOfRangeException is no longer thrown when
     TdCommand.UpdateRowSource is set to UpdateRowSource.OutputParameters.
  f) DR128027:  The Teradata Provider will not set the PRIMARY_KEY column
     of the Indexes Schema Collection to true for all columns contained 
     in a composite unique primary index.  All the columns in the index
     must also be defined as NOT NULL. 

  g) DR128225:  Silent install is now correctly working. Visual Studio 
     2005 and 2008 options are no longer ignored during silent 

  h) DR129224:  Documentation has been added to Developer's Guide under
     Working With Provider Features -- TdDataAdapter and TdCommandBuilder
     -- Guidelines -- Inserting Into a Column Defined As NOT NULL with a 
     Default value.  This section provides a guideline when data is being
     inserted into a database table that contains a column that is 
     defined as NOT NULL with a DEFAULT.

  i) DR129318:  The ToString method of the Date and Time types now 
     generates the correct Teradata literal string representation. 

  j) DR129320:  The IConvertible.ToType implementation of the Period 
     types have been fixed.  When this method was invoked, it was 
     possible that the Teradata Provider could go into an infinite 
  k) DR129794:  The LDAP and SPNEGO mechanisms now work when using
     Query Directory.

  l) DR124922:  The LdapServicePassword is no longer stored in 
     plain text.


  a) DR 121823:  ToTimeZone method has been added to TdTimeWithTimeZone and 
     TdTimestampWithTimeZone.  This method allows the time zone to be changed.

  b) DR 121825:  Exceptions that are thrown from the Date And Time 
     methods are now documented.

  c) DR 122987:  When the properties of a Null Date And Time value 
     (e.g. TdDate.Null) is accessed, a TdException will now get thrown 
     that indicates that this instance is the null value.  

  d) DR 123437:  An ArgumentNullException is now thrown when a null String
     reference is passed as the value parameter to the Parse method of
     all Provider Specific Date And Time Types.  If a String.Empty is
     passed as parameter into any of the Parse methods a FormatException
     is now thrown.

  e) DR 124079:  There were many problems with the documentation related to 
     the Provider Specific Date And Time Types.  Some of the exceptions thrown 
     by properties and methods were not documented, and documentation needed 
     to be clarified for the Parse and ToString methods.

  f) DR 124081:  The TdTimestampWithTimeZone.GetHashCode threw an exception 
     when this method is called from a Null value.  This has been fixed so 
     that when GetHashCode is called from a Null value, a 0 is returned.

  g) DR 124265:  Documentation for the method ToString(IFormatProvider) of 
     all Date And Time Provider Specific Types has been updated to indicate 
     that the cultural settings specified in the DateTimeFormatInfo object 
     is ignored.

  h) DR 124448:  A FormatException will now get thrown from the Parse methods 
     of TdTime, TdTimeWithTimeZone, TdTimestamp or TdTimestampWithTimeZone when 
     the string representation contains a scale that is greater than 6, .

  i) DR 124670:  A "Null" string is now parsed by the following types


     The return value is the type's Null value.

  j) DR 124723:  When an application uses the TdDataAdapter, customizes the
     commands, and defines parameters the Teradata Database may throw an error
     if the provider uses Iterated Requests.  A workaround for this problem is 
     described in the page Developer's Guide -- Working With Provider Features 
     -- TdCommandBuilder and TdDataAdapter -- Specifying INSERT, UPDATE, 
     DELETE command.

  k) DR 128080:  The provider threw an InvalidCastException when an 
     application attempted to convert character data to a DateTime when 
     the session character set was UTF8.  The Teradata Database padded 
     the character data with spaces which caused the overall length to be 
     greater than 10 characters (YYYY-MM-DD).  This exception got thrown 
     when the length was greater than 10.

  l) DR 128171:  TdTransaction.Commit threw an exception in ANSI session 
     mode when the Connection Isolation level (TdConnection.IsolationLevel) 
     did not match what was specified at the Transaction level.

  m) DR 128112:  When the total size of the parameters of a command is 
     greater than what is allowed by the Teradata Database, the provider 
     threw an InvalidOperationException that contained an unhelpful error 
     message.  This has changed so that a more informative exception is 
     thrown.  A TdException will now get thrown that also contains a more 
     informative error message.

  n) DR 128146:  This problem ocurrs when the provider is connected to a 
     Teradata Database version 6.2 or earlier.  The 
     TdParameter.ProviderSpecificValue property returned a Provider Specific 
     Date And Time Type (e.g. TdDate, TdTimestamp, etc...) when the 
     EnableTdDateTime Connection String Attribute was set to false.  This 
     has been fixed so that this property now returns the corresponding .NET 
     Framework type.

  o) DR 128208:  The provider supports Batch Update using Multi-Statement 
     and/or Iterated Requests.  When the provider used Iterated Request 
     there was a problem when the session mode had been set to ANSI.  The 
     provider appended a "COMMIT WORK" to the SQL statement.  The Teradata 
     Database returned an error indicating that it expected a single request.

  p) DR 128235:  This problem is related to the Parse method of 
     TdTime/TdTimeWithTimeZone and TdTimestamp/TdTimestampWithTimeZone.  In 
     the string representation of these types, the sub-seconds did not get 
     correctly parsed when a IFormatProvider of a culture different from 
     "invariant" was specified.

  q) DR 128274:  The provider did not automatically grow an internal buffer 
     when a "CREATE STORED PROCEDURE" statement was executed and returned a 
     large result set.  In this situation, an application received a Teradata 
     Database error 3115 which indicates that the internal buffer is to small
     to hold one record.  This has been modified so that the 3115 error is 
     handled internally and the size of the buffer is automatically adjusted 
     by the provider.

  r) DR 128313:  Visual Studio Change Password feature now correctly works 
     when the Session Mode is set to ANSI.

2.0 Teradata Product Dependencies
.NET Data Provider for Teradata Version 13.1 is not dependent on 
Teradata Call-Level Interface (CLI). It communicates directly to Teradata 
database. There are no dependencies on any of the Teradata Client products.

.NET Data Provider for Teradata architecture is MSIL. Therefore a 
single installation can support 32-bit and 64-bit applications. 

3.0 Operating Environments
The following operating environments are supported:

Client Operating Systems:
    Microsoft Windows 2000 SP4
    Microsoft Windows XP Professional SP2 x86
    Microsoft Windows Server 2003 x86
    Microsoft Windows Server 2008 Standard x86 Edition
    Microsoft Windows Server 2008 Enterprise x86 Edition
    Microsoft Windows Vista Enterprise SP1 x86 Edition

    Microsoft Windows XP Professional x64 Edition
    Microsoft Windows Server 2003 x64 Edition
    Microsoft Windows Server 2008 Standard x64 Edition
    Microsoft Windows Server 2008 Enterprise x64 Edition
    Microsoft Windows Vista Enterprise SP1 x64 Edition

Client Operating Environment:
    Microsoft .NET Framework 2.0 SP1 x86
    Microsoft .NET Framework 2.0 SP1 x64

    Microsoft .NET Framework 3.0 SP1 x86
    Microsoft .NET Framework 3.0 SP1 x64

    Microsoft .NET Framework 3.5 x86
    Microsoft .NET Framework 3.5 x64

Microsoft Visual Studio:

Teradata Database Releases:

    NOTE: SPNEGO Authentication Mechanism is disabled by default. It 
          must be enabled from the Teradata Database. Refer to the 
          Teradata Database Security Administration manual for more 
          information on activating this mechanism.

4.0 Installation
For step-by-step Installation Instruction refer to "Release Definition 
Including Installation Instruction" document on http://www.info.Teradata.com.
Navigate to General Search and use Publication Product ID 2032 to locate
the document.

4.1 Installation Procedure

The .NET Data Provider for Teradata is dependent on Microsoft .NET Framework 
version 2.0 SP1. This prerequisite can be downloaded from 

Follow this procedure to install .NET Data Provider for Teradata version 13.1:

   1- Run tdnetdp__windows_indep.
   2- In the Choose Setup Language dialog, select the Language you want to use
      and click OK.
   3- When the Welcome screen appears, click Next>.
   4- In the Select Features dialog, click Next> to accept the defaults. 
      If neither Visual Studio 2005 nor SQL Server 2005 is installed, deselect
      the "Visual Studio 2005 Integration" feature. If neither Visual Studio 2008 
      nor SQL Server 2008 is installed, deselect the 
      "Visual Studio 2008 Integration" feature.
   5- In the Choose Destination Location screen, choose a destination folder 
      and click Next>.
   6- In the Select Program Folder dialog, click Next>.
   7- In the Start Copying Files dialog, click Next> to start copying files.
   8- In the InstallShield Wizard Complete screen, click Finish.

   Microsoft Visual Studio 2005 or 2008 will update the HELP the very first time 
   a Help page is accessed from within Visual Studio 2005 or 2008. In most
   cases Microsoft Visual Studio 2005/2008 will display ìHelp Update In Progressî
   dialog box. This step will take several minutes to complete.

5.0 Uninstall
Follow this procedure to uninstall .NET Data Provider for Teradata 

  1- Open "Control Panel".

  2- Start "Add or Remove Programs".

  3- Find ".NET Data Provider for Teradata 13.1" and click Change/Remove.

  4- In the ".NET Data Provider for Teradata - InstallShield Wizard", choose 
     "Remove" and click Next>.
  5- In the Maintenance Complete dialog, click Finish.

6.0 Restrictions and Known Issues
a) .NET Data Provider for Teradata Version 13.1 requires Full Trust permission 
   set to run. 

b) TdDataAdapter configuration wizard, in Microsoft Visual Studio 2005, 
   does not generate unique names for the Commands. It always generates 
   SelectCommand, InsertCommand, UpdateCommand and DeleteCommand names for the 
   corresponding instances of TdCommand class.  In order to configure a second 
   or subsequent TdDataAdapter, the existing generated commands must be renamed 
   to a different name which does not conflict with the default generated 
   command names. For instance SelectCommand may be renamed to SelectCommand1. 

c) TableAdapter Query Configuration Wizard, in Microsoft Visual Studio 2008, 
   does not generate correct Parameters for INSERT Query Type. This is a known
   Visual Studio 2008 limitation. See incident number 331845 at 

d) There is a known issue with Microsoft Visual Studio Data Set Designer, and 
   .NET Framework 2.0 Service Pack 1 (SP1).  The issue is related to Precision 
   and Scale.  When the Precision and Scale are set from the Parameters
   Collection Editor dialog box, the values do not get persisted in the 
   generated code.  There is a .Net Framework 2.0 SP1/SP2 HotFix for Visual 
   Studio 2005 and 2008 that fixes this issue.  For more information on this
   refer to:


   The HotFix can be downloaded and installed from: