2

我将 C++ Builder 与 SQLite 数据库一起使用。我通过 DBExpress 连接数据库。问题是 DBGrid 在每个字段中都显示 (WIDEMEMO) 而不是数据库具有的确切值。

例如,我对其他数据库(例如 Firebird)没有这个问题。

为什么会有这种行为?我是否缺少 sqlite 的某些内容以及如何修复。你是否建议我将 SQLite / Firebird 或其他嵌入式数据库用于小型独立应用程序。

提前致谢。

4

3 回答 3

3

我在 Delphi 中使用 FireDAC 并且遇到了同样的问题。我通过将数据集 TWideMemoField DisplayValue 属性从 dvClass 更改为 dvFull 解决了这个问题。现在我的 DBGrid 按预期工作。

于 2021-03-06T17:07:49.687 回答
2

我知道这个问题很老,但由于它没有选择任何答案,我会投入两分钱。我最近遇到了同样的问题,并找到了一个可能对您也有用的解决方案。

此问题存在于您的 C++ 数据集和 SQLite 中。事实证明,当您有一个没有定义大小的字段(尤其是文本字段)时,该字段将被视为 DBGrid 中的 Widememo 或 Memo。因此,您需要做的是使用特定数量的字符定义您的文本字段,即 VARCHAR(10)。

这就是我所做的,它对我有用。我将 MySQL 和 Delphi 与 DBGrid 一起使用。

于 2014-09-09T15:14:30.903 回答
1

这是 DBGrid 的问题。它不处理 WIDEMEMO。请参阅链接以获取帮助。

在 Delphi 的 TDBGrid 中显示和编辑 MEMO 字段

于 2013-06-20T18:40:07.963 回答