为什么我的ODBC在添加新记录后立即失败?

时间:2016-07-02 02:13:39

标签: sql sql-server ms-access error-handling odbc

在我从Access 2016前端向SQL链接表中添加新记录后,立即弹出ODBC错误消息,表中的所有数据都变为#Name?

这是一个合并复制的数据库。

记录在错误发生之前成功插入,我可以在关闭并重新打开表格后看到它。也可以编辑和删除现有记录。唯一的问题是,添加新记录后,ODBC将被丢弃,并出现无效的转换规范(#0)错误。我将无效数据放入其中是没有意义的,因为插入新记录的所有数据都完好无损地输入了我的数据。我只需要关闭并重新打开表以查看新数据。

我在处理这个问题的第二周,我觉得我已经尝试了一切。每次在此特定表中添加新记录时,我都不能让系统生成错误。数据库中的所有其他表都可以。

这是我的表格布局:

CREATE TABLE [dbo].[TrnRegistration](
    [fkClassSchedID] [int] NULL,
    [fkCompanyID] [int] NULL,
    [NumberUsers] [int] NULL,
    [Notes] [nvarchar](max) NULL,
    [Contact] [nvarchar](50) NULL,
    [fkUserTypeID] [int] NULL,
    [fkOrderTypeID] [int] NULL,
    [OrderRef] [nvarchar](50) NULL,
    [FloatClassID] [int] NULL,
    [LocFrstID] [int] NULL,
    [LocScndID] [int] NULL,
    [SalesRep] [int] NULL,
    [RegistrationID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    [VerifDate] [bit] NOT NULL DEFAULT ((0)),
    [rowguid] [uniqueidentifier] ROWGUIDCOL  NOT NULL CONSTRAINT     [MSmerge_df_rowguid_8C3233BCD5FB4C7AA23281E8C482C778]  DEFAULT   (newsequentialid()),
 CONSTRAINT [TrnRegistration_PK] PRIMARY KEY NONCLUSTERED 
(
    [RegistrationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,     ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

1 个答案:

答案 0 :(得分:0)

如果我粘贴到您的create table中,那么使用native 11链接不起作用,但默认的标准驱动程序(您似乎正在使用的驱动程序)确实有效。但是,由于我的测试不是复制数据库,因此用于复制的列是有问题的。

简单的解决方案是创建一个忽略复制列(rowGuid)的视图。然后链接到该视图代替表。您当然可以在链接后删除原始表链接,然后将链接表重命名为您在Access中使用的SAME名称 - 这个建议将允许所有表单/报表/代码/ SQL像以前一样基于原始工作使用的表名。

因此,使用省略了一列的视图,并从Access链接到该视图应允许此操作。