我用BDE连接MS-SQL SERVER 2000后用Database1连接数据库后,想将其中users表中的user字段的内容读到,窗体Login中的ComboBox1的列表中,请各位高人指点。为什么我感觉TDatabase控件连通数据库后什么都做不了,他有什么功能,请各位举例告知。谢谢!!!

解决方案 »

  1.   

    因为数据量较大,用户较多,不知ado的性能如何,是否比bde性能好,能否胜任???
      

  2.   

    当基于bde的数据库应用程序需要下列任何对数据库连续的控制时,可使用TDatabase组件:
    1、保持数据库的连接
    2、用户要求数据库服务及登陆
    3、事务处理控制
    4、应用程序明确的bde别名
    当连接到远程sql数据库服务器上时,该组件对于控制通过bde执行数据库事务处理尤其重要强烈建议用ado连接数据库!
      

  3.   

    BDE是Borland早期的数据库支持,在ADO出现之前,它一直是Borland平台程序员的首选数据库方案,因为它速度比MS的任何数据库支持都快,但是后来,MS出了ADO,而且不但改进,性能不错,(毕竟操作系统是M$的东西,Borland有什么办法),到了BDE5.11,BDE就到了尽头,不再升级,只作一些维护。
    所以,开发数据库,你不得不用ADO,
    但是现在Borland又出了DBExpress,被称为是下一代的数据库支持系统,性能比ADO还强,只是现在支持的数据库好像还不多。
      

  4.   

    因为我是先用了一个只读权限的账号,想用Database连接成功后,然后读数据,判断,再用有权限的账号登录。谢谢!!!
      

  5.   

    1。
    database的最主要功能是在进行数据移植时,才体现出来的.举个例子把:
    如果你原来用的数据库是SQLSERVER的dababase的别名为A,现在你想转化为oracle的,你只要
    database中的名称设置为oracle的ODBC名称就可以实现移植操作了。
    2。
    你要在功用函数中设置一个database的别名变量A,然后在登陆窗体中加入一个query组件,
    在登陆窗体中设置query的datasource属性为A,然后进行查询操作就可以了
      

  6.   

    恩,建议用ado,用adoquery吧。
    有个例子
    procedure TcbSelect.AddItemString(cb:TCombobox;adoq:TADOQuery;str1:string;str2:string);
      var
        str:string;
        i,t:integer;
      begin
        i:=0;
        cb.Items.Clear;
        str:='select distinct '+字段名+' from '+表名;
        with adoq do
        begin
          close;
          sql.clear;
          sql.add(str);
          open;
        end;
        t:=adoq.RecordCount;
        if t>0 then
        begin
          adoq.first;
          while i<=t-1 do
          begin
            cb.items.add(adoq.FieldByName(str1).value);
            i:=i+1;
            adoq.next;
          end;
        end;
      end;
    这个应该可以实现你的要求,我一直在用。