unit UnitRWData;interface
uses
SysUtils,Classes,DB, ADODB;
type
TRWData = class(TObject)
public
str1:string;
qryTmp:TADOQuery;
dsTmp:TDataSource;
//constructor Create(st:string);override;
//destructor destroy();override;
function Init(connDatabase:TADOConnection):string;
end;
implementationuses UnitDatamodule;
{
constructor TRWData.Create();
begin
end;
}
{
destructor TRWData.destroy();
begin
end;
}
function TRWData.Init(connDatabase:TADOConnection):string;
var strErrMsg:string;
begin
strErrMsg:='';
try
qryTmp:=TADOQuery.Create(nil);
dsTmp:=TDataSource.Create(nil);
qryTmp.Connection:=connDatabase;
dsTmp.DataSet:=qryTmp;
qryTmp.SQL.Clear;
qryTmp.SQL.Text:='select * from sysinfo';
qryTmp.Open();
except
on e:Exception do
strErrMsg:='初始化出错, 错误代码为:'+e.Message;
end;
Result:=strErrMsg;
end;
end.
我自定义的类代码如上,目的想封装TADOQuery和TDataSource类,在构造对象或者初始化时连接数据,这样的话,我就无需担心在Datamodule里在相同的时间使用相同的TADOQuery和TDataSource,并且我可以扩展这个类的函数,比喻funExcSQL(strSQL:string):boolean,通过这个函数就可以提交要查询或者要修改的SQL语句,在这个函数里我做好异常处理,这样岂不是很方便?
但是问题出现在
『qryTmp:=TADOQuery.Create(nil);
dsTmp:=TDataSource.Create(nil);
qryTmp.Connection:=connDatabase;』这段代码,运行的时候老是提示地址访问错误,坦白讲我不太了解Object pascal语言。当然如果在TRWData.Init函数底下用VAR 定义好qryTmp,dsTmp,然后再调用它的CREATE函数,就不会出问题,但是这不是我想要的。请问各为高手如何解决这个问题。
uses
SysUtils,Classes,DB, ADODB;
type
TRWData = class(TObject)
public
str1:string;
qryTmp:TADOQuery;
dsTmp:TDataSource;
//constructor Create(st:string);override;
//destructor destroy();override;
function Init(connDatabase:TADOConnection):string;
end;
implementationuses UnitDatamodule;
{
constructor TRWData.Create();
begin
end;
}
{
destructor TRWData.destroy();
begin
end;
}
function TRWData.Init(connDatabase:TADOConnection):string;
var strErrMsg:string;
begin
strErrMsg:='';
try
qryTmp:=TADOQuery.Create(nil);
dsTmp:=TDataSource.Create(nil);
qryTmp.Connection:=connDatabase;
dsTmp.DataSet:=qryTmp;
qryTmp.SQL.Clear;
qryTmp.SQL.Text:='select * from sysinfo';
qryTmp.Open();
except
on e:Exception do
strErrMsg:='初始化出错, 错误代码为:'+e.Message;
end;
Result:=strErrMsg;
end;
end.
我自定义的类代码如上,目的想封装TADOQuery和TDataSource类,在构造对象或者初始化时连接数据,这样的话,我就无需担心在Datamodule里在相同的时间使用相同的TADOQuery和TDataSource,并且我可以扩展这个类的函数,比喻funExcSQL(strSQL:string):boolean,通过这个函数就可以提交要查询或者要修改的SQL语句,在这个函数里我做好异常处理,这样岂不是很方便?
但是问题出现在
『qryTmp:=TADOQuery.Create(nil);
dsTmp:=TDataSource.Create(nil);
qryTmp.Connection:=connDatabase;』这段代码,运行的时候老是提示地址访问错误,坦白讲我不太了解Object pascal语言。当然如果在TRWData.Init函数底下用VAR 定义好qryTmp,dsTmp,然后再调用它的CREATE函数,就不会出问题,但是这不是我想要的。请问各为高手如何解决这个问题。
解决方案 »
- 遍历文件夹及子文件夹重复输出结果的问题
- 100分:用data pump 从Access数据库向其它数据库转换数据,转换之后字段非空属性和索引都到哪里去了?如何解决?
- 关于巷道标注的问题, 做过GIS的朋友请进
- 请问判断一个字符串是否为一个路径的函数和判断文件夹是否存在的函数是什么?
- 库存信息表是放在物料信息表中还是单独建一新表好?
- 回车代替tab的小问题!
- 一個簡單的問題,高手請進!!!!.
- 我想打开filelistbox1中所选中的文件,该怎么做
- 这个问题困扰了我1个多月,是高手就帮我看看,谢谢!
- 为何不能打开项目文件或不能运行程序?(非常奇怪的一个问题)
- 只选择时间,用DateTimePicker控件可以吗?另外,为什么时间是17:00,显示的却是5:00呢?
- 如何获取服务器时间
我想问在使用我定义的这个类之前,能不能不create,并且我想重载TObject类的create构造函数,并且顺便在里面就初始化TADOQuery和TDataSource类的变量。楼上能不能帮我改改这个类,让它比较符合Object pascal的风格和规范,包括释构函数。最好是怎样调用都帮我写出来,小弟不禁感激
你这样建类,调用的话,都得手动程序创建的啊!