主从表:new1为主表的TTable,new2为从表的TTable
两个表里面都有fp_no和fp_no10的字段,设为联合主键,定义为varchar2(8)和varchar(10),在ORACLE9i数据库下面
然后,delphi里面有变量fp_no和fp_no10,为string;有以下的语句:
fp_no:='00112233';
fp_no10:='1234567890';
new1.append;
new1.fieldbyname('fp_no').asstring:=fp_no;
new1.fieldbyname('fp_no10').asstring:=fp_no10;
new1.post;new2.append;
new2.fieldbyname('fp_no').asstring:=fp_no;
new2.fieldbyname('fp_no10').asstring:=fp_no10;
new2.post; //此处出错!!!!!new1表post成功
但post new2表时候抱错
我查出是因为post new2表的时候,fp_no='00112233'成功的付给new2.fieldbyname('fp_no').asstring,但是post后,写入数据库里面的字符自动将前面的0去掉了,变成了'112233',这样就找不到主表里面的主键,就会报错!!!为什么我付值的时候是对的,但post的时候会将前面的0(有几个去几个)去掉呢?
所有的东西都是字符型的,而不是整型的.请高手指点!!帮我up的人也有分!!:)
两个表里面都有fp_no和fp_no10的字段,设为联合主键,定义为varchar2(8)和varchar(10),在ORACLE9i数据库下面
然后,delphi里面有变量fp_no和fp_no10,为string;有以下的语句:
fp_no:='00112233';
fp_no10:='1234567890';
new1.append;
new1.fieldbyname('fp_no').asstring:=fp_no;
new1.fieldbyname('fp_no10').asstring:=fp_no10;
new1.post;new2.append;
new2.fieldbyname('fp_no').asstring:=fp_no;
new2.fieldbyname('fp_no10').asstring:=fp_no10;
new2.post; //此处出错!!!!!new1表post成功
但post new2表时候抱错
我查出是因为post new2表的时候,fp_no='00112233'成功的付给new2.fieldbyname('fp_no').asstring,但是post后,写入数据库里面的字符自动将前面的0去掉了,变成了'112233',这样就找不到主表里面的主键,就会报错!!!为什么我付值的时候是对的,但post的时候会将前面的0(有几个去几个)去掉呢?
所有的东西都是字符型的,而不是整型的.请高手指点!!帮我up的人也有分!!:)
自己写SQL语句写数据库吧,我一直都是用SQL语句直接写,对控件知道的少,不敢用。
还有主从表的话,建议读出主表的关键字复制给从表,先保存从表后保存主表—————————————————————————————————
笨鸟未飞
再post new1
看看
fp_no10:='1234567890';
new1.append;
new1.FieldValues['fp_no'] :=fp_no;
new1.FieldValues['fp_no10']:=fp_no10;
new1.post;new2.append;
new2.FieldValues['fp_no'] :=fp_no;
new2.FieldValues['fp_no10']:=fp_no10;
new2.post;
不行的話,換ADODataset試驗一下.