database控件问题:真头痛!请各位大虾帮忙了! 绝对是数据库的问题,你只要一个数据库程序,还有其query控件的databasename属性,要设成database控件的别名(Alias),并且要确保database的connect为True这就够了,还有什么问题可以给我来信,试一试? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以创建一个数据模块,将所要用到的数据控件放到上边,然后通过调用数据模块来对数据库进行操作,一个应用程序一个database就可以了,不同窗体中共用一个database没有问题 可以这么看:TDatabase控件用于在程序中动态生成BDE别名的,一个TDatabase控件可以生成一个BDE别名。如果在你的应用程序中只需要访问一个数据库,一个TDatabase控件足矣。这个TDatabase控件可以放在你的主Form中、数据模板中,就是要保证在你的TQuery控件在使用这个别名之前,它已经存在了!你也可以在你的程序一开始,完全用代码的形式去建立这个TDatabase的对象,并保证这个对象在你的程序访问数据时总是存在的。 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;}//--------------------------------------------------------------------------- 请教个问题,如何在dephi中,不需要直接执行存储过程,就能读取存储过程有哪些列? 如何用delphi使学生管理系统实现上传文件和显示文件的功能?急! 相找些针对条码扫描器编程的资料,哪位提供点 求个表格控件做财务的赁证的,就是金额的时候是个十百千万一个格子一个格子输的。 DBGridEh中字段输入问题 关于时间计算的问题 自定义公用函数应在哪里声明??帮帮忙!! 简单的窗体登陆问题! 300分 字符串处理!!! 关于TQuery 的问题 菜菜问题来了,请指出我下面代码有什么错误呀,在不同事件中运行,有的出错,有的没有,我快晕了!
来对数据库进行操作,一个应用程序一个database就可以了,不同窗体中共用一个
database没有问题
如果是说我,想必你去试过了,要不就是你更明白。:)下面是我自己实际用的代码,和我上面说的不太一样,也做了删改,但关键都在,供各位参考。
注意,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;
}//---------------------------------------------------------------------------