根据几位这里的朋友们的帮助下,我写了一个调用ini的参数连接sql的方法,现在我想把这个做成funtion,那位能帮我改一下吗,这样我可以在别的pas里调用。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, IniFiles;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
myinifile:Tinifile;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var
password,servername,user,databasename:string;
begin
myinifile:=Tinifile.create (ExtractFilePath (
Application.ExeName) + 'conn.ini');
password:= myinifile.readString('conn','password',password);
servername:= myinifile.readString('conn','servername',servername);
user:= myinifile.readString('conn','user',user);
databasename:= myinifile.readString('conn','databasename',databasename);
myinifile.Free;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog='+databasename+';'+
'User ID='+User+';password='+PassWord+';Data Source='+servername;
try
adoconnection1.LoginPrompt:=False;
ADOConnection1.Connected := True;
except
Application.MessageBox('连接失败,请检查服务器配置是否正确!','提示',MB_OK+MB_ICONINFORMATION);
Application.Terminate;
end;adoquery1.Active:=true;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, IniFiles;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
myinifile:Tinifile;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var
password,servername,user,databasename:string;
begin
myinifile:=Tinifile.create (ExtractFilePath (
Application.ExeName) + 'conn.ini');
password:= myinifile.readString('conn','password',password);
servername:= myinifile.readString('conn','servername',servername);
user:= myinifile.readString('conn','user',user);
databasename:= myinifile.readString('conn','databasename',databasename);
myinifile.Free;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog='+databasename+';'+
'User ID='+User+';password='+PassWord+';Data Source='+servername;
try
adoconnection1.LoginPrompt:=False;
ADOConnection1.Connected := True;
except
Application.MessageBox('连接失败,请检查服务器配置是否正确!','提示',MB_OK+MB_ICONINFORMATION);
Application.Terminate;
end;adoquery1.Active:=true;
end;end.
解决方案 »
- 驱动IO模拟按键 C++转Delphi 看看我写的代码问题出在哪里?
- 跪求!制造业ERP的需求说明书或流程说明,百分相送,谢谢
- 急,请问,如何将DBGridEh 选中的N条记录 放到 一个变量的 datasource 中去呢? 急 详细如内容?
- ★★★★★★本人打算辞去DELPHI小版[Wwin32 SDK/API]|[DateBase]的版主一职,希望获得批准!★★★★★★
- 这是什么问题??帮帮我呀!!
- 这样有错吗?
- 关于创建动态按钮
- Paradox数据库,建了索引,用GotoKey的查找方法(普通性能PC),20000条记录,请问速度如何?会理想码?
- AHM2000 AND RXLIB2.71能否在DELPHI6.0中用
- shellexecute的问题
- 这样的经理可不可恶,大家请过来评评道理,多谢
- 求网上考试系统源代码
begin
...
end;簡單點, 這樣修改就可!
var
password,servername,user,databasename:string;
begin
Result:=False;
myinifile:=Tinifile.create (ExtractFilePath (
Application.ExeName) + 'conn.ini');
password:= myinifile.readString('conn','password',password);
servername:= myinifile.readString('conn','servername',servername);
user:= myinifile.readString('conn','user',user);
databasename:= myinifile.readString('conn','databasename',databasename);
myinifile.Free;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog='+databasename+';'+
'User ID='+User+';password='+PassWord+';Data Source='+servername;
try
adoconnection1.LoginPrompt:=False;
ADOConnection1.Connected := True;
Result:=True;
except
end;
end;
怎么样自己做一个*.pas,里写这样的函数,然后在别的pas里调用这个
Windows, Messages, Variants, Forms,
Dialogs, DB, ADODB, IniFiles; procedure SetADOConnection(ADOConnection1: TADOConnection);
implementation
var
myinifile:Tinifile;
procedure SetADOConnection(ADOConnection1: TADOConnection);
var
password,servername,user,databasename:string;
begin
myinifile:=Tinifile.create (ExtractFilePath (
Application.ExeName) + 'conn.ini');
password:= myinifile.readString('conn','password',password);
servername:= myinifile.readString('conn','servername',servername);
user:= myinifile.readString('conn','user',user);
databasename:= myinifile.readString('conn','databasename',databasename);
myinifile.Free;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog='+databasename+';'+
'User ID='+User+';password='+PassWord+';Data Source='+servername;
try
adoconnection1.LoginPrompt:=False;
ADOConnection1.Connected := True;
except
Application.MessageBox('连接失败,请检查服务器配置是否正确!','提示',MB_OK+MB_ICONINFORMATION);
Application.Terminate;
end; adoquery1.Active:=true;
end;end.
在 directiories/Conditions 中 的 search path 中, 加入你這個unit 所在的路徑
直接調用就可!
Application.ExeName) + 'conn.ini');
为什么这句话里的ExtractFilePath有问题啊