字符串为什么会减少?急用!!!(50分)

  • 主题发起人 主题发起人 脸谱
  • 开始时间 开始时间

脸谱

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我写的一代码:
var str1,str2:string;
bb:boolean;
begin
if (not gcdj.IsEmpty) and (not cydwdm.IsEmpty) then //如果工程登记和来源单位表不为空
begin
str1:=gcdj.FieldByName('gcbh').asstring;//读取工程登记表中的工程编号字段等于str1
str2:=DBlookupcombobox3.Text ;//读取来源单位等于str2
bb:=sgdw.Locate('gcbh;sgdw',vararrayof([str1,str2]),[]);
if bb then
MessageDlg('已有该施工队伍!!', mtWarning, [mbOK], 0)
else begin
sgdw.Insert;
sgdw.FieldByName('sgdw').asstring:=str2;//来源单位填入施工单位表中的施工单位字段中
sgdw.Post;
sgdw.Refresh;
end;

end;
//这下面是我为了测试这个现在在施工单位中的工程编号的值
str1:=sgdw.fieldbyname('gcbh').AsString;
showmessage(str1);
这个str1的结果比原来从工程登记表中读取的工程编号少了几位——只是取了前十位填入了
施工单位的工程编号中!这是为什么?是不是 bb:=sgdw.Locate('gcbh;sgdw',vararrayof([str1,str2]),[]);
这句的问题?这怎么改呢?请求帮助呀!小弟急用!
 
我检验了一下在第一str1:=gcdj.FieldByName('gcbh').asstring;中这个str1还是正确的没有
少,但是在第二个就只有str1的前十位!是数据库的问题还是别的什么问题?但是两个表中
的gcbh这个字段是相同类型,相同长度的!
请帮忙解决!
 
bb:=sgdw.Locate('gcbh;sgdw',vararrayof([str1,str2]),[]);
//这句有问题,执行这句话指针移动到表的开始,如果找到了符合条件的记录,结果
才返回这条记录,否则就出错了
最后ShowMessage(''); 所定位的记录不一定就是你开始的记录
 
不是我的问题没有说清吧!帮忙踢一下帖子也好!
 
搞定!是设置表的属性size不对!谢谢!
 

Similar threads

D
回复
0
查看
851
DelphiTeacher的专栏
D
D
回复
0
查看
862
DelphiTeacher的专栏
D
D
回复
0
查看
914
DelphiTeacher的专栏
D
D
回复
0
查看
876
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部