SQL Server连接界面的设计(文件操作实现)

本文介绍了一种使用Delphi进行数据库连接配置的方法,并通过读取.ini文件保存的用户名、IP等信息来动态设置数据库连接参数。此外,还提供了错误处理机制确保连接过程的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExtractFilePath

Returns the drive and directory portions of a file name.

The resulting string is the leftmost characters of FileName, up to and including the colon or backslash that separates the path information from the name and extension. The resulting string is empty if FileName contains no drive and directory parts.

This function works for multi-byte character systems (MBCS).

ParamStr returns the parameter from the command line that corresponds to Index, or an empty string if Index is greater than ParamCount. For example, an Index value of 2 returns the second command-line parameter.

Note:  On Windows, ParamStr(0) returns the path and file name of the executing program (for example, C:\TEST\MYPROG.EXE).
Note:  On Linux and Macintosh, ParamStr(0) returns the command used to execute the program, without parameters (for example, ./myprogram). This behavior is dependent on information returned by the shell program and may not be consistent among all shells.

Note:  Use double quotation marks to wrap multiple words as one parameter (such as long file names containing spaces).

unit UnitDataBaseLink;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmlinkSQL
= class(TForm)
edtPassword: TEdit;
cbbName: TComboBox;
cbbIP: TComboBox;
lblName: TLabel;
lblPassword: TLabel;
lblIP: TLabel;
btnSure: TButton;
btnCancel: TButton;
procedure btnSureClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }

end;

var
frmlinkSQL: TfrmlinkSQL;

implementation

uses UnitDM, UnitLogin, IniFiles;

{$R *.dfm}
var
filename:
string;
iniFile: TIniFile;
S: TStrings;

procedure TfrmlinkSQL.btnSureClick(Sender: TObject);
var
// result: Boolean;
i: Integer;
begin
DM.ADOConnection1.Close;
DM.ADOConnection1.ConnectionString :
= 'Provider=SQLOLEDB.1;Password='
+ QuotedStr(edtPassword.Text) + ';Persist Security Info=True;User ID='
+ QuotedStr(cbbName.Text) + ';Initial Catalog=Depot;Data Source=' +
QuotedStr(cbbIP.Text);
try
DM.ADOConnection1.Open;
iniFile.WriteString(
'User','UserName',cbbName.Text);
iniFile.WriteString(
'User','IP',cbbIP.Text);
iniFile.Free;
except
Application.MessageBox(pchar(
'连接出错'),'警告',MB_OK+MB_ICONWARNING);
iniFile.Free;
exit;
end;
with frmLogin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(
'select Username from Admin');
open;
end;
for i:=1 to frmLogin.Adoquery1.RecordCount do
begin
frmLogin.cbbUserName.Items.Add(frmLogin.adoquery1.Fields[
0].asstring);
frmLogin.Adoquery1.Next;
end;
frmLogin.cbbUserName.ItemIndex:
=0;
Application.MessageBox(pchar(
'连接成功'),'',MB_OK);


end;



procedure TfrmlinkSQL.btnCancelClick(Sender: TObject);
begin
frmlinkSQL.Close;
end;

procedure TfrmlinkSQL.FormCreate(Sender: TObject);
var
i: Integer;
begin
s :
= TStringList.Create;
Filename :
= ExtractFilePath(ParamStr(0))+'data.ini';
IniFile :
= TIniFile.Create(Filename);
try
iniFile.ReadSectionValues(
'User', s);
for i := 0 to s.Count-1 do
begin
if s.Names[i]='UserName' then
cbbName.Items.Add(s.Values[s.Names[i]])
else
cbbIP .Items.Add(s.Values[s.Names[
1]]);
end;
cbbName.Text :
= cbbName.Items[0];
cbbIP.Text :
= cbbIP.Items[0];
finally
s.Free;
end;

end;

end.

转载于:https://www.cnblogs.com/ljjphysics/archive/2011/05/20/2052304.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值