绝对是数据库的问题,你只要一个数据库程序,还有其query控件的databasename属性,要设成database控件的别名(Alias),并且要确保database的connect为True这就够了,还有什么问题可以给我来信,试一试?

解决方案 »

  1.   

    你可以创建一个数据模块,将所要用到的数据控件放到上边,然后通过调用数据模块
    来对数据库进行操作,一个应用程序一个database就可以了,不同窗体中共用一个
    database没有问题
      

  2.   

    可以这么看:TDatabase控件用于在程序中动态生成BDE别名的,一个TDatabase控件可以生成一个BDE别名。如果在你的应用程序中只需要访问一个数据库,一个TDatabase控件足矣。这个TDatabase控件可以放在你的主Form中、数据模板中,就是要保证在你的TQuery控件在使用这个别名之前,它已经存在了!你也可以在你的程序一开始,完全用代码的形式去建立这个TDatabase的对象,并保证这个对象在你的程序访问数据时总是存在的。
      

  3.   

    zswang,是说我在骗人?呵呵
    如果是说我,想必你去试过了,要不就是你更明白。:)下面是我自己实际用的代码,和我上面说的不太一样,也做了删改,但关键都在,供各位参考。
    注意,Database1的属性在可视化时都已经给出了。数据模板的DFM文件不是纯文本,不能贴在这里,不过也无所谓啦。呵呵
    File: Unit_MYDatabase.h
    //----------------------------------------------------------------------------
    #ifndef Unit_MYDatabaseH
    #define Unit_MYDatabaseH
    //----------------------------------------------------------------------------
    #include <vcl\System.hpp>
    #include <vcl\SysUtils.hpp>
    #include <vcl\Windows.hpp>
    #include <vcl\Messages.hpp>
    #include <vcl\Classes.hpp>
    #include <vcl\Graphics.hpp>
    #include <vcl\Controls.hpp>
    #include <vcl\Forms.hpp>
    #include <vcl\Dialogs.hpp>
    #include <vcl\DBTables.hpp>
    #include <vcl\DB.hpp>
    #include <Db.hpp>
    //----------------------------------------------------------------------------
    class TMYDATABASES : public TDataModule
    {
    __published:
            TDatabase *Database1;
    private:
    public:
    virtual __fastcall TMYDATABASES(TComponent* AOwner);
    };
    //----------------------------------------------------------------------------#endif
    ************************************************************
    File: Unit_MYDatabase.Cpp
    //---------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop#include "Unit_MYDatabase.h"
    #include "CHCommCd.h"//---------------------------------------------------------------------
    #pragma resource "*.dfm"
    //---------------------------------------------------------------------
    __fastcall TMYDATABASES::TMYDATABASES(TComponent* AOwner)
    : TDataModule(AOwner)
    {
    }
    //---------------------------------------------------------------------
    ************************************************************
    Functions:TMYDATABASES *CustomerData(NULL);//---------------------------------------------------------------------------
    int __stdcall ConnectCHDB()
    {
        try
        {
            CustomerData->Database1->Connected = true;
        }
        catch ( ... )
        {
            ErrorBox("数据库连接时发生错误!","错误");
            return 1;
        }
        return 0;
    }
    //---------------------------------------------------------------------------int __stdcall CreateCHDB()
    {
       CustomerData= new TMYDATABASES(NULL);/*新的模块窗体*/   if (CustomerData==NULL)
          return 1;
       else
          return 0;
    }//---------------------------------------------------------------------------
    TMYDATABASES *CustomerData(NULL);
    //---------------------------------------------------------------------------
    int __stdcall ConnectMYDB()
    {
        try
        {
            CustomerData->Database1->Connected = true;
        }
        catch ( ... )
        {
            ErrorBox("数据库连接时发生错误!","错误");
            return 1;
        }
        return 0;
    }
    //---------------------------------------------------------------------------int __stdcall CreateMYDB()
    {
       CustomerData= new TMYDATABASES(NULL);/*新的模块窗体*/   if (CustomerData==NULL)
          return 1;
       else
          return 0;
    }//---------------------------------------------------------------------------