?? xjzt1.pas
字號:
unit xjzt1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, ComCtrls, Db, ADODB;
type
Txjzt = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
BitBtn4: TBitBtn;
N: TEdit;
Edit1: TEdit;
BitBtn5: TBitBtn;
CheckBox1: TCheckBox;
ADOQuery2: TADOQuery;
procedure BitBtn4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ResToFile(const ResName, ResType, FileName: string);
private
{ Private declarations }
public
{ Public declarations }
end;
var
xjzt: Txjzt;
implementation
uses ztgl1;
{$R *.DFM}
{$R DatBase.RES}
procedure Txjzt.ResToFile(const ResName, ResType, FileName: string);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(FileName); //將資源保存為文件,即還原文件
Res.Free;
end;
procedure Txjzt.BitBtn4Click(Sender: TObject);
var I: integer;
begin
if Trim(N.Text) = '' then
begin
application.MessageBox('請輸入數據庫名.', '錯誤', MB_OK + MB_ICONERROR);
N.SetFocus;
exit;
end;
if Trim(Edit1.Text) = '' then
begin
application.MessageBox('請輸入賬套說明.', '錯誤', MB_OK + MB_ICONERROR);
Edit1.SetFocus;
exit;
end;
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'USE [Master]';
ADOQuery2.ExecSQL;
ADOQuery2.Close;
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'select * from server_db where dbname=:dbname';
ADOQuery2.Parameters[0].Value := Trim(N.Text);
ADOQuery2.Open;
if ADOQuery2.RecordCount > 0 then
begin
application.MessageBox('數據庫名已經存在,請重新輸入.', '錯誤', MB_OK + MB_ICONERROR);
exit;
end;
if application.MessageBox(PChar('是否決定建立名為 ' + N.text + ' 的數據庫(賬套)?'), '提示', MB_YESNO + MB_ICONQUESTION) = IDNO then exit;
ztgl.ADOQuery1.Close;
ztgl.ADOQuery1.SQL.Text := 'CREATE DATABASE [' + N.TEXT + '] ON (NAME = N' + #39 + N.Text + '_DATA' + #39 +
',FILENAME = N' + #39 + ExtractFilePath(Application.Exename) + 'DATFILE\' + N.Text + '_DATA.MDF' + #39 +
', SIZE=10,FILEGROWTH=10%) LOG ON (NAME =N' + #39 + N.Text + '_LOG' + #39 + ', FILENAME =N' +
#39 + ExtractFilePath(Application.Exename) + 'DATFILE\' + N.Text + '_LOG.LDF' + #39 + ',SIZE=2, FILEGROWTH=10%)' + #13 + 'COLLATE CHINESE_PRC_CI_AS';
ztgl.ADOQuery1.ExecSQL;
if CheckBox1.Checked then
ResToFile('DatBase', 'FILE1', ExtractFilePath(Application.Exename) + 'LXF.DAT')
else
ResToFile('DatBase', 'FILE2', ExtractFilePath(Application.Exename) + 'LXF.DAT');
ztgl.ADOQuery1.close;
ztgl.ADOQuery1.SQL.Clear;
ztgl.ADOQuery1.SQL.Add('RESTORE FILELISTONLY FROM DISK = ' + #39 + ExtractFilePath(Application.Exename) + 'LXF.DAT' + #39);
ztgl.ADOQuery1.SQL.Add('RESTORE DATABASE ' + N.TEXT + ' FROM DISK=' + #39 + ExtractFilePath(Application.Exename) + 'LXF.DAT' + #39 + ' WITH REPLACE,');
ztgl.ADOQuery1.SQL.Add('MOVE ' + #39 + 'LXF_DATA' + #39 + ' TO ' + #39 + ExtractFilePath(Application.Exename) + 'DATFILE\' + N.Text + '_DATA.MDF' + #39 + ',');
ztgl.ADOQuery1.SQL.Add('MOVE ' + #39 + 'LXF_LOG' + #39 + ' TO ' + #39 + ExtractFilePath(Application.Exename) + 'DATFILE\' + N.Text + '_LOG.LDF' + #39);
ztgl.ADOQuery1.ExecSQL;
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'USE [Master]';
ADOQuery2.ExecSQL;
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'insert into server_db(dbname,bz,jlrq,mrdb)';
ADOQuery2.SQL.Add('values (:dbname,:bz,:jlrq,:mrdb)');
ADOQuery2.Parameters[0].Value := N.Text;
ADOQuery2.Parameters[1].Value := Edit1.Text;
ADOQuery2.Parameters[2].Value := Now();
ADOQuery2.Parameters[3].Value := '1';
ADOQuery2.ExecSQL;
application.MessageBox('數據庫建立完成.', '提示', MB_OK + MB_ICONINFORMATION);
ztgl.ADOQuery1.Close;
ztgl.ADOQuery1.SQL.Text := 'USE [Master]';
ztgl.ADOQuery1.ExecSQL;
ztgl.ADOTable1.Close;
ztgl.ADOTable1.Open;
close;
end;
procedure Txjzt.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -