服务器不一样了 比如说你原来是在A机器上做的,现在换到B机器上,但是数据库连接字符中DataSource还是A,如果A和B不在同一个局域网内,就会连接不到.根据你的情况,你可以在初始化连接数据库中这样写:
function TUserInfor.GetLocalHostName: string;//获得本地计算机的名称!
var
ComputerName:pchar;
Size: Cardinal;
Re:Boolean;
begin
Size := MAX_COMPUTERNAME_LENGTH+1;
Getmem(ComputerName,Size);
{retrieve computer name}
Re:=GetComputerName(ComputerName, Size);
if re then
result := StrPas(Computername)
else Showmessage('没有发现机器名称!');
Freemem(ComputerName);
end;
//ADOconnection的属性设置
with ADOconnection do
begin
conn.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=OFFICIAL;Data Source='+GetLocalHostName;