我将 C++ Builder 与 SQLite 数据库一起使用。我通过 DBExpress 连接数据库。问题是 DBGrid 在每个字段中都显示 (WIDEMEMO) 而不是数据库具有的确切值。
例如,我对其他数据库(例如 Firebird)没有这个问题。
为什么会有这种行为?我是否缺少 sqlite 的某些内容以及如何修复。你是否建议我将 SQLite / Firebird 或其他嵌入式数据库用于小型独立应用程序。
提前致谢。
我将 C++ Builder 与 SQLite 数据库一起使用。我通过 DBExpress 连接数据库。问题是 DBGrid 在每个字段中都显示 (WIDEMEMO) 而不是数据库具有的确切值。
例如,我对其他数据库(例如 Firebird)没有这个问题。
为什么会有这种行为?我是否缺少 sqlite 的某些内容以及如何修复。你是否建议我将 SQLite / Firebird 或其他嵌入式数据库用于小型独立应用程序。
提前致谢。
我在 Delphi 中使用 FireDAC 并且遇到了同样的问题。我通过将数据集 TWideMemoField DisplayValue 属性从 dvClass 更改为 dvFull 解决了这个问题。现在我的 DBGrid 按预期工作。
我知道这个问题很老,但由于它没有选择任何答案,我会投入两分钱。我最近遇到了同样的问题,并找到了一个可能对您也有用的解决方案。
此问题存在于您的 C++ 数据集和 SQLite 中。事实证明,当您有一个没有定义大小的字段(尤其是文本字段)时,该字段将被视为 DBGrid 中的 Widememo 或 Memo。因此,您需要做的是使用特定数量的字符定义您的文本字段,即 VARCHAR(10)。
这就是我所做的,它对我有用。我将 MySQL 和 Delphi 与 DBGrid 一起使用。
这是 DBGrid 的问题。它不处理 WIDEMEMO。请参阅链接以获取帮助。