5 The DB2 Data Provider : Data Types

Data Types
Table 5-2 through Table 5-7 list the use of data types supported by the DB2 data provider:
Table 5-2 maps the DB2 data types to the .NET Framework types when no IANA code page is defined.
Table 5-3 maps the data types the data provider uses when a column is defined as character set 65535 and no IANA code page is defined.
Table 5-4 maps the data types the data provider uses when a column is defined as character set 65535 and an IANA code page is defined.
Table 5-5 maps the data types the data provider uses if only the System.Data.DbType is specified.
Table 5-6 shows the mapping that the data provider uses to infer a data type if the provider-specific type and the System.Data.DbType are not provided.
Table 5-7 shows the mapping that the data provider supports for the use of streams as inputs to Long data parameters.
Mapping DB2 Data Types to .NET Framework Data Types
Table 5-2 maps the DB2 data types to the .NET Framework types when no IANA code page is defined. You can use the table to infer the data types that are used when a DataSet is filled using a DataAdapter. This table also identifies the accessors to use for accessing the data when a DataReader object is used directly.
In this table, the columns are defined as follows:
 

1
Retrieving and updating Blobs is supported by the DB2 data provider only with DB2 v8.1 or higher for Linux/UNIX/Windows, and DB2 for z/OS, and DB2 V5R2 and higher for iSeries.

2
On DB2 v7.1 and v8.1 for Linux/UNIX/Windows and DB2 for iSeries V5R2, only the first 32 KB of the Clob data type is returned when fetching, and only 32 KB can be inserted and updated.

3
Not supported with DB2 for z/OS and DB2 for iSeries.

4
You can fetch or insert DecimalFloat values as Double, Decimal, or String. Fetching as Double or Decimal may result in rounding. Using String allows you to fetch or insert unrounded values.

5
Only supported for DB2 for z/OS.

6
Only supported for DB2 V9.1 for Linux/UNIX/Windows and higher.

7
For information on this overloaded method, see GetXmlReader in the online help.

As shown in Table 5-3, when the Charset For 65535 connection string option is set to the default value, an empty string, and the column is defined with a character set of 65535, the data provider uses different data types to return character data.
 
When the Charset For 65535 connection string option is set to a valid IANA code page name and the column is defined with a character set of 65535, the data provider uses different data types to return character data, as shown in Table 5-4. Columns defined as Char For Bit Data, Varchar For Bit Data, and Longvarchar For Bit Data are by definition created with a character set of 65535.
 
Mapping Parameter Data Types
The type of the parameter is specific to each DataDirect Connect for ADO.NET data provider. The DB2 data provider must convert the parameter value to a native format before sending it to the server. The best way for an application to describe a parameter is to use the provider-specific type enumeration. In generic programming circumstances, the provider-specific type may not be available. In this situation, the data type must be inferred from either the System.Data.DbType or from the .NET Framework type of the parameter’s value.
The DB2 data provider uses the following order when inferring the data type of a parameter:
Table 5-5 shows the mapping that is used if only the System.Data.DbType is specified.

1
Depends on the size. If the length is greater than 32 KB, the type must be Clob.

2
Clobs with length of greater than 32 KB are not supported for DB2 v7.x for Linux/UNIX/Windows.

3
Depends on the size. If the length is greater than 254 bytes, the type must be VarChar.

4
Depends on the size. If the length is greater than 32 KB, the type must be Blob.

5
Blobs are supported only for DB2 v8.1 and higher for Linux/UNIX/Windows and DB2 for z/OS, and DB2 V5R2 and higher for iSeries.

6
If the Xml Describe Type connection string option is set to string.

7
If the Xml Describe Type connection string option is set to binary.

Table 5-6 shows the mapping that the data provider uses to infer a data type if the provider-specific type and the System.Data.DbType are not provided.

1
Depends on the size. If the length is greater than 32 KB, the type must be a Blob.

2
Depends on the size. If the length is greater than 32 KB, the type must be a Clob.

Data Types Supported With Stream Objects
The DB2 data provider supports the use of streams as inputs to Long data parameters with the data types listed in Table 5-7.
See “Using Streams as Input to Long Data Parameters” for more information about using streams.