转自http://blog.youkuaiyun.com/LoveVV99
有一个商品表,包含了很多信息,其中一些信息与其他表比如商品分类、工厂等有外键关系,商品表中记录的只是其他表的ID字段,但是我希望它能够显示从其他表中查询得到的实际的内容,于是我为ADOQuery添加了lookup字段用来得到实际内容,但是此时ADOQuery就只能进行浏览、修改和删除了,只要一进行append()就出现未知错误,怎么都无法继续。查了google翻了很久之后终于发现了一个解决的办法:链接如下:
http://www.delphijs.net/forum_view.asp?forum_id=15&view_id=47
原来只需要设置一个属性即可: 将ADOQUERY的lookup字段的lookupCache设为True(缺省为False)即可。真是。。。 CBuilder的帮助实在不是太好,这种问题都没有醒目的提醒。
记下这个问题来,希望能给遇到同样问题的programmer一点帮助。
在使用BCB6做数据库程序的过程中,遇到了一些问题,有些问题认真想想其实是可以避免的,但是我觉得还是挺容易遇到的,所以还是写下来备忘
- 使用lookupField时需要注意几个问题: lookupField的lookupCache默认为false,必须将其修改为true才能够在使用了该lookupField的表中增加记录;
- 使用显示字段调整时需要注意的问题: 必须为数据集在设计时或者在程序中动态显式地添加好字段,否则会在刷新数据集时重新显示所有的字段,而不仅仅是设定Visible的字段;
- 使用SQL Server 的GUID字段时需要注意的问题:如果该字段是在服务器端生成(比如字段默认值是newid()并且插入时未指定该字段的值)、程序使用了用户端游标和除动态游标外的DataSet,则该种字段在插入记录时不会自动更新用户程序段的记录,程序得到的该字段的值是全部为0的字符串,需要重新刷新数据才能得到其值;应该有什么更好的办法来解决吧?哪位有好的办法请留言大家一起分享
还有其他问题,想到了再来添吧