📄 mainunit1.pas
字号:
unit MainUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, RzPanel, RzStatus, ComCtrls, RzTreeVw, StdCtrls,
RzLabel, RzButton, Mask, RzEdit, jpeg, Menus,Registry, Grids, DBGrids, DB, ADODB,
ImgList, RzCmboBx, RzShellDialogs,unit2,unit3,QStdCtrls;
type
TForm1 = class(TForm)
RzGroupBox1: TRzGroupBox;
Image1: TImage;
EDT_filename: TRzEdit;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzLabel1: TRzLabel;
RzLabel2: TRzLabel;
RzGroupBox2: TRzGroupBox;
RzBitBtn3: TRzBitBtn;
RzBitBtn4: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
TRV: TRzTreeView;
MainMenu1: TMainMenu;
FILE1: TMenuItem;
EXIT1: TMenuItem;
RzBitBtn6: TRzBitBtn;
ImageList1: TImageList;
COMB_dbname: TRzComboBox;
OPEN_flag: TOpenDialog;
adocon: TADOConnection;
Refresh1: TMenuItem;
procedure RzButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzBitBtn4Click(Sender: TObject);
procedure addnode();
procedure RzBitBtn6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TRVDblClick(Sender: TObject);
procedure Refresh1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
query:Tadoquery;
linkstr,sql,datafiles,logfiles,sql1,sql2,sql3:string;
regi:Tregistry;
implementation
{$R *.dfm}
procedure TForm1.RzButton1Click(Sender: TObject);
begin
application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{ if dataname.Text='' then
begin
messagedlg('请输入实例名',mtinformation,[mbyes],0);
exit;
end;
if datafile.Text='' then
begin
messagedlg('请设置数据文件路径',mtinformation,[mbyes],0);
exit;
end;
if logfile.Text='' then
begin
messagedlg('请设置日志文件路径',mtinformation,[mbyes],0);
exit;
end;
regi:=Tregistry.Create;
try
regi.RootKey:=HKEY_LOCAL_MACHINE;
if not Regi.OpenKey('\Software\Microsoft\microsoft sql server\80\registration', True) then
begin
messagedlg('您的机子没有安装microsoft sql server请先安装microsoft sql server2000',mtinformation,[mbyes],0);
exit;
end;
finally
Regi.Free;
inherited;
end;}
{ linkstr:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=HHHH';
query:=Tadoquery.Create(self);
query.ConnectionString:=linkstr;
query.SQL.Clear;
query.SQL.Add('select * from sysdatabases');
try
query.Open;
except
messagedlg('数据库实例名错误或者是您的数据库没有正常启动!',mterror,[mbyes],0);
query.Close;
query.Free;
exit;
end;
BOOTNode:=TRV.Items.Add(nil,'SERVER');
BOOTNode.ImageIndex:=0;
FOR i:=0 to query.Recordset.RecordCount-1 do
begin
cnd:=TRV.Items.AddChild(BOOTNode,query.fieldbyname('name').AsString);
cnd.ImageIndex:=1;
cnd.SelectedIndex:=1;
COMB_dbname.Items.Add(query.fieldbyname('name').AsString);
query.Next;
end;}
//query.FieldByName('name').AsString
{i:=1;
query.SQL.Clear;
query.SQL.Add('select * from sysdatabases where name=''zhjwdb''');
query.Open;
if not query.Eof then
begin
messagedlg('教务系统数据库已经创建请先删除zhjwdb,或者是重新命名数据库后再创建',mterror,[mbyes],0);
query.Close;
query.Free;
exit;
end;
//timer1.Enabled:=true;
cursor:=crsqlwait;
datafiles:=datafile.Text+'\zhjwxt.mdf' ;
logfiles:=logfile.Text+'\zhjwxt.ldf';
sql:=' CREATE DATABASE zhjwdb ON(NAME=zhjwdb_dat,FILENAME='''+datafiles+''',SIZE=10,FILEGROWTH=5) LOG ON (NAME=zhjwdb_iog,FILENAME='''+logfiles+''',SIZE=10MB,FILEGROWTH=5) ';
adoconnection1.BeginTrans;
try
query.SQL.Clear;
query.SQL.Add(sql);
query.ExecSQL; //create datebase
sql1:='C:\program files\JWXT\db.bak' ;
sql2:='ZHJWDB_Data';
sql3:='ZHJWDB_Log';
sql:=' RESTORE DATABASE zhjwdb FROM DISK ='''+sql1+''' WITH MOVE '''+sql2+''' TO '''+datafiles+''', MOVE '''+sql3+''' TO '''+logfiles+''',REPLACE ' ;
query.SQL.Clear;
query.SQL.Add(sql);
query.ExecSQL;
adoconnection1.CommitTrans;
except
adoconnection1.RollbackTrans;
messagedlg('数据库生成失败请重新正确输入参数或者是查看您安装的教务系统是否成功!',mterror,[mbyes],0);
cursor:=crdefault;
query.close;
query.Free;
exit;
end;
messagedlg('数据库创建成功'+#13+'数据库名为:zhjwxt'+#13+'数据文件目录为:'+datafiles+#13+logfiles,mtinformation,[mbyes],0);
cursor:=crdefault;
//释放query;
query.Close;
query.Free; }
end;
procedure TForm1.RzBitBtn2Click(Sender: TObject);
begin
if (COMB_dbname.Text='') and (EDT_filename.Text='') then
begin
messagedlg('请选择要恢复的数据库或数据库路径!',mtinformation,[mbok],0);
exit;
end;
query.Close;
query.SQL.Clear;
query.SQL.Add('RESTORE DATABASE '+COMB_dbname.Text+' from disk='+''''+EDT_filename.Text+'''');
messagedlg('RESTORE DATABASE '+COMB_dbname.Text+' from disk='+''''+EDT_filename.Text+'''',mtinformation,[mbok],0);
try
query.ExecSQL;
except
begin
messagedlg('正在恢复数据库时只可以为单用户操作!',mterror,[mbok],0);
exit;
end;
end;
messagedlg('数据库'+'['+COMB_dbname.Text+']'+'恢复完毕!',mtinformation,[mbok],0);
close;
end;
procedure TForm1.RzBitBtn1Click(Sender: TObject);
begin
OPEN_flag.Title:='打开一个数据库文件';
OPEN_flag.Filter:='备份文件 (*.bak)|*.bak|All files (*.*)|*.*';
if OPEN_flag.Execute then
begin
if OPEN_flag.FileName<>'' then
begin
EDT_filename.Text:=OPEN_flag.FileName;
end;
end;
end;
procedure TForm1.RzBitBtn3Click(Sender: TObject);
begin
form2.ShowModal;
end;
procedure TForm1.RzBitBtn4Click(Sender: TObject);
var
select_database:string;
begin
select_database:=TRV.Selected.Text;
if TRV.Selected.Text='' then
begin
messagedlg('请选择要删除的数据库!',mtinformation,[mbok],0);
exit;
end;
query.Close;
query.SQL.Clear;
query.SQL.Add('DROP DATABASE '+TRV.Selected.Text );
try
if messagedlg('真的要删除'+'['+TRV.Selected.Text+']'+'数据库吗?',mtinformation,[mbyes,mbno],0)=mryes then
query.ExecSQL
else
exit;
except
begin
messagedlg('['+select_database+']'+'删除失败!',mterror,[mbok],0);
exit;
end;
end;
COMB_dbname.Clear;
form1.TRV.Items.Clear;
addnode();
messagedlg('['+select_database+']'+'删除成功!',mtinformation,[mbok],0);
end;
procedure TForm1.addnode();
var
i,j:integer;
BOOTNode,cnd,cnd1: TTreeNode;
templist:tlistbox;
BEGIN
linkstr:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=HHHH';
query:=Tadoquery.Create(self);
query.Connection:=adocon;
query.ConnectionString:=linkstr;
query.SQL.Clear;
query.SQL.Add('select * from sysdatabases');
try
query.Open;
except
messagedlg('数据库实例名错误或者是您的数据库没有正常启动!',mterror,[mbyes],0);
query.Close;
query.Free;
exit;
end;
BOOTNode:=TRV.Items.Add(nil,'SERVER');
BOOTNode.ImageIndex:=0;
FOR i:=0 to query.Recordset.RecordCount-1 do
begin
cnd:=TRV.Items.AddChild(BOOTNode,query.fieldbyname('name').AsString);
cnd.ImageIndex:=1;
cnd.SelectedIndex:=1;
COMB_dbname.Items.Add(query.fieldbyname('name').AsString);
//增加数据库表 -----------------------------------------------------
adocon.Close;
adocon.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+query.fieldbyname('name').AsString+';Data Source=HHHH';
adocon.LoginPrompt:=false;
adocon.Open;
templist:=tlistbox.Create(self);
adocon.GetTableNames(templist.Items,true);
for j:=0 to templist.Items.Count-1 do
begin
cnd1:=TRV.Items.AddChild(cnd,templist.Items.Strings[j]);
cnd1.ImageIndex:=5;
cnd1.SelectedIndex:=5;
end;
//------------------------------------------------------------------
query.Next;
end;
adocon.Connected:=false;
adocon.KeepConnection:=false;
adocon.Close;
//templist.Free;
END;
procedure TForm1.RzBitBtn6Click(Sender: TObject);
begin
close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
addnode();
end;
procedure TForm1.TRVDblClick(Sender: TObject);
begin
form3.ShowModal;
end;
procedure TForm1.Refresh1Click(Sender: TObject);
begin
COMB_dbname.Clear;
form1.TRV.Items.Clear;
addnode();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -