起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 248|回复: 19

【结帖】流程查询问题**

[复制链接]
发表于 2007-10-29 14:00:15 | 显示全部楼层 |阅读模式
我通过业务表(如:工程量签证单)关联平台流程任务表,做了几个查询台账功能,如图,其中查询个人和查询部门的都没问题,但是查询单位和全部的就报如图错误(但是其中查询代码是一样的)。这是什么原因?

err.jpg

23.91 KB, 下载次数: 137

回复

使用道具 举报

发表于 2007-10-29 14:02:44 | 显示全部楼层
您的sql是什么?报错不能解析sql
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-29 14:08:07 | 显示全部楼层
begin
    DataSetBrokerfsProcessing.DataSet.Close;
    TSQLDataSet(DataSetBrokerfsProcessing.DataSet).SQLFiltered := False;
    TSQLDataSet(DataSetBrokerfsProcessing.DataSet).SQLFilter := 'ID in ' + lfsProcessingIDStr;
    TSQLDataSet(DataSetBrokerfsProcessing.DataSet).SQLFiltered := True;
    DataSetBrokerfsProcessing.DataSet.Open;
  end
就一个ID过滤条件,我用jsDialogs.showmsg()输出过滤语句,放在SQLSERVER中执行没问题;而且我其他的功能也用了同样的方法,都没问题,就这个有问题
回复 支持 反对

使用道具 举报

发表于 2007-10-29 14:33:19 | 显示全部楼层
lfsProcessingIDStr运行时的值是什么?
回复 支持 反对

使用道具 举报

发表于 2007-10-29 14:36:17 | 显示全部楼层
把这个值显示出来看看语法是否对,TSQLDataSet(DataSetBrokerfsProcessing.DataSet).SQLFilter
贴出来看看

是否跟你在数据库上执行语句一样,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-29 14:49:45 | 显示全部楼层
我输出过TSQLDataSet(DataSetBrokerfsProcessing.DataSet).SQLFilter
这个值,就说Id in ('102')
因为其他功能也有同样得功能,代码也一样,而且也不报错
回复 支持 反对

使用道具 举报

发表于 2007-10-29 14:57:32 | 显示全部楼层
这个跟sql没有关系
好像跟您的表现控件有关
http://bbs.justep.com/forum.php?mod=viewthread&tid=1882
回复 支持 反对

使用道具 举报

发表于 2007-10-29 14:57:53 | 显示全部楼层
楼主,运行过程中把sqltext中show出来看一下,他的值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-29 15:16:19 | 显示全部楼层
按7楼得看了一下,好像不是那个原因;
show出来得就是 ID in (‘102’)

下面得代码也看看吧;如图个人和部门也调用了代码,但是没问题得;对了,还有我们开发部得没问题,远程看了一下现场得,这是现场发现得问题

function TInfoQueryRule.GetIDStrings(AType, AState, ABizURL: string): string;
var
  lIDStr, lID: string;
begin
  lIDStr := '';

  if AType = 'SELF' then
  begin
    with DataSetQueryRule_Self do
    begin
      Close;
      SQLFiltered := False;
      SQLFilter := 'TFLOW.FSTATE = ''' + AState +
                   ''' and TFLOW.FPROCURL = ''' + ABizURL + '''';
      SQLFiltered := True;
      Open;

      First;
      while not Eof do
      begin
        lID := FieldByName['FID'].AsString;
        if lIDStr <> '' then
          lIDStr := lIDStr + ',''' + lID + ''''
        else
          lIDStr := '''' + lID + '''';
        Next;
      end;
      lIDStr := '(' + lIDStr + ')';
    end;
  end
  else
  if AType = 'DEPT' then
  begin
    with DataSetQueryRule_Dept do
    begin
      Close;
      SQLFiltered := False;
      SQLFilter := 'TFLOW.FSTATE = ''' + AState +
                   ''' and TFLOW.FPROCURL = ''' + ABizURL + '''';
      SQLFiltered := True;
      Open;

      First;
      while not Eof do
      begin
        lID := FieldByName['FID'].AsString;
        if lIDStr <> '' then
          lIDStr := lIDStr + ',''' + lID + ''''
        else
          lIDStr := '''' + lID + '''';
        Next;
      end;
      lIDStr := '(' + lIDStr + ')';
    end;
  end
  else
  if AType = 'ORG' then
  begin
    with DataSetQueryRule_Org do
    begin
      Close;
      SQLFiltered := False;
      SQLFilter := 'TFLOW.FSTATE = ''' + AState +
                   ''' and TFLOW.FPROCURL = ''' + ABizURL + '''';
      SQLFiltered := True;
      Open;

      First;
      while not Eof do
      begin
        lID := FieldByName['FID'].AsString;
        if lIDStr <> '' then
          lIDStr := lIDStr + ',''' + lID + ''''
        else
          lIDStr := '''' + lID + '''';
        Next;
      end;
      lIDStr := '(' + lIDStr + ')';
    end;
  end
  else
  if AType = 'ALL' then
  begin
    with DataSetQueryRule_All do
    begin
      Close;
      SQLFiltered := False;
      SQLFilter := 'TFLOW.FSTATE = ''' + AState +
                   ''' and TFLOW.FPROCURL = ''' + ABizURL + '''';
      SQLFiltered := True;
      Open;

      First;
      while not Eof do
      begin
        lID := FieldByName['FID'].AsString;
        if lIDStr <> '' then
          lIDStr := lIDStr + ',''' + lID + ''''
        else
          lIDStr := '''' + lID + '''';
        Next;
      end;
      lIDStr := '(' + lIDStr + ')';
    end;
  end;

  Result := lIDStr;
end;

end.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-29 15:45:08 | 显示全部楼层
DING
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-30 04:13 , Processed in 0.044628 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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