⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createaccount.pas

📁 这个程序软件很不错很不错的
💻 PAS
字号:
unit createaccount;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Base, StdCtrls, ExtCtrls, inifiles, DB, ADODB;

type
  Tfrmcreateaccount = class(TfrmBase)
    btnexit: TButton;
    Bevel1: TBevel;
    btnok: TButton;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label4: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit4: TEdit;
    Edit3: TEdit;
    Edit5: TEdit;
    Edit2: TEdit;
    Edit1: TEdit;
    procedure btnexitClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnokClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmcreateaccount: Tfrmcreateaccount;

implementation

uses Data, Global, Login;

{$R *.dfm}

procedure Tfrmcreateaccount.btnexitClick(Sender: TObject);
begin
  inherited;
  close;
end;

procedure Tfrmcreateaccount.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  frmcreateaccount:=nil;
end;

procedure Tfrmcreateaccount.btnokClick(Sender: TObject);
var
s:string;
ini:Tinifile;
cdadoquery:Tadoquery;
begin
  inherited;
  AccountName:='';

  if edit1.Text = '' then
  begin
    messagedlg('数据库连接用户不能为空 ! ',mtError,[mbok],0);
    exit;
  end;

  if edit2.Text = '' then
    begin
      messagedlg('数据库连接密码不能为空 ! ',mtError,[mbok],0);
      exit;
    end;

  if edit3.Text = '' then
    begin
      messagedlg('帐套名称不能为空 ! ',mtError,[mbok],0);
      exit;
    end;

  if edit4.Text = '' then
    begin
      messagedlg('数据库名称不能为空 ! ',mtError,[mbok],0);
      exit;
    end
    else
    AccountName:=Trim(edit4.Text);

s:=ExtractFilePath(application.ExeName);
if s[length(s)]<>'\' then
s:=S+'\'+'Databasetset.ini'
else
s:=s+'Databaseset.ini';
try
   ini:=Tinifile.Create(s);
   if (Trim(ini.ReadString('Login','PassWord',''))<>Trim(edit2.Text)) or
        (Trim(ini.ReadString('Login','UserName',''))<>Trim(edit1.Text)) then
    begin
      messagedlg('数据库用户或密码不正确,不能创建数据库 ! ',mterror,[mbok],0);
      exit;
    end;
finally
  ini.Free;
end;

  with Datam do
    begin
      adoqmasters.close;
      adoqmasters.sql.Clear;
      adoqmasters.sql.Add('Use Master ');
      adoqmasters.sql.Add('Select databasename from creativejxc where databasename=:databasename');
      adoqmasters.Parameters.ParamByName('databasename').Value:=edit4.text;
      adoqmasters.open;
    end;
   if datam.adoqmasters.RecordCount > 0 then
      begin
        messagedlg('已经有相同的数据库名称存在,请重新输入数据库名 ! ',mtError,[mbok],0);
        edit5.Text:='';
        edit5.SetFocus;
        exit;
      end;

  if not DirectoryExists(gs_appPath+'\Data') then
    createDir(gs_appPath+'\Data');

  try
    Screen.Cursor :=crSqlWait;

    with datam.adoqmasters do
      begin
         close;
         sql.Clear;
         sql.Text:='Insert into [Master]..creativejxc(accountname,databasename,remark) values(:accountname,:databasename,:remark)';
         parameters.ParamByName('accountname').Value:=Trim(edit3.Text);
         parameters.ParamByName('databasename').Value:=Trim(edit4.Text);
         parameters.ParamByName('remark').Value:=Trim(edit5.Text);
         ExecSql;
      end;

    with datam.adoqmasters do
      begin
        close;
        sql.Clear;
        sql.Text:='Use Master ';
        sql.Text:=Sql.Text+' Create DataBase '+Edit4.Text;
        sql.Text:=Sql.Text+' on ';
        sql.Text:=Sql.Text+' (';
        sql.Text:=Sql.Text+'name='+edit4.Text+'_Data,';
        sql.Text:=Sql.Text+'filename='+quotedstr(gs_appPath+'\Data\'+edit4.Text+'_data.mdf ');
        sql.Text:=Sql.Text+')';
        sql.Text:=Sql.Text+'log on ';
        sql.Text:=Sql.Text+'( ';
        sql.Text:=Sql.Text+'name='+edit4.Text+'_Log,';
        sql.Text:=Sql.Text+'filename='+quotedstr(gs_appPath+'\Data\'+edit4.Text+'_Log.ldf ');
        sql.Text:=Sql.Text+')';
        ExecSql;
      end;
   except
   on E:Exception do
      begin
      Screen.Cursor :=crDefault;
      messagedlg('创建数据库失败!'+#13#10+E.Message,mtError,[mbOk],0);
      exit;
      end;
   end;

   try
       Screen.Cursor :=crSqlWait;
       try
        cdadoquery:=Tadoquery.Create(nil);
        cdadoquery.Connection:=Datam.AdoConnection;
        cdadoquery.CacheSize:=1000;
        cdadoquery.CursorType:=ctStatic;
        cdadoquery.LockType:=ltBatchOptimistic;
          with cdadoquery do
            begin
             close;
             sql.Clear;
             sql.add('use Master ALTER DATABASE '+Trim(Edit4.text)+' set offline with rollback immediate ');
             sql.add(' RESTORE DATABASE '+Trim(Edit4.text)+' FROM DISK ='+quotedstr(gs_appPath+'\sqldata\creativejxc'));
             sql.add(' with file=1,replace, ');
             sql.Add('MOVE '+Quotedstr('creativejxc_data')+' TO '+Quotedstr(gs_appPath+'\Data\'+Edit4.text+'_creative_data.mdf')+',');
             sql.Add('MOVE '+Quotedstr('creativejxc_Log')+' TO '+Quotedstr(gs_appPath+'\Data\'+Edit4.text+'_creative_log.ldf'));
             sql.add(' alter database '+Edit4.text+' set online with rollback immediate ');
             sql.Add(' Use '+Edit4.text);
             p_WriteMainINI('RestoreDatabase','RestoreDB',sql.Text );
             ExecSQL;
            end;
       finally
        cdadoquery.Free;
       end;

   except
     on E:Exception do
      begin
      Screen.Cursor :=crDefault;
      messagedlg('还原数据库失败!'+#13#10+E.Message,mtError,[mbOk],0);
      exit;
      end;
   end;

   try
     with Datam.adoqmasters do
      begin
        close;
        sql.Clear;
        sql.Add('insert into ['+Edit4.Text+']..tuser(fcode,fname,fpwd,fadmin) values('+
                  quotedstr('admin')+','+quotedstr('超级用户')+','+quotedstr('888888')+
                  ','+vartosql('1')+')');
        ExecSql;
      end;
   except
    on E:exception do
      begin
        messagedlg('创建数据库之后还原不成功,请联系统管理员 ! '+#10#13+E.Message,mtError,[mbok],0);
        Exit;
      end;
   end;

   edit1.Text:='';
   edit2.Text:=''; 
   frmlogin.refenceDatabase;
   Screen.Cursor :=crDefault;
   application.MessageBox('创建数据库成功 ! ','东创卓越2005',MB_OK+MB_iconWarning);
   Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -