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