www.pudn.com > 电话产品防伪伺服系统(tw8).rar > UCreateCode.pas


unit UCreateCode; 
 
interface 
 
uses 
  Classes,Windows, Messages, SysUtils, Variants, Graphics, Controls, Forms, 
  Dialogs, ImgList, ComCtrls, ToolWin, Menus, ExtCtrls, DB, ADODB; 
 
type 
  CreateCode = class(TThread) 
  private 
    { Private declarations } 
    ip:integer; 
    ss_code:integer; 
    ee_code:integer; 
    kk_code:integer; 
  protected 
    procedure Execute; override; 
    procedure showcount; 
    procedure hidecount; 
  public 
    constructor Create(kindcode:integer;s_code:integer;e_code:integer); 
  end; 
 
implementation 
 
{ Important: Methods and properties of objects in VCL or CLX can only be used 
  in a method called using Synchronize, for example, 
 
      Synchronize(UpdateCaption); 
 
  and UpdateCaption could look like, 
 
    procedure CreateCode.UpdateCaption; 
    begin 
      Form1.Caption := 'Updated in a thread'; 
    end; } 
 
{ CreateCode } 
uses uform_main; 
procedure CreateCode.Execute; 
var 
   i:integer; 
   count:integer; 
   onecode:integer; 
   onecodestr:string; 
   kkstr:string; 
 
begin 
  { Place thread code here } 
  kkstr:=inttostr(kk_code); 
   if length(kkstr)=1 then kkstr:='0'+kkstr; 
 
  for i:=ss_code to ee_code do 
   begin 
      ip:=i; 
      Synchronize(showcount); 
      form_main.recordset_temp.SQL.Clear ; 
      form_main.recordset_temp.SQL.Add('select * from [CODE] where [CODE_KIND]=' 
         + inttostr(kk_code) + ' and [CODE_ONE]=' + inttostr(i)); 
      form_main.recordset_temp.Open ; 
      if form_main.recordset_temp.RecordCount =0 then 
      begin 
         repeat 
            Randomize; 
            onecode:=Random(100000000); 
            onecodestr:=inttostr(onecode); 
 
            repeat 
               if length(onecodestr)<8 then 
               begin 
                  onecodestr:='0' + onecodestr; 
               end; 
            until length(onecodestr)=8; 
 
            form_main.recordset_temp2.SQL.Clear ; 
            form_main.recordset_temp2.SQL.Add('select * from [CODE] where [CODE_KIND]=' 
               + inttostr(kk_code ) + ' and [CODE_CODE]=''' 
               + kkstr+onecodestr +''''); 
            form_main.recordset_temp2.Open ; 
            count:=form_main.recordset_temp2.RecordCount ; 
            form_main.recordset_temp2.Close ; 
 
         until count=0; 
 
         form_main.recordset_temp.Insert ; 
         form_main.recordset_temp.Fields[1].AsInteger :=kk_code; 
         form_main.recordset_temp.Fields[2].AsInteger :=i; 
         form_main.recordset_temp.Fields[3].AsString :=kkstr+onecodestr; 
         form_main.recordset_temp.post; 
 
      end; 
      form_main.recordset_temp.Close ; 
   end; 
   Synchronize(hidecount); 
end; 
constructor CreateCode.Create(kindcode:integer;s_code:integer;e_code:integer); 
begin 
   ss_code:=s_code; 
   ee_code:=e_code; 
   kk_code:=kindcode; 
   inherited Create(True); 
end; 
procedure CreateCode.hidecount; 
begin 
  form_main.StatusBar1.Visible :=false; 
 
end; 
procedure CreateCode.showcount; 
begin 
  form_main.StatusBar1.Visible :=true; 
  form_main.StatusBar1.Panels [0].Text :=inttostr(ip) + '正在被创建' 
end; 
end.