以前在程序中,用delphi7连接Sqlserver数据库,都是在窗体中 直接拖adoconnection 和 adoquery,并且通过向导直接设置连接属性。现在,我想通过一个 “连接数据库”这个按钮来实现,对数据库的连接:如果能正常连接(IP地址,用户名,密码都对的情况下)则提示: “连接正常...” ,
如果连接不正常,比如,IP地址错,登录用户名错或密码错,发生这些异常,则提示: “错误,连接不正常”请问我该如何做?? 急的,刚遇到,请大哥们为我写个完整的,谢谢了。sqlserver服务器登录ip: 192.168.0.1, 用户:sa ,密码:sa ,要操作的数据库名:student谢谢了!
如果连接不正常,比如,IP地址错,登录用户名错或密码错,发生这些异常,则提示: “错误,连接不正常”请问我该如何做?? 急的,刚遇到,请大哥们为我写个完整的,谢谢了。sqlserver服务器登录ip: 192.168.0.1, 用户:sa ,密码:sa ,要操作的数据库名:student谢谢了!
解决方案 »
- 关于串口注册回调函数问题
- DBCHART标题相互档住了
- zeoslib(zeosDBO) 如何动态指定Access(mdb)数据库
- 关于property
- windows xp升级到sp2,以前开发的程序出现问题access violation 00000000,请教高手!
- 辞职了,散分
- D6,Bde,access2000,用query的update不能同时更新数据库的多个字段。
- StringGrid1.LoadFromResourceName( HInstance, 'BMP_BRD' );什么意思?在线
- 怎样在一个按钮事件中生成可供全局使用的记录类型
- 如何做一个这样的按钮?
- 收费信息的操作
- delphi 7 sendmessage LVM_DELETEITEM 为什么一次删除两条记录?????
当然下面的配置信息你也可以写死,不过那样并不好var
myini:tinifile;
s_s1,s_s2,s_s3:string;
begin
myini:=tinifile.Create('.\conn.ini');
s_s1:=myini.ReadString('Host','Server','');//连接服务器名称或ip地址192.168.0.1
s_s2:=myini.ReadString('Host','Username','');//数据库用户名 sa
s_s3:=myini.ReadString('Host','Password','');//数据库用户名的密码 sa
myini.Free;
try
DM1.DB1.connected:=false;
//动态设置连接字符串
DM1.DB1.connectionstring:='Provider=SQLOLEDB.1;Password='+s_s3+';Persist Security Info=True;User ID='+s_s2+';Initial Catalog=master;Data Source='+s_s1+';Locale Identifier=2052;Connect Timeout=15;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID='+s_s1;
DM1.DB1.LoginPrompt:=false;
DM1.DB1.connected:=true;
messageboxex(handle,'连接正常....','提示',MB_OK+MB_ICONINFORMATION,0);
except
messageboxex(handle,'错误,连接不正常...请检查设置','提示',MB_OK+MB_ICONINFORMATION,0);
end;
end;
try
adoconnection.connected := true;
showmessage('success');
except
showmessage('error');
end;
begin
try
ADOConnection.Connected := false;
ADOConnection.ConnectionString :='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog='+dbname+';Data Source='+servername+';Connect Timeout=30';
ADOConnection.LoginPrompt :=false;
ADOConnection.connected:=True;
except
messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0);
application.terminate;
end;
end;servername:IP地址或机器名
dbname:数据库名
username:用户名
password:密码
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Close;
ADOConnection1.ConnectionString := '默认链接';
if EditConnectionString(ADOConnection1) then
begin
//点击确定后的处理代码`
end;end;这个方法不错.
ADOCONNECTION.connectionstring:='File Name='+ExtractFilePath(ParamStr(0))+'conn.udl';
TRY
ADOCONNECTION.CONNECTED:=TRUE;
EXCEPT
SHOWMESSAGE('FAILED');
END;
//写入ini,并测试是否连接上
procedure TDBConnectFrm.SpbntOkClick(Sender: TObject);
var
serverName, databaseName, userName, password: string;
begin
writeToIni(edtServerName.Text, edtDatabaseName.Text, edtUserName.Text, edtPassword.Text);
readFromIni(serverName, databaseName, userName, password);
DMFrm.ADOConnection1.ConnectionString := SADOContStr;
DMFrm.ADOConnection1.Connected := true;
if DMFrm.DBConnect() then
begin
Application.MessageBox('连接成功!', '提示', mb_iconInformation + mb_defbutton1);
Connected := True;
Close;
end
else
begin
Application.MessageBox('连接失败!', '提示', mb_iconInformation + mb_defbutton1);
end;
end;
adosql.Connected := false;
adosql.ConnectionString :='Provider=SQLOLEDB.1;Password="infox1eies2sps3was4!";Persist Security Info=True;User ID="sa";Initial Catalog="DB_CustomSMS";Data Source="211.143.225.177";Connect Timeout=30';
adosql.LoginPrompt :=false;
adosql.connected:=True;
except
messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0);
application.terminate;
end;
end;
如果用户名等什么都对,连接数据库时正常; 如果把ip地址,用户名写错了, 程序不会弹出框说“连接错误”而是直接 回到delphi界面,弹出程序错误框,说什么 sql无法访问。还是不行。 我要的是就是 连接用户名,或密码或ip错时,弹出 “连接错误”的框。还是不行,请各位更正,谢
try ...except...end
如果try后面有异常
在delphi环境下会直接弹出异常错误
而直接执行生成的exe文件
就会在try异常后执行except里面的东东
赶紧结贴!!!!
dbname :='DB_CustomSMS';
username := 'sa';
password :='infox1eies2sps3was4!' ;
try
adosql.Connected := false;
adosql.ConnectionString :='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog='+dbname+';Data Source='+servername+';Connect Timeout=30';
adosql.LoginPrompt :=false;
adosql.Connected:=True;
messageboxex(handle,'连接正常....','提示',MB_OK+MB_ICONINFORMATION,0); except
// messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0);
showmessage('error'); application.terminate;
end;
end;