这个东西不怎么明白嘛.

paranoia190 2006-12-04 04:39:05
有a.dll,b.dll
a.dll
function GetData : olevariant;
begin
adoquery.select....select code,name from tableA
DataSetProvider.dataset = adoquery
result := DataSetProvider.data;
end

b.dll
function GetAData : olevariant;
begin
result = getdata
end


测试 a.dll 通过
clientdataSet.Data := getData
while not clientdataSet.Eof do
begin
Memo1.Lines.Add(clientdataSet.Fields[0].asstring);
clientdataSet.Next;
end;

测试 b.dll 失败 提示 无效的包
clientdataSet.Data := getAData
while not clientdataSet.Eof do
begin
Memo1.Lines.Add(clientdataSet.Fields[0].asstring);
clientdataSet.Next;
end;


...全文
114 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
paranoia190 2006-12-05
  • 打赏
  • 举报
回复
真搞不明白,有时候一个错误要查很长时间却怎么也查不到,有时候一看就知道哪错了....哎.
paranoia190 2006-12-05
  • 打赏
  • 举报
回复
算了.解决了.发现错误了..想去撞墙了..非常简单的错误....
靠..果然老了.
paranoia190 2006-12-05
  • 打赏
  • 举报
回复
这样说吧.
EXE通过B.DLL的getBbata来获取查询结果
而B.DLL的getBbata方法是通过.DLL的getAdata方法来执行SQL SELECT CODE,NAME FROM TABLEA
的,呵呵.
现在发现EXE直接调用A.DLL的getAdata可以正确返回结果
而B.DLL却有错误.跟踪了以下.发现是A.DLL中adoquery.open有错误.不知道为什么了.
dabaicai 2006-12-05
  • 打赏
  • 举报
回复
不会是第二个少了冒号吧 :=
dabaicai 2006-12-05
  • 打赏
  • 举报
回复
想说什么??
paranoia190 2006-12-05
  • 打赏
  • 举报
回复
我顶一下呢

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧