在MS Access(Office 365)中,我使用SQLite ODBC driver(0.9996)链接到SQLite 3数据库中的表。
问题
当我打开链接表时,它可以显示其内容,但是当我在表中插入新条目后,它将在新条目的每个字段中显示#Deleted
。关闭并重新打开表格将正确显示新条目。如何防止这种异常行为,以便在插入新条目后它们可以正常显示而无需关闭并重新打开表格?
复制步骤
在example.sqlite
中创建下表。
create table example (
id integer primary key,
sample_type text
);
使用SQLite ODBC驱动程序创建链接表,然后尝试将值插入“ sample_type”列。
答案 0 :(得分:1)
将text
列的类型更改为使用data type supported by ODBC,例如varchar(255)
。例如,此架构不会产生#Deleted
值:
create table example (
id integer primary key,
sample_type varchar(255)
);
发生此问题是因为SQLite allows values with multiple different types to be inserted into the same column,而MS Access严格要求事先知道将插入列中的数据的确切类型。因此,ODBC驱动程序必须弄清楚列应该是什么类型。如果您的模式使用ODBC数据类型,则此方法效果很好,但是如果您使用非特定的列类型(例如text
)创建列,则ODBC驱动程序必须猜测该列应为哪种类型。似乎错误的猜测可能导致了#Deleted
值。