function Tdatamoudle.creatpath(const datapath: WideString): HResult;
var dataConnection: TADOConnection;
begin
CoInitialize(nil);
try
dataconnection:=Tadoconnection.Create(nil);
finally
CoUninitialize;
with dataConnection do
begin
Connected:=false;
loginprompt:=false;
ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog='+datapath;
Connected:=true;
end;
end;
end;
我希望将TADOCONNECTION封装在COM里,通过传递的路径进行创建连接,可是在调用时总会报错,请各位大大帮帮忙哦!
var dataConnection: TADOConnection;
begin
CoInitialize(nil);
try
dataconnection:=Tadoconnection.Create(nil);
finally
CoUninitialize;
with dataConnection do
begin
Connected:=false;
loginprompt:=false;
ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog='+datapath;
Connected:=true;
end;
end;
end;
我希望将TADOCONNECTION封装在COM里,通过传递的路径进行创建连接,可是在调用时总会报错,请各位大大帮帮忙哦!
解决方案 »
- 入门问题:请问DELPHI7程序的运行过程是怎样的?(即程序开始到结束的流程是怎样的呢?)谢谢!
- 高人赐教,如何做到点击一个按钮之后,弹出显示一个网页?
- 再线等待。。请问在DELPHI 中如何调用shellexecute命令
- 一个DBGrid的问题
- 出5000元,求开发一个门锁管理系统,半个月左右,delphi开发,哪位有时间,请立即联系
- 怎样创建txt文件,并把一些字符串写到txt文件?
- 游戏中怪物的每一个动作都是一副图片吗?我是新手,多谢指教?
- DBgrid问题。
- 承接 兼职 Delphi 软件开发 修改 维护
- 急:如何编写SQL-DMO程序
- 痛苦!痛苦!在D7中开发好的activeform无法在客户端安装,手工注册regsvr32成功了但也还是出现红色X,以前D6是很容易的手功注册的。
- 线程高手请进,给重分!
干嘛还要再封装一遍?楼主用Import Type Library导入Microsoft ActiveX Data Objects 2.x Library
直接用_Connection就可以了
try
dataconnection:=Tadoconnection.Create(nil);
with dataConnection do
begin
Connected:=false;
loginprompt:=false;
ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog='+datapath;
Connected:=true;
end;
finally
CoUninitialize;
end;
下面还在用dataConnection,你这么快就调用CoUninitialize;肯定会出错。
会自动调用CoInitialize,CoUninitialize
如果没有特殊要求,可以不用手动处理CoInitialize,CoUninitialize
Windows, ActiveX, Classes, ComObj, check_TLB, StdVcl, strutils, SysUtils, DB, ADODB;type
TMyCheck = class(TTypedComObject, IMyCheck)
protected
dataConnection: TADOConnection;
function creatdatapath(const datapath: WideString): HResult; stdcall;
end;function TMyCheck.creatdatapath(const datapath: WideString): HResult;
begin
with dataConnection do
begin
Connected:=false;
loginprompt:=false;
ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog='+datapath;
Connected:=true;
end;
end;我现在将TADOConnection声明在了类里,但是在程序里调用这个函数时,照样还是跳出错误,是否就是说TADOConnection控件不能在COM里封装使用?
我只想将连接的功能放到自己的COM里,为什么这样是不可以的呢?