This article was previously published under Q222104
This article has been archived. It is offered "as is" and will no longer be updated.
When you try to update SQL Server 7.0 tables that contain Unicode datatypes from Access 97 or Access 95 using the 3.60.0319 (or earlier) version of the ODBC SQLServer driver, the following error message appears:
[Microsoft][ODBC SQLServer Driver]"Optional feature not implemented"
Access tries to bind the parameter for the Unicode column, asking the driver to convert from SQL_CHAR/SQL_VARCHAR to SQL_WCHAR/SQL_WVARCHAR. This functionality is not available in the 3.60.xxxx or the previous versions of the SQL Server ODBC Driver.
Use SQL Server ODBC Driver version 3.70.0623 or later when you use Access 97 or Access 95 to connect to SQL Server 7.0.
This behavior is by design.
Access 97 and Access 95 make calls to the catalog API in ODBC, such as SQLTables, SQLColumns, and so forth. These APIs return the datatypes as SQL_WVARCHAR/SQL_WCHAR, and so forth, depending on the actual Unicode datatype in the SQLServer datatypes. Then Access calls SQLBindParameter, requesting conversion to Unicode data in the driver. This feature is not implemented in the 3.60.xxxx version of the SQL Server ODBC Driver.
Avoid using the ntext datatype, even when using the 3.70.xxxx version of the driver, because Access does not recognize this datatype and can cause the #name or #error error.
Steps to Reproduce Behavior
Create a table in SQL Server 7.0 using Unicode datatypes. For example:
create table unicode_test(col1 int PRIMARY KEY,col2 nvarchar(10),col3 nchar(10))insert into unicode_test values (1,N'test',N'test')insert into unicode_test values (2,N'test',N'test')
Open Access 97 or Access 95. Create a link to the table that you created in the step 1.
Open the linked table. Modify any of the columns and try to save the record.