我在一个mianform中添加了一个PageControl,一个adoTable,再在其中新加了三个TabSheet控件,现在的问题是怎么在三个页面中连接不同的数据库?在TabSheet的mousedown事件中对adoTable中的tablename属性来修改到不同的数据库表名吗?还有其他办法没?
谢谢。

解决方案 »

  1.   

    要在不同的页面连接不同的数据库,可以使用三个ADOConnection控件,或者是使用一个ADOConnection在不同页面切换时更改其连接字符串。
    修改TableName属性,只能连接同一个数据库中不同的数据表,而不是不同的数据库。
      

  2.   


    其实我就是连接同一个数据库的不同表
    delphi是这个学期的选修课
    所以很多都不熟悉
    我想在点击进入tabsheet5的时候修改连接
    procedure Tmainform.TabSheet5Show(Sender: TObject);
    var
     student:string;
    begin
    ADOTable1.TableName:= student;
    end;
    可是提示是错误的,为什么?我已经连好了数据库,student是其中的一个表。
      

  3.   

    Projece books.exe raised exception class EDatabaseError with message'ADOTable:cannot perform this operation on an open dataset',process stopped.use step or run to continue'
      

  4.   

    你没有给局变量Student赋值呀!
    另外在改变TableName之前要关闭
    ADOTable1.Active := False;
    ADOTable1.TableName := 'Student';
    ADOTable1.Active := True;
      

  5.   


    恩,谢谢
    那个问题解决了
    现在的问题是还没达到我要的目的
    比如
    procedure Tmainform.TabSheet5Show(Sender: TObject);
    begin
    ADOTable1.Active := False;
    ADOTable1.TableName := 'student';
    ADOTable1.Active := True;
    end;
    procedure Tmainform.TabSheet1Show(Sender: TObject);
    begin
    ADOTable1.Active := False;
    ADOTable1.TableName := 'book';
    ADOTable1.Active := True;
    end;
    我想在点tabsheet5的时候连接student表
    在点tabsheet1的时候连接book表提示错误:
    [Error] Unit1.pas(50): Undeclared identifier: 'TabSheet1Show'
    [Error] Unit1.pas(50): ';' expected but '(' found
    [Error] Unit1.pas(52): Undeclared identifier: 'ADOTable1'
    [Error] Unit1.pas(53): Missing operator or semicolon
    [Error] Unit1.pas(54): Missing operator or semicolon
    [Fatal Error] books.dpr(5): Could not compile used unit 'Unit1.pas'并不是我不想专研delphi
    实在是选修课,现在期末做数据库设计,开发语言我就选择了delphi
    可是实在太多不懂,回头再做又比较难
    所以请你们帮帮我,谢谢
      

  6.   

    解决了
    谢谢chris_mao 的提示
    结贴
      

  7.   

    可以将你的代码简化一下,在PageControlChange事件中处理
    procedure TForm1.PageControl1Change(Sender: TObject);
    const
      TableArray: array [0..1] of string = ('student', 'book');
    begin
      ADOTable1.Active := False;
      ADOTable1.TableName := TableArray[TPageControl(Sender).ActivePageIndex];
      ADOTable1.Active := True;
    end;