uses
    DB,   ADODB; procedure TForm1.SpeedButton3Click(Sender: TObject);
Var
  adoquery: tadoquery;
begin
  adoquery:=tadoquery.Create(self);
  with adoquery do
  begin
    try
      ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=server_test;Data Source=database_test';
      //数据库服务器为server_test,数据库为database_test,登陆用户名为sa,密码为空
      SQL.Clear;
      SQL.Add('select * from table_test where a <> 0');
      Active:=true;
      showmessage(FieldByName('a').AsString);
    finally
      Free;
    end;
  end;
end;——ConnectionString := ……这一行总是不对???

解决方案 »

  1.   

    o哦,我给的代码是用tadoquery的,数据库那一行该怎么写?
    TQuery的连接呢?该怎么写?
      

  2.   

    我知道通过手动设置:先在Bde中建立Sql Server的数据库别名aaa   
      TDatabase   Name             Database1  
                  AliasName        aaa 
                  DatabaseName     任意设置一个数据库名   
                  LoginPrompt      False   
                  Params           username=用户名     password=密码   
                  Connected        true       
      TQuery      DatabaseName     和Tatabase的DatabaseName属性一致   
                  Sql              放入Sql语句   
                  Active           True   
    ——我给出的代码中的那一行就是完成类似工作的,但是代码该如何实现呢?谢谢!!!
      

  3.   

    数据库那一行可以在控件里面去点,它会自动生成的~根据你选择的再复制过来就行了query可以在里面设置数据库名和表名吧
      

  4.   

    ——谢谢◎!!!!
    ——用TQuery连接sql server时,用户、密码是怎么用代码设置的呢?
      temp_Database := TDatabase.Create(self);
      with temp_Database do
      begin
        AliasName := 'test';
        DatabaseName := 'fundrun';
        LoginPrompt := false;
        //Database1.Params  //username=用户名,password=密码????
        Connected := true;
      end;
      Query1.Active := false;
      Query1.DatabaseName := temp_Database.DatabaseName;
      Query1.Active := true;
      

  5.   

    Params.Values['USER NAME']:=userid;
    Params.Values['PASSWORD']:=password;
      

  6.   

    用ado吧,用bde是因为delphi5版本中的ado bug太多,现在已经没有什么问题了,bde太麻烦了
      

  7.   

    ——谢谢你,hongqi162(失踪的月亮)
    ——我改成了这样,运行时还是报错,无效的用户名、密码;怎么回事呢?谢谢:
      temp_Database := TDatabase.Create(self);
      with temp_Database do
      begin
        AliasName := 'test';
        DatabaseName := 'fundrun';
        LoginPrompt := false;
        Params.Values['USER NAME']:= 'sa';
        Params.Values['PASSWORD']:= ''; //密码为空
        Connected := true;
      end;  Query1.Active := false;
      Query1.DatabaseName := temp_Database.DatabaseName;
      Query1.Active := true;
      temp_Database.Free;
      

  8.   

    报错大概是说,没有与新人的连接相关联;
    是否还要指定server name之类的?
      

  9.   

    我用代码生成的TDatabase做连接,就一定要指定别名吗?下面这样还是不行?
    ——我用TDatabase控件配置过的,只要指定好别名(在BDE里设好的)等就可以了;
    ——但是用代码实现该怎么办呢?不要手动去BDE里设置什么数据库别名 
      temp_Database := TDatabase.Create(self);
      with temp_Database do
      begin
        Params.Values['ServerName'] := 'server_test';//sql server服务器
        Params.Values['DATABASE NAME'] :='fundrun';//连接的默认数据库
        Params.Values['USER NAME'] :='sa';
        Params.Values['PASSWORD'] := '';
        DriverName := 'MSSQL';
        KeepConnection := True;
        TransIsolation := tiDirtyRead;
        DataBaseName := 'fundrun';//那这个DataBaseName又是什么呢???
        LoginPrompt := False;
      end;  Query1.Active := false;
      Query1.DatabaseName := temp_Database.DatabaseName;
      Query1.Active := true;
      temp_Database.Free;
      

  10.   

    var    
      temp_Database:tdatabase;
      query:tquery;
      datasource:tdatasource;
    begin
      temp_Database:=tdatabase.Create(nil);
      with temp_Database do
      begin
        Connected:=false;
        Params.Clear;
        Params.Values['user name']:='sa';
        params.Values['password']:='';
        LoginPrompt:=false;
        databasename:='fundrun';
      end;
      try
        temp_Database.Connected:=true;
        query1.active:=false;
        query1.DatabaseName:='fundrun';
        query1.active:=True;
        //
      except
        //
      end;
    end;
      

  11.   

    ——问题已经解决,注销掉这一句:DriverName := 'MSSQL';
    ——DriverName 跟KeepConnection := True;不能同时指定。
      

  12.   

    hongqi162(失踪的月亮) ( ) 信誉:105 
    ——不指定'ServerName'都能行?