whilechina
39074
|
2009/11/20 17:03:57 |
多少年之后的现在,看看以前你们发表的言论,感觉你们当时是那么的幼稚,心智不成熟的表现。 |
tellgkkg
19790
|
2005/12/6 21:14:12 |
呵呵,无论怎么说,在这边都学了不少东西,大家一起讨论技术,有问题可以一起研究,不过不要伤了和气,呵呵! |
samool
18268
|
2005/10/7 12:28:00 |
nihaoqiang 说的好:只要发贴都是好同志! 大家相互学习,呵呵,有问题大家可以讨论嘛。 最主要不要伤了和气了。 |
yeeler
17891
|
2005/9/16 13:48:56 |
本人言辞过激 一时气愤 还请原谅 发出的评论无法删除. |
yeeler
17768
|
2005/9/12 16:22:36 |
to 各位 本人是初学者,endo的StringGrid示例给我帮助很大,非常感谢他的帮助。delphi盒子本身就是delphi新手成长,高手交流的地方。而“开黄枪”“所谓的”那种攻击性的言辞令人愤慨!如果您觉得endo的代码漏洞百出,你可以上传自己的代码,让大家来评说。 这种水落石出的演说还是少点为妙。 最后送楼上的mjian320一句歇后语: 断了腿的蛤蟆-光会叫不会动 |
ajian320
16896
|
2005/8/10 9:26:38 |
"endo",看来你只是不过是Delphi才入门而已呀,但从你的发言来看,你又真的不会,不懂 Delphi,对SQL也只是闻其声而已,故你老是在开黄枪,那只是你所谓的"执行效率"吧!!!!! |
conch
16869
|
2005/8/8 14:28:30 |
这种方法是太笨。如果用过ADO的话(不是Dephi的TADO×××控件)有空看看ADOQ×××.Recordset的属性,你会有其它方法的。 |
endo
16860
|
2005/8/8 9:57:44 |
此问题到此为止吧? 大家都不要把时间花在这里了! 毕竟是学习的地方!:) |
nihaoqiang
16846
|
2005/8/6 15:36:02 |
不过还是要支持一下,只要发贴都是好同志! |
nihaoqiang
16845
|
2005/8/6 15:34:53 |
这个就不要称为“xx技术”了吧,就是SQL语句的用法嘛。 |
yunyesyes
16833
|
2005/8/5 15:19:18 |
程序是拿来用的,不管如何,觉得自己实用就好。 |
yunyesyes
16832
|
2005/8/5 15:17:56 |
获取指定页的数据 CREATE PROCEDURE pagination3 @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)=', -- 排序的字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @doCount bit = 0, -- 返回记录总数, 非 0 值则返回 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 @strWhere varchar(1500) = ' -- 查询条件 (注意: 不要加 where) AS declare @strSQL varchar(5000) -- 主语句 declare @strTmp varchar(110) -- 临时变量 declare @strOrder varchar(400) -- 排序类型 if @doCount != 0 begin if @strWhere !=' set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere else set @strSQL = "select count(*) as Total from [" + @tblName + "]" end --以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况 else begin if @OrderType != 0 begin set @strTmp = "<(select min" set @strOrder = " order by [" + @fldName +"] desc" --如果@OrderType不是0,就执行降序,这句很重要! end else begin set @strTmp = ">(select max" set @strOrder = " order by [" + @fldName +"] asc" end if @PageIndex = 1 begin if @strWhere != ' set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where " + @strWhere + " " + @strOrder else set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["+ @tblName + "] "+ @strOrder --如果是第一页就执行以上代码,这样会加快执行速度 end else begin --以下代码赋予了@strSQL以真正执行的SQL代码 set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"+ @strOrder if @strWhere != ' set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "] where " + @strWhere + " " + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder end end exec (@strSQL) GO |
endo
16830
|
2005/8/5 14:29:09 |
To ajian320: 跟你谈谈什么叫SQL的执行效率!!! 按照你的方法: 1、不用感知控件显示数据情况下: 取上限执行一次SQL!取下限执行一次SQL!取数据执行一次SQL! 总共执行3次SQL,而我只要一次! 执行效率是你的3倍(不考虑执行时间差)!!! 2、用感知控件显示数据情况下: 执行效率同情况1! 最严重的问题:你必须先取数据才能取上下限!感知控件的数据是跟着SQL语句执行而变化的!这时你就要另外添加一个数据集来取上下限了!加大程序体积,加重服务器的负担!
3、你的这种“笨”方法我以前也试过,真的是够TMD的“笨”的! 而且你去试试,看看上下限好不好控制??? 等你写出程序的时候再说吧!不要老是说空话!!!!!!
不考虑这些问题的程序员是当不了一个好的程序员的!
我虽然很笨,但我也懂得什么叫做执行效率! 我一个应用程序,调用几十张表,只用一个数据集!
我不敢说我SQL很厉害!但也写过几个存储过程、触发器!
还有,我一直认为我很笨!真的很笨!很笨!但我之下,必有其人啊! |
ajian320
16828
|
2005/8/5 13:19:08 |
看来你对SQL一点都不熟,还敢在这里大叫大闹,“如何控制上限和下限???”这也太简单不过呀,你为什么不去想一下呢,其实原理都和你原理差不多,只不过你把“如何控制上限和下限???”放到程序中用了非常“笨”的方法去实现,而在SQL中只需在where语句后处理就行了呀!哎!真丢人呀!! |
endo
16762
|
2005/8/3 13:32:22 |
To ajian320: 代码我写的我当然明白! 【你说你用SQL语句就可以完了的!】 我想知道你只用SQL语句如何控制上限和下限??? 你自己只用SQL语句写一个分页程序我看看?????? 做得出来我佩服你,做不出来,我会BS你说大话的! |
ajian320
16761
|
2005/8/3 13:27:19 |
我看过你的代码,你的原理实际上就是用SQL语句从表中选出一定数量的数据并显示,只不过在确定上限和下限时方法不同而已,不知你明白没有? |
endo
16743
|
2005/8/2 10:55:40 |
To ajian320: 请赐教,愿闻其详!!!!!! |
ajian320
16741
|
2005/8/2 10:14:09 |
你这个确实太麻烦了,没有必要这么做,就用SQL语句就可以完了的! |
endo
16727
|
2005/8/1 8:45:08 |
To shangshang: 有机会咱好好聊聊!:)
To:kinneng 如果你懒得看代码,如果你懒得看所有的评论,请请请直接下载!!! DBGrid分页技术源码下载: 官方下载地址:http://www.uu987.com/MySoft/DBGridDivPage.rar |
kinneng
16717
|
2005/7/31 10:36:30 |
为什么不用DBGrid |