2016-01-12 4 views
1

У меня есть таблица SQL Server, в которой есть поля типа Date. Я пытаюсь обновить или вставить запись в таблицу через Micosoft Access, используя ODBC. Я получаю ошибку:Sql Server ODBC Date Field - Необязательная функция не реализована

[ODBC SQL Server Driver] опциональная функция не реализована

, когда я пытаюсь обновить или вставить запись.

Мне нужно использовать поля «Дата», а не поля «DateTime» в моей таблице, потому что я использую очень старые даты, начиная 2000 лет.

Есть ли способ обойти эту проблему, которая, как я полагаю, вызвана полями «Дата»?

Это то, что таблица выглядит

CREATE TABLE [dbo].[Person](
[PersonId] [int] IDENTITY(1,1) NOT NULL, 
[DOB] [date] NOT NULL, 
[DOD] [date] NULL DEFAULT (NULL), 
[Name] [nvarchar](100) NOT NULL) 
+1

Как насчет публикации кода, который вы используете, чтобы мы могли попытаться найти проблему? –

+0

У вас есть тег MS_ACCESS. Какая часть игры Access? –

+0

@simonatrcl Rob размещен. «.. через Micosoft Access с использованием ODBC ...» есть десятки результатов поиска по этой теме, но они упоминают особенности, которые, я думаю, нам нужно увидеть для кода. то есть https://support.microsoft.com/en-us/kb/214459 –

ответ

3

Вы лучше всего сбросить использование «устаревшего» драйвера SQL, и пользователь новее родной 10 или 11 водитель. Более старый драйвер будет просматривать поля даты в виде текста, но с использованием нового родного драйвера 10/11 столбец будет отображаться как столбец даты. Это потребует повторной привязки ваших таблиц.

+0

Правильно, с использованием собственного клиента SQL Server 11.0 сделал трюк –

0

Если вы не можете изменить версию SQL Server, проще всего передать дату как adVarChar, а затем выполнить CAST(@param AS DATE) в хранимой процедуре SQL.

Смежные вопросы