程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> SQLServer中一個多用戶自動生成編號的過程

SQLServer中一個多用戶自動生成編號的過程

編輯:Delphi

  if not exists (select * from dbo.sysobjects where id = object_id(N'[IndexTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  create table IndexTable(Ex char(20), num integer)

  go

  create procedure SetIndex @Ex char(20),@result char(30) output,@Fmt integer
  as
    declare @num char(10)
    SET NOCOUNT on
    if not exists(select num from indextable where Ex=@ex )
     insert into indextable values(@ex,1)
    else
     update indextable set num=num+1
    select @num=cast(num as char(10)) from indextable where ex=@ex
    select @num=space(@fmt-len(@num))+@num
    select @num=replace(@num,' ','0')
    select @result=rtrim(@ex)+rtrim(@num)
    SET NOCOUNT off
  go
  
  --------
  
  在Delphi中調用
  
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    StoredProc1.ParamByName('@Ex').AsString:='User';
    StoredProc1.ParamByName('@fmt').AsInteger:=3;
    StoredProc1.ExecProc;
    showmessage(StoredProc1.ParamByName('@result').value)
  end;
  
  -----------
  參數@ex表示前綴,@fmt表示數字長度,@result表示返回數據
  返回User001

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved