请问,如何连接远程MSSQL(有SA)
希望类似论坛.从一个数据库中的某表进行验证然后访问数据库。
有详细过程加送100分
有范例的加送200分。
----
E-Mail:[email protected]

解决方案 »

  1.   

    使用odbc或者ado不是很容易吗,和本地连接一样啊,只要有固定的ip地址或者主机名就可以了阿
      

  2.   

    如果你是使用IP做为ADO的data source远程连接的时候要注意客户端的默认协议的优先级,
    在SQL Server客户端网络实用工具中,在通用页右册按顺序起用协议的列表中
    将TCP/IP协议上升到第一位就可以了,当然要保证你的服务器端已经启用了TCP/IP协议。还有一点要注意,就是客户端所在服务器上所占用的端口号,因为放火墙容易关闭某些端口
      

  3.   

    //测试服务器连接
    procedure TForm1.BitBtn3Click(Sender: TObject);
    var s:string;
    begin
      db.close;
      adodb.close;
      if (trim(edit1.text)='') and (trim(edit5.text)='') then
      begin
         showmessage('服务器IP和主机名不能同时为空!');
         abort;
      end;
      if trim(edit4.text)='' then
      begin
         showmessage('请输入MSSQL SERVER数据库名!');
         abort;
      end;
      db.Params.Clear;
      db.DriverName:='MSSQL';
      s:='DATABASE NAME='+trim(edit4.text)+#13;
      s:=s+'SERVER NAME='+trim(edit1.text)+#13;
      s:=s+'USER NAME='+trim(edit2.text)+#13;
      s:=s+'OPEN MODE=READ/WRITE'+#13;
      s:=S+'SCHEMA CACHE SIZE=8'+#13;
      s:=S+'BLOB EDIT LOGGING='+#13;
      s:=S+'LANGDRIVER='+#13;
      s:=S+'SQLQRYMODE='+#13;
      s:=S+'SQLPASSTHRU MODE=SHARED AUTOCOMMIT'+#13;
      s:=S+'DATE MODE=0'+#13;
      s:=S+'SCHEMA CACHE TIME=-1'+#13;
      s:=S+'MAX QUERY TIME=300'+#13;
      s:=S+'MAX ROWS=-1'+#13;
      s:=S+'BATCH COUNT=200'+#13;
      s:=S+'ENABLE SCHEMA CACHE=FALSE'+#13;
      s:=S+'SCHEMA CACHE DIR='+#13;
      s:=S+'HOST NAME='+trim(edit5.text)+#13;
      s:=S+'APPLICATION NAME='+#13;
      s:=S+'NATIONAL LANG NAME='+#13;
      s:=S+'ENABLE BCD=FALSE'+#13;
      s:=S+'TDS PACKET SIZE=4096'+#13;
      s:=S+'BLOBS TO CACHE=64'+#13;
      s:=S+'BLOB SIZE=32'+#13;
      s:=s+'PASSWORD='+trim(edit3.text);
      db.Params.text:=s;
      s:='Provider=SQLOLEDB.1;Password=';
      s:=s+edit3.text+';Persist Security Info=True;User ID='+edit2.text+';';
      s:=s+'Initial Catalog='+edit4.text+';Data Source='+edit1.text;
      adodb.ConnectionString:=s;                 //ADO连接方式
      try
        if adochk.Checked then
           adodb.open
        else db.open;
        application.MessageBox('连接数据库成功!','反馈信息',48);
      except
       on e:exception do application.MessageBox(pchar('无法连接数据库!'+#13+#13+e.Message),'错误信息',16);
      end;
      adodb.close;
      db.close;
    end;