//---------------取得自动编号----------
procedure TFusercon.BH;
var
s,m:string;
begin
with FDM.qry1 do
begin
Close;
SQL.Clear;
SQL.Add('Select max(number) as maxid From userinfo');
Open;
end;
if FDM.qry1.FieldByName('maxid').AsString = null then
s:=s+'1'
else
begin
FDM.qry1.First;
m:=Trim( FDM.qry1.fieldbyname('maxid').AsString);
s:=inttostr(strtoint(m) + 1);
end;
Edit1.Text := s;
end;
我要向数据库里插入一条新的记录,要是我执行了是得到最大编号+1,可是在我执行上面代码后,会把dbgrid里的显示关闭,在dbgrid里显示我是用qry1,谢谢
procedure TFusercon.BH;
var
s,m:string;
begin
with FDM.qry1 do
begin
Close;
SQL.Clear;
SQL.Add('Select max(number) as maxid From userinfo');
Open;
end;
if FDM.qry1.FieldByName('maxid').AsString = null then
s:=s+'1'
else
begin
FDM.qry1.First;
m:=Trim( FDM.qry1.fieldbyname('maxid').AsString);
s:=inttostr(strtoint(m) + 1);
end;
Edit1.Text := s;
end;
我要向数据库里插入一条新的记录,要是我执行了是得到最大编号+1,可是在我执行上面代码后,会把dbgrid里的显示关闭,在dbgrid里显示我是用qry1,谢谢
解决方案 »
- 关于ADOconnection控件连接数据库的问题
- 抗议:codegear首页把中国列为地区,taiwan列为国家(大家看网站首页的location选择项)
- 用存储过程写一个自动编号生成器
- 如何使主窗口最小化
- 分布式系统中客户端如何刷新数据
- delphi2005 如何安装?
- 高分求MDIForm的子窗口激活的事件,顶也有分
- 寻在Delphi 6.0里做界面的空件
- 请csdn高手,数据库高手,工控高手,帮我分析一下这个问题好吗,本人辗转一星期一筹莫展!
- 问个小问题:在Delphi中使用什么函数获得Windows系统当前货币标识符号,谢谢。
- 我是一个女孩子,刚开始开始学编程,但感觉很迷茫···
- 关于delphi的些许问题
var
s,m:string;
begin
with FDM.qry2 do
begin
Close;
SQL.Clear;
SQL.Add('Select max(number) as maxid From userinfo');
Open;
end;
if FDM.qry2.FieldByName('maxid').AsString = null then
s:=s+'1'
else
begin
FDM.qry2.First;
m:=Trim( FDM.qry2.fieldbyname('maxid').AsString);
s:=inttostr(strtoint(m) + 1);
end;
Edit1.Text := s;
end;
在放一个ADO, 命名 qry2 取最大号时 不要使用qry1
select isnull(max(字段ID),0) as a from table
并发可行的
如果为空是就赋一个初始值
procedure TFusercon.BH;
var
s,m:string;
begin
with FDM.qry1 do
begin
Close;
SQL.Clear;
SQL.Add('Select max(number) as maxid From userinfo');
Open;
end;
s:=FDM.qry1.FieldByName('maxid').AsString
if s = null then
s:=s+'1'
else
begin
FDM.qry1.First;
m:=Trim( FDM.qry1.fieldbyname('maxid').AsString);
s:=inttostr(strtoint(m) + 1);
end;
Edit1.Text := s;
end;
sql.add ('select max(isnull(number,0)) maxid from table AAA')
sql.open;
m:= ado.fieldbyname('maxid');
edit1.text := inttostr(strtoint(m)+1);...
然后判断是否为空,要是为空就给成0