在一单元中定义Database为什么编译没问题,运行时却总报错?大家请看看!在线等!
我在Unit2.h文件中是这样定义的:
#ifndef Unit2H
#define Unit2H
#include <DB.hpp>
#include <DBTables.hpp>
//---------------------------------------------------------------------------
class abc
{
private:
public:
TDatabase *Database;
TQuery *Query;
abc();
void __fastcall smg();
}xyz;
#endif
然后在Unit2.cpp文件中初始化Database:
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)
abc::abc()
{
//Database = new TDatabase();
Database->AliasName = "2102005";
Database->DatabaseName = "aaa";
Database->LoginPrompt = false;
Database->Connected = true;
Query->DatabaseName = "aaa";
}
void __fastcall abc::smg()
{
}
然后我在一窗口中包含该单元后调用:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
xyz.smg();
}
运行到构造函数中:
Database->AliasName = "2102005";语句出错!
报的好象是地址错,一长串,看不懂!我猜是否要初始化Database,可
Database = new TDatabase(this);却行不通.
哪位遇到过该情况的请指教一二,谢谢!在线等!
#ifndef Unit2H
#define Unit2H
#include <DB.hpp>
#include <DBTables.hpp>
//---------------------------------------------------------------------------
class abc
{
private:
public:
TDatabase *Database;
TQuery *Query;
abc();
void __fastcall smg();
}xyz;
#endif
然后在Unit2.cpp文件中初始化Database:
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)
abc::abc()
{
//Database = new TDatabase();
Database->AliasName = "2102005";
Database->DatabaseName = "aaa";
Database->LoginPrompt = false;
Database->Connected = true;
Query->DatabaseName = "aaa";
}
void __fastcall abc::smg()
{
}
然后我在一窗口中包含该单元后调用:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
xyz.smg();
}
运行到构造函数中:
Database->AliasName = "2102005";语句出错!
报的好象是地址错,一长串,看不懂!我猜是否要初始化Database,可
Database = new TDatabase(this);却行不通.
哪位遇到过该情况的请指教一二,谢谢!在线等!
...全文
相关推荐
kettle执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn't be found!
java代码执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn't be found! 解决:kettle-core-7.1.0.0
Navicat导入sql报错[Err] 1046 – No database selected
Navicat导入sql报错[Err] 1046 – No database selected今天系统重装了,就很完蛋。所有东西都重新下载安装。向Navicat导入sql的时候导入失败:报错[Err
数据库oracle rac 修改db_unique_name参数
关库后再启库报错在修改 db_unique_name 参数后,我们需要重新启动数据库。但是,在启动数据库时,我们可能会遇到 ORA-00600 错误。
Eclipse导入web项目(报错问题解决包含数据库的详细介绍)
通过这些步骤,你应该能够成功导入并运行Web项目。如果在过程中遇到其他问题,建议查阅相关文档或在线资源,以便找到解决方案。
解决springboot 连接 mysql 时报错 using password: NO的方案
执行 DML 脚本的数据库的用户名(如果不同)和密码(如果不同)。问题在于,什么叫 "执行 DML 脚本的数据库的用户名"?它和 "数据库的登录用户名" 之间有什么区别?这两者之间有什么关系?


