📄 unit1.pas
字号:
Params.Clear;
Params.Add('USER NAME='+EUser.Text);
Params.Add('PASSWORD='+EPass.Text);
AliasName:=Trim(ComboBox1.Text);
connected:=true;
Open;
GetTableNames(LTableList.Items);
QueryBDE.DatabaseName:=DatabaseName;
Screen.Cursor:=crDefault;
except
Screen.Cursor:=crDefault;
application.MessageBox('连接数据库失败,请检查用户密码和数据库名称路径及是否支持后重试!','打开数据库错误',0);
end;
end;
end else
begin //如果别名框输入的别名系统里不存在则进入创建
try
if MessageBox(Handle,pchar('别名"'+ComboBox1.Text+'"不存在,现在创建吗?'),'别名创建',MB_OKCANCEL)=IDCANCEL then begin Screen.Cursor:=crDefault;Exit;end;
PathStr:='c:\temp';
if InputQuery('路径选择','请输入存放数据的路径,如:"c:\data" ',PathStr) then
begin
PathStr:=Trim(PathStr);
if AnsiContainsText(PathStr,'.') then EDatabaseFile.text:=ExtractFilePath(PathStr);
EDatabaseFile.text:=PathStr;
DatabaseBDE.AliasName:=Trim(ComboBox1.Text);
Session.AddStandardAlias(Trim(ComboBox1.Text),PathStr,'PARADOX');//STANDARD,ORACLE,SYBASE,INTERBASE,PARADOX
Session.SaveConfigFile; //BDE配置文件存盘
Session.GetAliasNames(ComboBox1.Items);
MessageBox(Handle,pchar('别名"'+ComboBox1.Text+'"已成功创建!'),'别名创建',MB_OK);
Screen.Cursor:=crDefault;
end;
except
Screen.Cursor:=crDefault;
application.MessageBox('创建别名失败,请检查系统权限和数据库路径是否正确!','创建别名失败',0);
end;
end;
end else begin Screen.Cursor:=crDefault; application.MessageBox('老兄有没有搞错呀,数据库没选择你要打开什么呀?','打开数据库错误',0); end;
end;
N1.Enabled:=True;
N3.Enabled:=True;
N4.Enabled:=True;
BOutoToFile.Enabled:=True;
BSqlCommand.Enabled:=True;
LTableList.ItemIndex:=LTableList_ItemIndex;
LTableListClick(Sender);
Screen.Cursor:=crDefault;
except
Screen.Cursor:=crDefault;
application.MessageBox('连接数据库失败,请检查数据源路径或别名和数据格式以及登陆用户密码是否正确!','打开数据库错误',0);
end;
end;
procedure TForm1.EDatabaseFileClick(Sender: TObject);
begin
try
if OpenDialog1.Execute then EDatabaseFile.Text:=OpenDialog1.FileName;
except
end;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
DBFunctions.DBGridRecordSize(Column); //调用返回DBGrid控件字段宽度的过程
end;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
DBFunctions.DBGrid1TitleSort(Column);
end;
procedure TForm1.BOutoToFileClick(Sender: TObject);
var Date:TStrings;
begin
try
SaveToFile.FileName:=LTableList.Items[LTableList.ItemIndex];
if SaveToFile.Execute then
begin
Application.ProcessMessages;
Screen.Cursor:=crAppStart;
Date:=TStringList.Create;
if SameText(Rightstr(pchar(SaveToFile.FileName),4),'.txt') then
DBFunctions.DBGridToTxt(DBGrid1,Date,' ',LTableList.Items[LTableList.ItemIndex]) else DBFunctions.DBGridToHtml(DBGrid1,Date,LTableList.Items[LTableList.ItemIndex]);
Date.SaveToFile(pchar(SaveToFile.FileName));
Screen.Cursor:=crDefault;
end;
except
end;
end;
procedure TForm1.BSqlCommandClick(Sender: TObject);
begin
if trim(SqlStr.text)<>'' then
begin
Screen.Cursor:=crAppStart;
Application.ProcessMessages;
if RadioGroup1.Items[RadioGroup1.ItemIndex]='BDE' then
begin
with QueryBDE do
begin
try
Close;
Sql.Clear;
DatabaseName:=DatabaseBDE.DatabaseName;
SQL.Add(Pchar(trim(SqlStr.text)));
if LeftStr(trim(SqlStr.text),6)<>'select' then ExecSQL else Open;
LTableList.Items.Clear;
DatabaseBDE.GetTableNames(LTableList.Items);
DataSource1.DataSet:=QueryBDE;
Screen.Cursor:=crDefault;
except
Screen.Cursor:=crDefault;
showmessage('SQL命令语法有误,没有成功执行!');
end;
end;
end else
begin
with ADOQuery1 do
begin
try
Close;
SQL.Clear;
Connection:=ADOConnection1;
SQL.Add(Pchar(trim(SqlStr.text)));
if LeftStr(trim(SqlStr.text),6)<>'select' then ExecSQL else Open;
LTableList.Items.Clear;
ADOConnection1.GetTableNames(LTableList.Items);
DataSource1.DataSet:=ADOQuery1;
Screen.Cursor:=crDefault;
except
Screen.Cursor:=crDefault;
showmessage('SQL命令语法有误,没有成功执行!');
end;
end;
end;
DBGrid1.DataSource:=DataSource1;
LTableList.ItemIndex:=LTableList_ItemIndex;
if LeftStr(trim(SqlStr.text),6)<>'select' then LTableListClick(Sender);
DBFunctions.DBGridAutoSize(DBGrid1,15);//调用对DBGrid控件数据进行自动字段宽度的处理过程
Screen.Cursor:=crDefault;
end else showmessage('有没有搞错呀,你命令都没输入执行什么呀?');
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Session.DeleteAlias(Trim(ComboBox1.Text));
end;
procedure TForm1.N3Click(Sender: TObject);
begin
SqlStr.Text:='DROP TABLE '+LTableList.Items[LTableList.ItemIndex]+';';
ADOQuery1.Close;
ADOQuery1.Active:=False;
QueryBDE.Close;
QueryBDE.Active:=False;
BSqlCommandClick(Sender);
N4Click(Sender);
end;
procedure TForm1.N4Click(Sender: TObject);
begin
if RadioGroup1.Items[RadioGroup1.ItemIndex]='BDE' then
begin
DatabaseBDE.GetTableNames(LTableList.Items);
LTableList.ItemIndex:=LTableList_ItemIndex;
end else
begin
ADOConnection1.GetTableNames(LTableList.Items);
LTableList.ItemIndex:=LTableList_ItemIndex;
end;
LTableListClick(Sender);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if RadioGroup1.Items[RadioGroup1.ItemIndex]='ADO' then
begin
if (ComboBox1.Text='=====驱动类型=====') or (ComboBox1.Text='') then
begin
EDatabaseFile.Enabled:=False;
EUser.Enabled:=False;
EPass.Enabled:=False;
BOpenDatabase.Enabled:=False;
SqlStr.Enabled:=False;
BSqlCommand.Enabled:=False;
BOutoToFile.Enabled:=False;
end else
begin
EDatabaseFile.Enabled:=True;
EUser.Enabled:=True;
EPass.Enabled:=True;
BOpenDatabase.Enabled:=True;;
if (ComboBox1.Text='Access Database') or (ComboBox1.Text='OLEDB.3.51 *.mdb') or (ComboBox1.Text='OLEDB.4.0 *.mdb') then
begin
OpenDialog1.DefaultExt:='*.mdb';
end else
if ComboBox1.Text='dBASE *.dbf;*.?dx' then
begin
OpenDialog1.DefaultExt:='*.dbf;*.db;*.?dx';
end else
if ComboBox1.Text='VFP Datebase *.dbf' then
begin
OpenDialog1.DefaultExt:='*.dbf;*.db';
end else
if ComboBox1.Text='VFP Datebase *.dbc' then
begin
OpenDialog1.DefaultExt:='*.dbc';
end else
if ComboBox1.Text='SQL Server' then
begin
EDatabaseFile.Enabled:=False;
end else
if ComboBox1.Text='搜索数据源别名...' then
begin
ComboBox1.Items.Clear;
Session.GetAliasNames(ComboBox1.Items);
ComboBox1.Items.Add('=====驱动类型=====');
ComboBox1.Items.Add('Access Database'); // MS Access Database
ComboBox1.Items.Add('OLEDB.3.51 *.mdb'); //Microsoft.Jet.OLEDB.3.51
ComboBox1.Items.Add('OLEDB.4.0 *.mdb'); //Microsoft.Jet.OLEDB.4.0
ComboBox1.Items.Add('dBASE *.dbf;*.?dx'); //*.dbf;*.ndx;*.mdx
ComboBox1.Items.Add('VFP Datebase *.dbf');
ComboBox1.Items.Add('VFP Datebase *.dbc');
ComboBox1.Items.Add('SQL Server');
ComboBox1.Items.Add('搜索数据源别名...');
ComboBox1.Text:='Access Database';
end;
end;
end else
begin
if (ComboBox1.Text='打开文件...') then
begin
EDatabaseFile.Enabled:=True;
EUser.Enabled:=True;
EPass.Enabled:=True;
BOpenDatabase.Enabled:=True;
OpenDialog1.DefaultExt:='*.dbf,*.db,*.dbc,*.?dx';
end else
if ComboBox1.Text='搜索数据源别名...' then
begin
ComboBox1.Items.Clear;
Session.GetAliasNames(ComboBox1.Items);
ComboBox1.Items.Add('打开文件...');
ComboBox1.Items.Add('搜索数据源别名...');
ComboBox1.Text:='打开文件...';
end else
if (ComboBox1.Text<>'') then
begin
EDatabaseFile.Enabled:=False;
EUser.Enabled:=True;
EPass.Enabled:=True;
BOpenDatabase.Enabled:=True;
N2.Enabled:=True;
end;
end;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
LTableList.Clear;
DatabaseBDE.Close;
ADOConnection1.Close;
ADOQuery1.Close;
ADOQuery1.Active:=False;
QueryBDE.Close;
QueryBDE.Active:=False;
LTableList_ItemIndex:=0;
BOutoToFile.Enabled:=False;
BSqlCommand.Enabled:=False;
N1.Enabled:=False;
N2.Enabled:=False;
N3.Enabled:=False;
N4.Enabled:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RadioGroup1Click(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -