如何用ADO连接远程服务器上的SQL2000数据库。

时间:2022-01-28 05:51:36
本人想知道在DELPHI中怎样在客户端通过IP地址访问到服务器中的SQL2000数据库的内容!!!!!!!请给出用ODBC和ADO两种连接的代码和具体做法。

12 个解决方案

#1


1、新建工程,在ADO组件中选ADOConnection,添加到Form
2、在Form中添加一按钮。为其添加OnClick事件
3、在OnClick中加入测试数据库连接的代码。

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

#2


1、新建工程,在ADO组件中选ADOConnection,添加到Form
2、在Form中添加一按钮。为其添加OnClick事件
3、在OnClick中加入测试数据库连接的代码。

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

BDE连接方式就不要考虑了吧。
如果实在想要的话就在BDE Administrator中建立一个SQL别名,服务器中填入远程SQL服务器IP。

#3


怎么连本地的,就怎么连远程的,最好用ip地址连接

#4


ip地址连接是不是这样???????
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;server=ipaddress;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

#5


是的,把你的ipaddress换成IP地址就可以了。

#6


用ODBC和ADO两种连接都是这样吗??????????
如果都是一样的话,那么在写程序的时候他们有什么区别啊?????
请高手指点!!!!!!!!!!!!!!!!!!

#7


错误如果远程的服务器前有防火墙你们这些办法都行不通!

#8


那应该怎样呢???????请高手指点啊!!!!!!!!!!

#9


指点,please!

#10


用odbc的话,先在控制面版-》管理工具-》odbc添加数据源,只要你在这里测试连接数据库成功,在delphi环境下就可以连接数据库,在Tdatabase的AliasName属性可以找到你添加的数据源,然后你再在Tdatabase的DatabaseName输入一个名字,这个名字就可以用在table,query等控件的databasename属性。。。。。这样只要你的Tdatabase能连接数据库,table,query就可以访问数据库了。。。。

为了连接不用输入用户名和密码,可以参考以下代码:
with Database1 do
  begin
    AliasName:='aaa';//odbc数据源名称
    DatabaseName:='aaabase';//自己随便起个名字
    LoginPrompt:=False;
    Params.Clear;
    Params.add('USER NAME=用户名');
    Params.add('PASSWORD=密码');
  end;
  try
     Database1.Open;
  except
     raise Exception.Create('不能数据库连接');
  end;

#11


数据库端有防火墙该怎么办?

#12


ado:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=数据库名称;Data Source=数据库所在计算名称

BDE:
DATABASE NAME=数据库名称
SERVER NAME=S数据库所在计算名称
USER NAME=登陆数据库用户
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=300
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=
APPLICATION NAME=
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32
PASSWORD=密码 (可以为空)

#1


1、新建工程,在ADO组件中选ADOConnection,添加到Form
2、在Form中添加一按钮。为其添加OnClick事件
3、在OnClick中加入测试数据库连接的代码。

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

#2


1、新建工程,在ADO组件中选ADOConnection,添加到Form
2、在Form中添加一按钮。为其添加OnClick事件
3、在OnClick中加入测试数据库连接的代码。

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

BDE连接方式就不要考虑了吧。
如果实在想要的话就在BDE Administrator中建立一个SQL别名,服务器中填入远程SQL服务器IP。

#3


怎么连本地的,就怎么连远程的,最好用ip地址连接

#4


ip地址连接是不是这样???????
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Adoconnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;server=ipaddress;User ID=sa;Initial Catalog=Uniplus;Data Source=ERP';
   Adoconnection1.Connected := true ;
   if (Adoconnection1.Connected) then ShowMessage('Connect OK!');
end;

#5


是的,把你的ipaddress换成IP地址就可以了。

#6


用ODBC和ADO两种连接都是这样吗??????????
如果都是一样的话,那么在写程序的时候他们有什么区别啊?????
请高手指点!!!!!!!!!!!!!!!!!!

#7


错误如果远程的服务器前有防火墙你们这些办法都行不通!

#8


那应该怎样呢???????请高手指点啊!!!!!!!!!!

#9


指点,please!

#10


用odbc的话,先在控制面版-》管理工具-》odbc添加数据源,只要你在这里测试连接数据库成功,在delphi环境下就可以连接数据库,在Tdatabase的AliasName属性可以找到你添加的数据源,然后你再在Tdatabase的DatabaseName输入一个名字,这个名字就可以用在table,query等控件的databasename属性。。。。。这样只要你的Tdatabase能连接数据库,table,query就可以访问数据库了。。。。

为了连接不用输入用户名和密码,可以参考以下代码:
with Database1 do
  begin
    AliasName:='aaa';//odbc数据源名称
    DatabaseName:='aaabase';//自己随便起个名字
    LoginPrompt:=False;
    Params.Clear;
    Params.add('USER NAME=用户名');
    Params.add('PASSWORD=密码');
  end;
  try
     Database1.Open;
  except
     raise Exception.Create('不能数据库连接');
  end;

#11


数据库端有防火墙该怎么办?

#12


ado:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=数据库名称;Data Source=数据库所在计算名称

BDE:
DATABASE NAME=数据库名称
SERVER NAME=S数据库所在计算名称
USER NAME=登陆数据库用户
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=300
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=
APPLICATION NAME=
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32
PASSWORD=密码 (可以为空)