急!往数据库中加记录就出错!在线等!
lantianning:
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
eastnofail:
您设置一下断点看看您的table5是不是NULL
jddj007:
用DBEdit试试看
MikeWKL:
查看一下表结构,各字段的数据定义; Debug一下DBText系列是否正确赋值,我估计是某个值为空,或不符合数据定义。
TR@SOE:
根据我的理解,您这样做肯定是有问题的。 第一,Edit()/Append()只要有一个就可以了。表要么处于编辑状态,要么处于插入状态。不能同时处于这两种状态; 第二,您的代码的问题在于,假如您准备插入一个记录,那么就不能引用DBText1->Field。因为在一般情况下,您的DBText1应当是和您的表中的一个字段关联的,那么在插入记录时,字段还没有被赋值,应当是NULL。不能被赋值回字段的。 第三,我也不推荐用中文作为字段名。
jddj007:
受教了!