我就是不明白,为什么做delphi6+sqlserver2000安装程序如此的难.(50分)

  • 主题发起人 主题发起人 moonxp
  • 开始时间 开始时间
你在server上是否建立的是域控制器,也就是说server是不是建立在域上,如果是的话,就得
装‘紧连接’,而且还要在客户段配置,如果是组的话,就不用了,我也想不通为什么行,
但我试的就是行
 
一定要装,因为你说的单机版不过是本地运行,若数据库是sqlserver的话就一定要装.
至于连接要看你用那种方式ado bde加装相应的驱动就可以了,另不要把连接信息写进
程序,要进行动态配置
 
我的做法是设计一个界面让客户输入数据库机器名,数据用户名,数据库密码.然后
保存在ini文件中.
下面是我的代码:procedure TForm1.Button1Click(Sender: TObject);
var
connectstr,dbname,uname,pword,dirname:string;
filehandle:integer;
f:textfile;
begin
getdir(0,dirname);
if fileexists(dirname+'/linkdb.ini') then
begin
assignfile(f,dirname+'/linkdb.ini');
reset(f);
readln(f,dbname);
readln(f,uname);
readln(f,pword);
closefile(f);
end else
begin
dbname:=edit1.Text;
uname:= edit2.Text;
pword:= edit3.Text;
filehandle:=filecreate(dirname+'/linkdb.ini');
fileclose(filehandle);
assignfile(f,dirname+'/linkdb.ini');
rewrite(f);
dbname:='computername='+dbname;
uname:= 'username='+uname;
pword:= 'password='+pword;
writeln(f,dbname);
writeln(f,uname);
writeln(f,pword);
closefile(f);
end;
dbname:=copy(dbname,14,length(dbname)-13);
uname:= copy(uname,10,length(uname)-9);
pword:= copy(pword,10,length(pword)-9);
connectstr:='Provider=SQLOLEDB.1;Password='+pword+
';Persist Security Info=True;User ID='+uname+
';Initial Catalog=rsglxt;Data Source='+dbname+
';Use Procedure for Prepare=1;Auto Translate=True;'+
'Packet Size=4096;Workstation ID='+dbname;
try
adoconnection1.Connected:=false;
adoconnection1.ConnectionString:=connectstr;
adoconnection1.Connected:=true;
adotable1.Active:=true;
except
on E:exceptiondo
begin
adoconnection1.Connected:=false;
adotable1.Active:=false;
showmessage(e.Message);
// showmessage(inttostr(comparestr(e.Message,'[DBMSSOCN]一般性网络错误。请检查网络文档。')));
if e.Message='[DBMSSOCN]一般性网络错误。请检查网络文档。' then
begin
application.MessageBox('数据库机器名错误!'+#13+'请重新输入数据库机器名!','登录数据库错误',mb_ok+mb_iconstop+mb_applmodal);
deletefile(dirname+'/linkdb.ini');
end;
if e.Message='Cannot open database requested in login '+#39+'rsglxt'+#39+'. Login fails' then
application.MessageBox('数据库没有建立,登录数据库失败!'+#13+'请建立数据库!','登录数据库错误',mb_ok+mb_iconstop+mb_applmodal);
if e.Message='Login failed for user '+#39+uname+#39 then
begin
application.MessageBox('用户名或密码错误,登录数据库失败!'+#13+'请重新输入用户名或密码!','登录数据库错误',mb_ok+mb_iconstop+mb_applmodal);
deletefile(dirname+'/linkdb.ini');
end;
if e.Message='Login failed for user '+#39+'Administrator'+#39 then
begin
application.MessageBox('数据库机器名、用户名不能为空!'+#13+'请输入正确的数据库机器名、用户名或密码!','登录数据库错误',mb_ok+mb_iconstop+mb_applmodal);
deletefile(dirname+'/linkdb.ini');
end;
end;
end;
end;
 
单机版用什么SQL服务器,
ADO+AccessDB足够了,而且以后换成支持数据库也特别简单
 
后退
顶部