filename:=ExtractFilePath(paramstr(0))+'serverip.ini';
Fini:=Tinifile.Create(filename);
with Fini do
try
try
sqlstring:=Fini.ReadString('server','ip','');
except
sqlstring:='127.0.0.1';
end;
finally
Fini.Destroy;
end;
if sqlstring='' then
begin
application.MessageBox('数据库配置不正确','提示',mb_ok);
application.Terminate;
end;
adocon.Close;
adocon.LoginPrompt:=false;
constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;'
+'Initial Catalog=building;Data Source='''+sqlstring+'''';
adocon.ConnectionString:=constring; try
showmessage(adocon.ConnectionString);
adocon.Connected:=true;
application.MessageBox('数据库连接正确,请登陆!','提示',mb_ok);
frm_login.showmodal;
except
application.MessageBox('数据库连接失败,请重新连接!','提示',mb_ok);
if not assigned(frm_setip) then
frm_setip.showmodal;
end;从INI中读取服务器IP,然后连接,代码应该没错误吧。
但是在局域网怎么就连不上呢,是不是因为360或者什么其他防病毒软件的原因?
解决方案 »
- delphi DBimage 读取数据库图片,出现Bitmap image is not valid
- zebra 打印機指令
- 哪位有regware2的控件,帮忙发给我,万分感激
- 关于在ACCESS数据库中的插入图片的问题
- ★★★★★ASK 4 IDEA★★★★★
- 为什么?
- Delphi运行时的问题,cannot focus a disabled or invisible window!
- 关于数据库远程操作image字段
- 人事工资管理系统
- proxies.pas文件在delphi 6里被什么文件代替了?找不着,以前的一些东东就无法使用了
- 求DELPHI BP神经算法!
- SQL Server2000数据库网路版系统怎样做数据库备份?
還有我看你的異常IP用 127.0.0.1 , 調試下。這個地方有沒有進入到異常裏面。 在局域網裏一般就是1433端口被防火牆攔了這些問題。
const strINIname = 'db.ini';//INI文件的文件名,根据具体情况修改
iniParam : TINIFile;
strLocal : String;procedure readParam(out server:String;out database:string;out user:string;out password:string);
begin
//从配置文件中读取数据库连接参数
server := iniParam.ReadString('dbParam','Data Source','');
database := iniParam.ReadString('dbParam','Initial Catalog','');
user := iniParam.ReadString('dbParam','User ID','');
password := iniParam.ReadString('dbParam','Password','');
end; procedure writeParam(server:string;database:string;user:string;password:string);
begin
//将数据库连接参数写入配置文件
iniParam.WriteString('dbParam','Data Source',server);
iniParam.WriteString('dbParam','Initial Catalog',database);
iniParam.WriteString('dbParam','User ID',user);
iniParam.WriteString('dbParam','Password',password);
end; function getConnStr:String;
var
server,database,user,password : String;
begin
//生成数据库连接串
readParam(server,database,user,password);
result := 'Provider=SQLOLEDB.1;Password=' + password + ';Persist Security Info=True;User ID=' + user + ';Initial Catalog=' + database + ';Data Source=' + server;
end;initialization
getDir(0,strLocal);
iniParam := TINIFile.Create(strLocal + '\' + strINIname);
finalization
iniParam.Free;
end.
局域網一般不會。但在廣域網經常會這樣,所以一般需要打上。 現SQL2000已經有SP4,翠防萬一,你可以下載個SP4打上。建議你先用 TELNET 先測下端口
不是的,我的意思你必須檢查下MSSQL的使用端口,通常沒有自己修改的話,都是使用的: 1433端口,你這種情況下必須先檢查下端口是不是被封了 你可以嘗試: Telnet IP : 1433 // 把IP換成你的服務器名或IP來測試,如果能進行 telnet 的 console 下就說明,端口是好的,反之就是端口被封了。
當然你也可以先采用。 建一個後綴名為 .udl 的文件,然後直接連接下測試看行不行。
var
myinifile:TInifile;
filename:string;
server,uid,sqlPassword,databasename,s:string;
begin
inherited;
Filename:=ExtractFilePath(Paramstr(0))+'mini.ini';
myinifile:=Tinifile.Create(filename);
databasename:=myinifile.readstring('配置参数','databasename','');
server:=myinifile.readstring('配置参数','servername','');
uid:=myinifile.readstring('配置参数','uid','');
sqlPassword:=myinifile.readstring('配置参数','sqlPassword','');
conn.Close;
s:='';
s:=s+'Provider=SQLOLEDB.1;';
s:=s+'Password='+ sqlPassword +';';
s:=S+'Persist Security Info=True;';
s:=S+'User ID='+ UID +';';
s:=S+'Initial Catalog='+ dataBaseName +';';
s:=S+'Data Source='+ server + ';'; conn.ConnectionString:=s;
conn.LoginPrompt:=false;
conn.Connected:=true;
应该在XP系统的管理,本地安全策略中的用户权限分配中
有个拒绝从网络访问这台计算机,删除里面的所有用户试试!
ping通并不代表你得sqlserver就能连上,这个问题不好说清楚,视具体的环境而定