起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 153|回复: 9

【结贴】[请求]modellib?**

[复制链接]
发表于 2008-7-23 16:40:47 | 显示全部楼层 |阅读模式
报这个错是怎么回事啊?
启动功能时报错

1.jpg

16.31 KB, 下载次数: 96

回复

使用道具 举报

发表于 2008-7-23 16:48:48 | 显示全部楼层
楼主,看看错误停在哪里?
把调用栈也提供一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-23 16:56:04 | 显示全部楼层
调用栈:
TCodeRelevancyDefStorage:: LoadCodeRelevancyDef
TCodeCreator:: DoInit
TCodeCreator:: ReInit
TCodeCreator:: .ctor
TCodeServiceFunc:: DoCreateCodeCreator
TBizModuleCreateMsgHandle:: DoCreateCodeCreator
TBizModuleCreateMsgHandle:: DoExecute
TFuncManager:: InternalRunFunc
TFuncManager:: RunFunc
TFuncManager:: RunFunc
TSTANDARDSTYLEMAINFORM:: UIRunFunc
TFuncManager:: RunFunc
TOperatorFuncTreeView:: Click
TOperatorFuncTreeView:: WndProc

代码:文号资源集1818行开始
static procedure TCodeRelevancyDefStorage.LoadCodeRelevancyDef(AOwner: TComponent;
                                          ACodeDefList: TCodeDefList;
                                          ACodeRelevancyDefList: TCodeRelevancyDefList;
                                          AInfoURL,AFuncURL: string);
var
  lQuery: TSQLDataset;
  lCodeDefIDs: TStrings;
  lCodeRelevancyDef: TCodeRelevancyDef;
const
  cSQL1 = 'select * from %s where (FFuncURL isNull or FFuncURL=''%s'') and FInfoURL=''%s''';
  cSQL2 = 'select * from %s where FInfoURL=''%s''';
begin
  if not Assigned(ACodeRelevancyDefList) or (AInfoURL='') then exit;
  lQuery := TSQLDataset.Create(AOwner);
  lCodeDefIDs := TStringList.Create;
  try
    lQuery.Database.URL := TDBProcedureLib.OperationDBConnectionURL;
    if AFuncURL='' then
      lQuery.SQL.Text := SysUtils.Format(cSQL2,[GetCodeRelevancyDefTabName, SysUtils.AnsiUpperCase(AInfoURL)])
    else
      lQuery.SQL.Text := SysUtils.Format(cSQL1,[GetCodeRelevancyDefTabName, SysUtils.AnsiUpperCase(AFuncURL), SysUtils.AnsiUpperCase(AInfoURL)]);
    lQuery.Open; //执行到这里报错
    while not lQuery.Eof do
    begin
      lCodeDefIDs.Add(lQuery.FieldByName('FCodeGUID').AsString);
      lQuery.Next;
    end;
    TCodeDefStorage.LoadCodeDefs(AOwner, ACodeDefList, lCodeDefIDs);
    lQuery.First;
    while not lQuery.Eof do
    begin
      lCodeRelevancyDef := ACodeRelevancyDefList.AddCodeRelevancyDef;
      LoadCodeRelevancyDefByDataset(lCodeRelevancyDef, ACodeDefList, lQuery);
      lQuery.Next;
    end;
    lQuery.Close;
  finally
    lCodeDefIDs.Free;
    lQuery.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2008-7-24 08:35:40 | 显示全部楼层
楼主,设置断点跟踪一下,
1、把 lQuery.Database.URL  和  lQuery.SQL.Text    这两个值帖出来看看
2、用 lQuery.ConnectionString  和  lQuery.CommandText  来代替上面两个方法试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-24 08:47:07 | 显示全部楼层
lQuery.Database.URL:
Biz:\COLLABORATION\Collaboration.Database

lQuery.SQL.Text:
select * from TGENERALCODERELEVANCYDEF where FInfoURL='FILE:\F:\PROGRAM FILES\JUSTEP\X3 DEVELOPER\LIB\MODELLIB'

第2条  是说把lQuery.Database.URL替换成 lQuery.ConnectionString ,lQuery.SQL.Text替换成lQuery.CommandText吗?
回复 支持 反对

使用道具 举报

发表于 2008-7-24 08:49:33 | 显示全部楼层
楼主,1、先检查一下报错的目录中modellib.dll文件是否还在?
2、还在的话,将用到的资源都编译一下,试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-24 08:57:11 | 显示全部楼层
这个路径指示的是我本地的modellib.dll,这个还在
回复 支持 反对

使用道具 举报

发表于 2008-7-24 08:59:47 | 显示全部楼层
第2条  是说把lQuery.Database.URL替换成 lQuery.ConnectionString ,lQuery.SQL.Text替换成lQuery.CommandText吗?

例如
lQuery.ConnectionString:='DATABASEURL=Biz:\XXX\XXX.Database';
lQuery.CommandText := 'select * from  XXXX  where sl =10';
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-24 09:03:41 | 显示全部楼层
按照版主第2条,全部编译一次就OK了。谢谢
回复 支持 反对

使用道具 举报

发表于 2008-7-24 09:04:54 | 显示全部楼层
OK,那结贴了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 12:50 , Processed in 0.066896 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表