急!往数据库中加记录就出错!在线等!
Data1->Table5->Edit();
Data1->Table5->Append();
Data1->Table5->FieldByName("学号")->AsInteger=DBText1->Field->AsInteger ;
Data1->Table5->FieldByName("姓名")->AsString=DBText2->Field->AsString ;
Data1->Table5->FieldByName("书号")->AsInteger=DBText3->Field->AsInteger ;
Data1->Table5->FieldByName("书名")->AsString=DBText4->Field->AsString ;
Data1->Table5->Post();
这样写有错吗?
提示说:
raised exception class EaccessViolation with message 'Access violation at address 00403b88
read of address 00000000
问题点数:20、回复次数:5Top
1 楼eastnofail(Char *)回复于 2003-06-04 09:44:10 得分 5
你设置一下断点看看你的table5是不是NULLTop
2 楼jddj007(失业的Hydra)回复于 2003-06-04 09:47:04 得分 2
用DBEdit试试看Top
3 楼MikeWKL(星星之盾)回复于 2003-06-04 09:54:26 得分 0
查看一下表结构,各字段的数据定义;
Debug一下DBText系列是否正确赋值,我估计是某个值为空,或不符合数据定义。Top
4 楼TR@SOE()回复于 2003-06-04 09:59:16 得分 13
根据我的理解,你这样做肯定是有问题的。
第一,Edit()/Append()只要有一个就可以了。表要么处于编辑状态,要么处于插入状态。不能同时处于这两种状态;
第二,你的代码的问题在于,如果你准备插入一个记录,那么就不能引用DBText1->Field。因为在一般情况下,你的DBText1应该是和你的表中的一个字段关联的,那么在插入记录时,字段还没有被赋值,应该是NULL。不能被赋值回字段的。
第三,我也不推荐用中文作为字段名。Top
5 楼jddj007(失业的Hydra)回复于 2003-06-04 14:09:43 得分 0
受教了!Top





