首页 相关文章 点击DBGrid的Title对查询结果排序

点击DBGrid的Title对查询结果排序

  //欲实现点击DBGrid的Title对查询结果排序,想作一个通用程序,不是一事一议,
  //例如不能在SQL语句中增加Order by ...,因为SQL可能原来已经包含Order by ...,
  //而且点击另一个Title时又要另外排序,目的是想作到象资源管理器那样随心所欲。
  procedure TfrmChild.DBGrid1TitleClick(Column: TColumn);
  var
   SqlStr,myFieldName,TempStr: string;
   OrderPos: integer;
   SavedParams: TParams;
  begin
   if not (Column.Field.FieldKind in [fkData,fkLookup]) then exit;
   if Column.Field.FieldKind =fkData then
   myFieldName := UpperCase(Column.Field.FieldName)
   else
   ...[ 查看全文 ]

2016-02-19 标签:
  • 标签:SQLServer
      二、用列名字作为参数 另外一个选择是让查询以参数的形式接收一个列名字。Listing 2显示了修改后的GetSortedShippers存储过程。CASE表达式根据接收到的参数,确定SQL Server在ORDER BY子句中使用哪一个列值。注意,ORDER BY子句中的表达式并未在SELECT清单中出现。在ANSI SQL-92标准中,ORDER BY子句中不允许出现没有在SELECT清单中指定的表达式,但ANSI SQL-99标准允许。SQL Server一直允许这...[ 查看全文 ]
  • 标签:SQLServer
      假设我们把更多的货主加入到表,如Listing 4所示(ShipperID列有IDENTITY属性,SQL Server自动为该列生成值)。 【Listing 4:向Shippers表插入一些记录】 INSERT INTO Shippers VALUES('Shipper4', '(111) 222-9999') INSERT INTO Shippers VALUES('Shipper5', '(111) 222-8888') INSERT INTO Shippers VALUES('Shipper6', '(111) 222-7777') INSERT INTO Shippers VALUES('Shipper7', ...[ 查看全文 ]
  • 标签:SQLServer
      在公共新闻组中,一个经常出现的问题是“怎样才能根据传递给存储过程的参数返回一个排序的输出?”。在一些高水平专家的帮助之下,我整理出了这个问题的几种解决方案。 一、用IF...ELSE执行预先编写好的查询 对于大多数人来说,首先想到的做法也许是:通过IF...ELSE语句,执行几个预先编写好的查询中的一个。例如,假设要从Northwind数据库查询得到一个货主(Shipper)的排序列表,发出...[ 查看全文 ]
  • 标签:SQLServer
      现在,如果我们用任意三个列名字之一作为参数调用存储过程,存储过程都能够正确地返回结果。Richard Romley提出了一种巧妙的处理方法,如Listing 6所示。它不再要求我们搞清楚可能涉及的列数据类型。这种方法把ORDER BY子句分成三个独立的CASE表达式,每一个表达式处理一个不同的列,避免了由于CASE只返回一种特定数据类型的能力而导致的问题。 【Listing 6:用列名字作为参数,Romley提出的...[ 查看全文 ]
  • 标签:SQLServer
      为了解决这个问题,我们可以用前置的0补足ShipperID值,使得ShipperID值都有同样的长度。按照这种方法,基于字符的排序具有和整数排序同样的输出结果。修改后的存储过程如Listing 5所示。十个0被置于ShipperID的绝对值之前,而在结果中,代码只是使用最右边的10个字符。SIGN函数确定在正数的前面加上加号(+)前缀,还是在负数的前面加上负号(-)前缀。按照这种方法,输出结果总是有11个字符,包...[ 查看全文 ]
  • 标签:SQLServer
      三、用列号作为参数 就象第一个方案所显示地那样,你也许更喜欢用列的编号作为参数,而不是使用列的名字(列的编号即一个代表你想要作为排序依据的列的数字)。这种方法的基本思想与使用列名字作为参数的思想一样:CASE表达式根据指定的列号确定使用哪一个列进行排序。Listing 7显示了修改后的GetSortedShippers存储过程。 【Listing 7:用列号作为参数】 ALTER PROC GetSortedShippers ...[ 查看全文 ]
  • 标签:SQLServer
      为了避免出现这种转换错误,我们可以尝试把ShipperID转换成varchar数据类型。采用这种方法之后,nvarchar将作为最高优先级的数据类型被返回。Listing 3显示了修改后的GetSortedShippers存储过程。 【Listing 3:用列名字作为参数,第二次尝试】 ALTER PROC GetSortedShippers @ColName AS sysname AS SELECT * FROM Shippers ORDER BY CASE @ColName WHEN 'ShipperID' TH...[ 查看全文 ]
  • 标签:SQLServer
          sql2000的查询结果进行相关度排序,听起来好象很吸引人,不过真的是可以实现的。     上午上网看到了一篇利用微软index server来做全文查询的文章(这个以前也看到过,在计算机管理中也自带了这样一个查询功能) 我的IIS默认web服务器在g:/wwwroot下其中有10万多的html文档    测试:strSearch = "SELECT DocTitle, Path, FileName, Characterization, ...[ 查看全文 ]
  • 标签:PHP
      最近在Support Forums上有很多问题都是关于如何为一个搜索结果制作象"向后 1 2 3 4 5 向前"样子 的链接。我希望下面的脚本可以帮助你,在你的搜索结果页面中加入这种功能。这个例子是专为MySQL所写 的,但是对于其它的SQL引擎也可以很容易地适应。 因为每种应用都是不同的,这样我使用了一些通用的语句进行MySQL查询处理。TABLE名应该替换成你的 实际表名。YOUR CONDITIONAL HERE应该...[ 查看全文 ]
  • 标签:ASP
      'EXCELa.VBS '直接将查询数据结果生成 EXCEL 表,稍做修改后即可 '改成ASP文件放在服务器上面向客户 option Explicit dim conn,strConnString Set conn = WScript.CreateObject("ADODB.Connection") on error resume next strConnString ="Provider=SQLOLEDB.1;Password=UP;" & _               &n...[ 查看全文 ]
  • 标签:SQLServer
      /* 'bcp' 不是内部或外部命令,也不是可运行的程序? 看看在C:\Program Files\Microsoft SQL Server\80\Tools\Binn里面有没有bcp.exe这个文件 然后看看path里面加C:\Program Files\Microsoft SQL Server\80\Tools\Binn这个目录没有. 右键我的电脑--属性--高级--环境变量--在系统变量中找到path--编辑 在变量值的最后加上: C:\Program Files\Microsoft SQL Server\80\Tools\BINN */ /********...[ 查看全文 ]
  • 标签:SQLServer
      往往经常有这样的需求,我需要在查询的结果中添加一列类似于Identity的数字,虽然在Client编程中并不难实现,但是有时我想留用现有的Class,不希望在Client side做额外的coding,那么就只有在Sql里面想办法了 首先介绍一种用一条SQL语句完成的办法,原理是在结果中查询大于等于该纪录的纪录条数,就可以得到它的Rank了 Example: USE pubs SELECT COUNT(*) AS Rank, a1.au_lname, a1.au_fname  &n...[ 查看全文 ]
  • //--------------------------------------------------------------------------- #include vcl.h #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __...[ 查看全文 ]
  • 不同情绪对胎宝贝产生的结果 孕妈咪若是情绪极度不安,如在早孕7-10周内,是胚胎腭部和脏器发育关键时期,就会引起兔唇、腭裂、心脏有缺陷等畸形;在妊娠后期,可使胎动过速(可达正常胎动的10倍)、子宫出血或胎盘早期剥离,引发早产、胎宝贝死亡等。 好结果!促进胎宝贝生长发育 1.有益物质让孕妈咪的身体处于最佳状态,十分有益于胎盘的血液循环供...[ 查看全文 ]
  • 标签:Web开发
    代码如下: var pltsPop=null; var pltsoffsetX = 5;   // 弹出窗口位于鼠标左侧或者右侧的距离;3-12 合适 var pltsoffsetY = 5;  // 弹出窗口位于鼠标下方的距离;3-12 合适 var pltsPopbg="#FFffff"; //背景色 var pltsPopfg="#880000"; //前景色 var pltsTitle=""; document.write('di...[ 查看全文 ]
  • 描述:Excel如何按文本首字母排列?如何将左图按字母顺序排列成右图效果。 解决: 公式: =INDEX(A:A,RIGHT(SMALL(--(CODE(RIGHT(A$1:A$9))&TEXT(ROW($1:$9),"0000")),ROW(A1)),4)) 按CTAL+SHIFT+回车键 结束输入,然后下拉。 在学校里需要对姓名进行按照字母排序确定编号,有时候也需要按照笔画排序,效果图如下 具体步骤 1、选中A1:E17区域 2、点击菜单数据,排序,打开排...[ 查看全文 ]
  • ^知道了可以用nmhttp控件下载网页,可是D7找不到这个控件了。 ^找到了idhttp控件似乎可以实现相同的功能,可是线上关于其的讨论太少 ^摘录一点代码: 直接采用Delphi自带的控件的INDY组件为例.新建一个工程,放上一个TIdHTTP控件,一个TIdAntiFreeze控件,一个TProgressBar用于显示下载进度.最后放上一个TButton用于开始执行我们的命令.代码如下: procedure TForm1.Button1Click(Sender: T...[ 查看全文 ]
  • procedure CopyCurrentDBLine(DBGrid: TDBGrid); var   i: Integer;   Line: String; begin   for i := 0 to DBGrid.Columns.Count - 1 do begin     if Assigned(DBGrid.Columns.Grid.Fields[i]) then       if Line = '' then         Line := DBGrid.Columns.Grid.Fi...[ 查看全文 ]
  • 前言 一直没有系统去看过c++,因为懂得一些c的基本语法,在实际编程中用到c++,只能用到哪些看哪些,发现这样虽然能够完成大部分工作,但是有时候效率实在太低,比如说这节要讲的Std::sort()函数的使用,调了半天才调通。开通c/c++序列博客是记录在使用c++中一些难题,避免以后重犯错,当然以后会尽量挤出时间来较系统学习下c++。 开发环境:QtCreator2.5.1+OpenCV2.4.3 实验基础 ...[ 查看全文 ]
  • 一个好用的DBGRID --- VC数据库开发之二 作者:陈松乐 下载本文配套代码一 (演示CGridCtrl的使用) 下载本文配套代码二 (演示与CMYODBC的配合使用) 一、引言 在用vc开发关于数据库的项目时,通常我们只好用微软的DBGRID作为数据库表格控件,其实微软的DBGRID并不好用,想找一份好的帮助文档都找不到,并且界面并不友好,比起C++Builder...[ 查看全文 ]
手机页面 收藏网站 回到头部