我要用delphi实现,外界传入三个参数项目名、公司号、流程,然后按照三个表中的内容查询数据库中是否有匹配的数据.如表1中有匹配的就返回true,否则返回false。如果没有匹配的就查表2,同理再没有匹配的就查表3.条件是根据公司号和流程查。每个表中都有公司号和流程这两项。我很着急,而且是刚学习delphi,希望大家多多帮忙,谢谢!!!

解决方案 »

  1.   

    在SQL Server中创建一个函数 getproject()Create Function GetProject(@pro_name varchar(50), @comp_id varchar(50), @flow varchar(50))
    RETURN bit
    AS
    BEGIN
       if exists(select 1 from 表1 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow
                 union select 1 from 表2 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow
                 union select 1 from 表3 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow)
          return 1
       else
          return 0
    END
      

  2.   

    楼上的有错误,修改一下
    Create Function GetProject(@pro_name varchar(50), @comp_id varchar(50), @flow varchar(50))
    RETURNS bit
    AS
    BEGIN
       DECLARE @rtn BIT
       if exists(select 1 from 表1 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow
                 union select 1 from 表2 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow
                 union select 1 from 表3 where 项目名=@pro_name and 公司号 = @comp_id and 流程 = @flow)
          SET @rtn = 1
       else
          SET @rtn = 0
       RETURN @rtn
    END
      

  3.   

    但是我是想用delphi实现,我想要源代码,上面的好像不是delphi程序吧!还请大家多多指教,我的编程功底比较薄,谢谢了!
      

  4.   

    function TForm1.IsExist(PrjName, ComID, Flow: string): Boolean;
    begin
      ADOQuery1.SQL.Text := 'SELECT COUNT(*) FROM ( '
        + 'SELECT PrjName, ComID, Flow FROM table1 UNION ALL '
        + 'SELECT PrjName, ComID, Flow FROM table2 UNION ALL '
        + 'SELECT PrjName, ComID, Flow FROM table3 ) A '
        + 'WHERE PrjName = '''+ PrjName +''' AND ComID = '''+ ComID +''' AND Flow = '''+ Flow +''' ';
      ADOQuery1.Open;
      Result := ADOQuery1.Fields[0].AsInteger > 0;
      ADOQuery1.Close;
    end;