- Test and Measurement Software Data Translation offers many software solutions for test and measurement applications that are Windows XP/Vista/7/8/8.1/10 compatible. For a custom software assessment, or for information on academic licensing, please contact sales.
- It extends the standard driver behaviour by providing access to drive SMART data. The interface to SMART data is same as with ATA family driver, so most existing applications should work. The driver requires a SAT (SCSI ATA Translation) capable external drive enclosure.
- When using the MDAC 2.1 or later version of the SQL Server ODBC driver (version 3.70.0623 or later) or the OLEDB provider (version 7.01.0623 or later), under some circumstances you may experience translation of character data from the client code page to the server code page, even when Autotranslation is disabled for the connection.
Customize your translation. Customize Microsoft Translator’s advanced neural machine translation when translating text or speech with Custom Translator.
Symptoms
Consider the following scenario:
In Microsoft SQL Server 2005, you use SQL Server Management Studio to query character data from a SQL Server database that uses a non-Unicode data type. For example, the SQL Server database uses the char data type, the varchar data type, or the text data type.
The code page of the client computer differs from the code page of the database. The code page is associated with the collation of the database.
In this scenario, character data is represented incorrectly.
For example, you may experience one of the following problems:
The character data is represented as a question mark (?). You may see this problem if you inserted or updated the character data as a non-Unicode data type before you queried the character data. This problem occurs if you make this change by using SQL Server Management Studio on a client computer that has a different code page.
The character data is represented as corrupted data. The character data of code page X is stored in a non-Unicode column of code page Y. Additionally, the character data is not translated. This problem occurs when you query the character data by using SQL Server Management Studio.
Note When you query the character data by using SQL Query Analyzer in Microsoft SQL Server 2000, the character data is represented correctly if the
Perform translation for character data setting (the Auto Translate parameter) is disabled. The Auto Translate parameter is a parameter of the ConnectionString property for Microsoft OLE DB Provider for SQL Server and for Microsoft .NET Framework Data Provider for OLE DB.
Cause
This problem occurs because the character data of code page
X is stored in a non-Unicode column of code page
Y. Additionally, the character data is not translated correctly. We do not support storing the character data of code page
X in a column of code page
Y.
In SQL Server 2005, when you use a string literal of a non-Unicode data type, the string literal is converted by using the database's default code page that is derived from the database's collation. Storing the character data of code page X in a column of code page Y may cause data loss or data corruption.
If the character data is represented as corrupted data, the data can be represented correctly only if you disable the Auto Translate parameter for Microsoft OLE DB Provider for SQL Server or for Microsoft .NET Framework Data Provider for OLE DB.
Note SQL Server Management Studio uses Microsoft .NET Framework Data Provider for SQL Server to connect to the SQL Server database. This data provider does not support the Auto Translate parameter.
Workaround
To work around this problem, use one of the following methods.
Method 1: Use a Unicode data type instead of a non-Unicode data type
Change the columns to a Unicode data type to avoid all the problems that are caused by code page translation. For example, use the nchar data type, the nvarchar data type, or the ntext data type.
For more information about storing Unicode data, click the following article number to view the article in the Microsoft Knowledge Base:
239530 You must precede all Unicode strings with a prefix N when you deal with Unicode string constants in SQL Server
Method 2: Use an appropriate collation for the database
If you must use a non-Unicode data type, always make sure that the code page of the database and the code page of any non-Unicode columns can store the non-Unicode data correctly. For example, if you want to store code page 949 (Korean) character data, use a Korean collation for the database. For example, use the Korean_Wansung_CI_AS collation for the database.
Method 3: Use the binary data type or the varbinary data type
If you want the database to directly store and retrieve the exact byte values of the characters that are handled without trying to perform appropriate code page translation, use the binary data type or the varbinary data type.

Method 4: Use a different tool to store and retrieve data, and disable the Auto Translate parameter


Warning We do not test or support storing the character data of code page
X in a column of code page
Y. This operation may cause linguistically incorrect query results, incorrect string matching or ordering, and unexpected code page translation (data corruption). We encourage you to use one of the other methods to work around this problem.
When you use Microsoft OLE DB Provider for SQL Server to connect to a database that has a different code page and you try to query character data from a non-Unicode data type column, you must make sure that you store the untranslated characters to the database.
Note The following example assumes that the code page of the client computer is Korean (CP949) and that the code page of the SQL Server database is English (CP1252). You must replace the placeholders in the code examples with values that are appropriate for your situation.
To work around this problem, follow these steps:
Manually convert the characters to raw data, and then insert the data into the database by using the code page of the database. To do this, use code that is similar to the following code example.
Note This code example is written in C#.
When you want to query the data, use Microsoft OLE DB Provider for SQL Server or Microsoft .NET Framework Data Provider for SQL Server to connect to the database, and then set the Auto Translate parameter to False. To do this, use code that is similar to the following code example.
Data Translation Inc
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the 'Applies to' section.
More Information
Steps to reproduce the problem

Data Translation Driver Test
On the client computer that has Korean (CP949) as the default code page, start SQL Server Management Studio.
Connect to a database that has English (CP1252) as the default code page.
Create a table in the database by using the following line of code.
Insert a Korean character to the database by using the following query.
Create a select query to retrieve the data by using the following line of code.
You receive the following results. The value in column A is a question mark.
References
For more information about the SQL Server collation and the Auto Translate parameter, click the following article numbers to view the articles in the Microsoft Knowledge Base:
162367 How to transfer Korean Double Byte Character Set chars
234748 You cannot correctly translate character data from a client to a server by using the SQL Server ODBC driver if the client code page differs from the server code page
For more information about SQL Server Unicode data types, visit the following Microsoft Developer Network (MSDN) Web site:
64-bit Windows has some surprising and counterintuitive setup and behavior around 32-bit and 64-bit ODBC. Many 64-bit environments still support 32-bit applications, and these require 32-bit ODBC drivers and DSNs, so it's important to understand how this all works.
Both the 32-bit and 64-bit ODBC Administrator are named odbcad32.exe. They are differentiated by their filesystem location.
The 32-bit ODBC Administrator is found at %systemdrive%/Windows/SysWoW64/odbcad32.exe
. This controls 32-bit ODBC drivers, which are required by 32-bit client applications. (The 32-bit ODBC Administrator cannot be accessed through the Control Panels interface; the Data Sources (ODBC) control panel is the 64-bit ODBC Administrator.)
Counterintuitively, the 64-bit ODBC Administrator is found at %systemdrive%/Windows/System32/odbcad32.exe
. This controls 64-bit ODBC drivers, which are required by 64-bit client applications. (The 64-bit ODBC Administrator can also be accessed through the Control Panels interface, as the Data Sources (ODBC) control panel.)
Typical Paths to ODBC Administrators
64-bit Windows | 32-bit Windows | |
64-bit Administrator |
or Start -> Control Panels -> Data Sources (ODBC) | n/a |
32-bit Administrator |
not a control panel |
or Start -> Control Panels -> Data Sources (ODBC) |
Data Translation Software
Note that the 32-bit Administrator, and all 32-bit ODBC applications (typically installed to %systemdrive%/Program Files (x86)/
), will list 64-bit User DSNs (that is, DSNs based on 64-bit ODBC drivers) -- even though these DSNs and drivers cannot be used by the 32-bit tools/applications.
Likewise, the 64-bit Administrator, and all 64-bit ODBC applications (typically installed to %systemdrive%/Program Files/
), will list 32-bit User DSNs (that is, DSNs based on 32-bit ODBC drivers) -- even though these DSNs and drivers cannot be used by the 64-bit tools/applications.
System DSNs will only be seen by the applications and tools which can use them -- 32-bit DSNs for 32-bit applications, and 64-bit DSNs for 64-bit applications. For this reason among others, we strongly advise using only System DSNs in 64-bit environments.
It can be tempting -- and in some ways useful -- to use identical names for 32-bit and 64-bit DSNs. This is fine -- but you then need to be very careful to keep the 32-bit and 64-bit DSN configurations in sync, as different output resulting from different configurations can lead to undesired and unexpected results in the end, especially in scenarios where tools invisibly mix 32-bit and 64-bit components (as some versions of Microsoft SQL Server and Visual Studio are known to do).
Related
- Special Considerations when using Visual Studio and/or Microsoft SQL Server as the Data Consumer, on 64-bit Windows
