奇怪的问题???

zqh110 2000-08-18 05:54:00
procedure TF_ADD.FormCreate(Sender: TObject);
var i,max_id:string;
begin
with tquery.Create(self) do
begin
databasename:='dd2100';
sql.add('select max(id) from zlgl_khzl');
active:=true;
i:=fields[0].asstring;
free;
end;

if i=''then
max_id:='000100000001' //'00'+current_xz_code+'00000001'
else
begin
max_id:='000'+inttostr(strtoint(copy(i,4,9))+1);
// edit1.Text:=max_id;
// max_id:='ytrht';
end;
end;
这里 i 从数据库中点出
有的时候max_id 值为000100000004,
有的时候max_id为空,max_id为空时, i 也为空!!!
请问为什么?
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
StarRainBow 2000-08-19
  • 打赏
  • 举报
回复
建议把响应事件从FormOnCreat改成FormOnShow
zqh110 2000-08-18
  • 打赏
  • 举报
回复
不对,max_id 不是 i,
奇怪的事明明有记录,分布调试偏偏显示max_id='';
procedure TF_ADD.FormCreate(Sender: TObject);
var i,max_id:string;
begin
with tquery.Create(self) do
begin
databasename:='dd2100';
sql.add('select max(id) from zlgl_khzl');
active:=true;
i:=fields[0].asstring; //i=000100000003
free;
end;

if i=''then
max_id:='000100000001' //'00'+current_xz_code+'00000001'
else
begin
max_id:='000'+inttostr(strtoint(copy(i,4,9))+1);
// max_id:='ytrht'; 此处把注释去掉,常常引起max_id为空
// ,为什么不能符值呢,偏偏有时候可以符值
end;
end;
这里 i 从数据库中点出
渤海海峡 2000-08-18
  • 打赏
  • 举报
回复
??? i不就是max-id,max_id为空时, i当然应该为空!

id 是不是必须要有值?如果是,判断query是否有记录不行妈?
1:无记录,max_id:='000100000001'
2:有记录:max_id:='000'+inttostr(strtoint(copy(i,4,9))+1);

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧