【发布时间】:2017-04-07 10:33:53
【问题描述】:
我正在将 FoxPro 数据库转换为 SQLite,并将说明迁移到更新,但我发现了问题。
如果在 FoxPro 中我使用 Update Fact01 set Motivo = 'asdfgh' where TipoDoc='FV'
行未更新。
但如果我使用Update Fact01 set Motivo = 'asdfgh' where TipoDoc Like 'FV',行会改变。
如果我在 SQLite 引擎中执行第一条指令,行也会改变。 TipoDoc 的字段类型是 NChar(2)。
另外,如果我在 Foxpro 中执行 select * from Fact01 where TipoDoc ='FV' 语句,它可以正常工作。
知道这里发生了什么吗?
【问题讨论】:
-
SELECT typeof(TipoDoc), hex(TipoDoc) FROM Fact01 WHERE TipoDoc LIKE 'FV'的输出是什么? -
@CL。 typeof(TipoDoc) 的输出是 Text,而 Hex 返回 4656
-
等等,问题发生在 FoxPro 中?那为什么标题里有“SQLite”呢?
-
@CL。抱歉,已更新标题
-
VFP 没有 nchar 或 text 数据类型。目前尚不清楚您是通过 ODBC 驱动程序对 VFP 表还是 SQLite 表运行查询。 = 和 Like 之间的基本区别在于后者是 ANSI。如果你使用 set ansi on 会发生什么?
标签: sqlite visual-foxpro