我找到了修改数据库导入出错的方法了。现在我出错的原因是content字段无法导入数据,
导致打开时出错。我看了cozo兄的源码如下:
.......
DSQ.Fields['ID'].Value:=DSLocal.Fields['ID'].Value;
if VarIsNull(DSLocal.Fields['Subject'].Value) or (DSLocal.Fields['Subject'].Value='') then
DSQ.Fields['Subject'].Value:='请教一个问题'
else
DSQ.Fields['Subject'].Value:=DSLocal.Fields['Subject'].Value;
if VarIsNull(DSLocal.Fields['UserFrom'].Value) or (DSLocal.Fields['UserFrom'].Value='') then
DSQ.Fields['UserFrom'].Value:='SomeBody'
else
DSQ.Fields['UserFrom'].Value:=DSLocal.Fields['UserFrom'].Value;
if VarIsNull(DSLocal.Fields['Content'].Value) or (DSLocal.Fields['Content'].Value='') then
DSQ.Fields['Content'].Value:='如题'
else
DSQ.Fields['Content'].Value:=DSLocal.Fields['Content'].Value;
.......
怀疑是
if VarIsNull(DSLocal.Fields['Content'].Value) or (DSLocal.Fields['Content'].Value='') then
DSQ.Fields['Content'].Value:='如题'
这一句判断有问题。但是是什么原因我也搞不清楚,所以我将它注释掉了
// if VarIsNull(DSLocal.Fields['Content'].Value) or (DSLocal.Fields['Content'].Value='') then
DSQ.Fields['Content'].Value:='如题';
// else
DSQ.Fields['Content'].Value:=DSLocal.Fields['Content'].Value;
也就是说,不通过判断,不管content是否为空先赋个值给它,然后再赋原来的值。现在可以导入了。
对于DSA也做同样的改动。但是我看来看去对content的判断语句并没有错。为什么在我的机子上就不行呢?
而且D6也无法进行断点调试。有谁指点以下。