如何将数据库配置文件写入注册表?并在每次运行软件时,判断数据库是否连接?数据库是sql2000...急...请给出代码做为参考.谢谢
解决方案 »
- 请教关于调用问题。
- delphi调用dos命令更改网卡IP参数,以及执行DOS命令顺序的问题
- 这个问题好奇怪,
- 那位兄弟在线,帮我解决一个非常简单的问题!
- 哪位高手给俺批讲批讲printer里那个画布的用法,或者把和它相关的属性、方法、函数给列出来……谢谢!!
- 一简单问题
- 一个简单的问题:如果去掉DBGrid的滚动条?
- 如何动态创建一个从一特定的窗体继承过来的窗口。
- 您好,请教 Socket 的原生含数 Send 怎么用? 谢谢您.
- 急急急!请教如何使Tchart图表控件的X坐标为当前的时间并且是动态的(用在实时曲线中)?
- OpenDialog和ini文件的问题
- 赋值出错:不兼容问题,请问应该怎么赋值啊,凡参与者皆有分奖励
var
canReg:TRegistry;begin
try
canreg:=tregistry.Create;
canreg.RootKey:=HKEY_LOCAL_MACHINE; //将根键设置为KEY_LOCAL_MACHINE
canreg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\',true);
canreg.WriteString('setup','Provider=SQLOLEDB.1;Integrated urity=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=yang;Data Source=SHIP');
except
end;end;判断连接可以
try
ADOTable1.open;
except
showmessage('未连接');
end;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, dxEdLib, dxCntner, dxEditor,
dxExEdtr,ComObj, DB, ADODB,inifiles,Registry;type
TfrmDataInit = class(TForm)
Panel1: TPanel;
Bevel3: TBevel;
Bevel4: TBevel;
Label1: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
dxPickEdit1: TdxPickEdit;
dxEdit1: TdxEdit;
dxEdit2: TdxEdit;
dxEdit5: TdxEdit;
RadioButton1: TRadioButton;
Label5: TLabel;
dxEdit6: TdxEdit;
CreateData: TdxEdit;
ChooseData: TdxPickEdit;
dxEdit4: TdxEdit;
dxEdit3: TdxEdit;
Comm: TADOConnection;
Query: TADOQuery;
Bevel1: TBevel;
Panel3: TPanel;
Bevel5: TBevel;
Bevel6: TBevel;
sbCx: TSpeedButton;
Bevel7: TBevel;
SpeedButton2: TSpeedButton;
DataInit: TADOQuery;
procedure sbCxClick(Sender: TObject);
procedure ChooseDataDropDown(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
OK:integer;
end;var
frmDataInit: TfrmDataInit;implementationuses uLogin, udmSkh, uSkh, ubkcl;
{$R *.dfm}procedure TfrmDataInit.sbCxClick(Sender: TObject);
begin
Close;
end;procedure TfrmDataInit.ChooseDataDropDown(Sender: TObject);
var
SQLServer:Variant;
Server:Variant;
db:Variant;
i,j:integer;
begin
if dxPickEdit1.Text='' then
begin
MessageBox(frmDataInit.Handle,'请先选择服务器!','销售管理系统',MB_ICONINFORMATION);
Exit;
end;
if dxEdit1.Text='' then
begin
MessageBox(frmDataInit.Handle,'请输入你的登录帐号和密码!','销售管理系统',MB_ICONINFORMATION);
Exit;
end;
try SQLServer:=CreateOleObject('SQLDMO.Application');
Server:=CreateOleObject('SQLDMO.SQLServer');
Server.Connect(dxPickEdit1.Text,dxEdit1.Text,dxEdit2.Text);
db:=Server.DataBases;
i:=db.Count;
ChooseData.Items.Clear;
for j:=1 to i do
ChooseData.Items.Add(db.item(j).name); Server:=NULL;
SQLServer:=NULL;
db:=NULL;
except
on E: Exception do
begin
MessageBox(Self.Handle, '请确定你输入的数据库参数是否正确!', '系统提示', MB_ICONINFORMATION);
end;
end;
end;procedure TfrmDataInit.SpeedButton2Click(Sender: TObject);
var
Reg: Tregistry;
begin
if (dxPickEdit1.Text='') and (dxEdit1.Text='') then Exit;
if ChooseData.Text='' then
begin
MessageBox(Self.Handle,'请正确选择数据库!','百科软件',MB_ICONINFORMATION);
Exit;
end; //写注册表;
Reg:=Tregistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Bksoft\clglxt',true);
Reg.WriteString('ip',dxPickEdit1.Text);
Reg.WriteString('username',jiami(dxEdit1.Text));
Reg.WriteString('password',jiami(dxEdit2.Text));
Reg.WriteString('databasename',jiami(ChooseData.Text));
Reg.WriteString('cinipreg','sfjrwr'); //ly new
Reg.WriteString('cinip','sfsjwjrj2r2'); //ly new
Reg.WriteString('cinuseo','hhwr24r24h'); //ly new try
dmskh.ADOConnection1.Connected:=False;
dmskh.ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password='+dxEdit2.Text+';'
+'Persist Security Info=True;User ID='+dxEdit1.Text+';'
+'Initial Catalog='+ChooseData.Text+';Data Source='+dxPickEdit1.Text+';'
+'Use Procedure for Prepare=1;Auto Translate=True;'
+'Packet Size=4096;'
+'Use Encryption for Data=False;'
+'Tag with column collation when possible=False';
try
dmSkh.ADOConnection1.Connected:=True;
OK:=1;
MessageBox(Self.Handle,'数据据库设置成功,请重启新动本软件','百科软件',MB_ICONINFORMATION);
Close;
// frmbkcl.Close;
except
OK:=0;
MessageBox(self.Handle,'数据据库设置不正确,请重新设置!','百科软件',MB_ICONINFORMATION);
end;
except
MessageBox(Self.Handle,'系统遇到未知错误,请重新启动本系统!','百科软件',MB_ICONINFORMATION);
end;
end;procedure TfrmDataInit.FormShow(Sender: TObject);
begin
OK:=0;
end;end.
var
reg: TRegistry; //声明一个 regdit 类型变量
sip,spas,suse,sdan: string; //存放字符串变量
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
try
if reg.OpenKey('SOFTWARE\Bksoft\clglxt',true) then
begin
sip:= reg.ReadString('ip'); //从注册表中读取对应字符串的值
spas:=reg.ReadString('password');
suse:=reg.ReadString('username');
sdan:=reg.ReadString('databasename');
dmskh.IsMessage:=StrtoIntDef(reg.REadString('IsMessage'),0);
end;
finally
reg.CloseKey;
end; if (suse = '') or (sdan = '') then
begin
MessageBox(self.Handle,'系统注册表中没有配置数据库连接参数,请重新配置!','百科软件',MB_ICONINFORMATION);
frmDataInit:=TfrmDataInit.Create(Self);
frmDataInit.ShowModal;
frmDataInit.Free;
frmbkcl.Close;
Exit;
end; try
dmskh.ADOConnection1.Connected :=False;
dmskh.ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password='+jiemi(spas)+';'
+'Persist Security Info=True;User ID='+jiemi(suse)+';'
+'Initial Catalog='+jiemi(sdan)+';Data Source='+sip+';'
+'Use Procedure for Prepare=1;Auto Translate=True;'
+'Packet Size=4096;'
+'Use Encryption for Data=False;'
+'Tag with column collation when possible=False'; dmskh.ADOConnection1.Connected :=True; dmSkh.adoLxrda.Open;
dmSkh.adoQyzl.Open;
except
dmSkh.Free;
MessageBox(self.Handle,'数据库参数设置错误,无法链接到指定数据库!请重新设置!','百科软件',MB_ICONINFORMATION);
frmDataInit:=TfrmDataInit.Create(Self);
frmDataInit.ShowModal;
frmDataInit.Free;
Application.Terminate;
end;
cxDlsj.Date :=Now;
LoadIni;
end;