100分求通用查询模块源码~~~~

steven_1983 2007-04-03 03:23:29
100分求通用查询模块源码~~~~要求程序具有较强的移植性,mis 系统的查询反复重新写代码比较费事。qq:101022104 e_mail:zhang_wb@sovo.ccniit.com ,收到马上给分。
...全文
343 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
才子鸣 2007-04-05
  • 打赏
  • 举报
回复
按軟件工程來做!
rgn 2007-04-05
  • 打赏
  • 举报
回复
http://www.tomore.com/down_file.php?id=249
steven_1983 2007-04-05
  • 打赏
  • 举报
回复
呵呵~~~
huangjinyin 2007-04-04
  • 打赏
  • 举报
回复
做一个通用查询框,用时传入表名,字段和字段值
Comer 2007-04-04
  • 打赏
  • 举报
回复
通用???

这不是逼我们下岗嘛
steven_1983 2007-04-04
  • 打赏
  • 举报
回复
还有就是要考虑到多表的关联查询,谢谢
steven_1983 2007-04-04
  • 打赏
  • 举报
回复
谢谢各位,还有其他的意见吗?
qizhi_t 2007-04-04
  • 打赏
  • 举报
回复
呵呵,这个不是很简单的么?
//参数 表名,字段名,字段值,排序方式
//如果字段名为''返回整个表
//sorttype 0生序,1降序,其他无排序
function getdateset(tbname:string;fieldname:string;fieldvalue:string;const sorttype:string='2');
begin
with tadoquery.create(application) do
begin
close;
sql.Clear;
sql.Add('exec getdateset '''+tbname+''','''+fieldname+''','''+fieldvalue+''','+sorttype);
open;
result:=Recordset;
close;
end;
end;

//创建一个存储过程
create proc getdateset
(@tbname varchar(50),
@fieldname varchar(50),
@fieldvalue varchar(50),
@sortType int)
as
declare @nsqlstr nvarchar(2000)
declare @tbid int
set @nsqlstr=''
--首先检测表是否存在
if not exists (select * from sysobjects where name=@tbname and type='u')
return
select @tbid=id from sysobjects where name=@tbname and type='u'
--检测字段是否存在
if not exists (select * from syscolumns where name=@fieldname and id=@tbid)
return
set @nsqlstr='select * from '+@tbname+' where 1=1 '
if (isnull(@fieldname,'')<>'')--如果有字段需要参考
begin
--构造查询语句
set @nsqlstr=@nsqlstr+'and '+@fieldname+'='''+@fieldvalue+''''
--设置是否排序0升序,1降序,其他不需要
set @nsqlstr=@nsqlstr+(case @sortType when 0 then 'order by '+ @fieldname when 1 then 'order by '+ @fieldname+' desc ' else '' end )
end
exec sp_executesql @nsqlstr
return
xiaocai800322 2007-04-04
  • 打赏
  • 举报
回复
界面的东西随着业务的变化、设计的风格、个人喜好等等很难通用起来
xiaocai800322 2007-04-04
  • 打赏
  • 举报
回复
通用查询模块不是那么简单的,其实真正要通用的并不是界面上的东西,需要在adoconnection、adoquery等数据库控件的基础上,对数据库操作业务进行抽象,写成一个相关联的类体系,如果没有现成的东西,而从头开始做,光思路和所需的对mes系统方面的经验就很要命。
个人目前想到的需要解决的问题有:
通用生成常用简单Sql语句的类
简单执行sql和返回数据集结果的类
返回数据库中某字段对应数据连成的字符串的类(用于填充一些下拉列表用)
为了支持上面的类,还可能至少需要字段类、主键类等等
郑重关注高人的代码!!!!!!!!!!
IDWB 2007-04-03
  • 打赏
  • 举报
回复
通用必定影响效率,可以用isnull 和 nullif 来写,不知道是不是你要的

select distinct PJDZB.*,case when CSRQ between :begin_RQ and :end_RQ then cast(1 as bit) else cast(0 as bit) end as KJQJ
from PJDZB join PJDXB on PJDXB.PJDH=PJDZB.PJDH and SPID like isnull(:SPID,SPID)+'%'
where PJDZB.PJDH=isnull(:PJDH,PJDZB.PJDH) and
CSRQ between isnull(:b_RQ,CSRQ) and isnull(:e_RQ,CSRQ) and
PJLB in (isnull(:JH,0),isnull(:KT,0),isnull(:BR,0),isnull(:PY,0),
isnull(:XS,0),isnull(:GT,0),isnull(:BC,0),isnull(:PK,0)) and
KSH=isnull(:KSH,KSH)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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