一个很实用的Ehlib排序函数,适合ADO

Qt获取本机的ip地址、MAC地址 方法1: 获取ip地址: QString getHostIpAddress() { QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 获取第一个本主机的IPv4地址 int nListSize = ipA... 阅读详情

Ehlib3.0版本以上虽然支持排序功能,但不支持带有Order By的SQL语句,而且排序很慢;我写的这个排序函数,利用ADO的sort方法,排序很快,几万条数据也是很快。该函数支持Lookup字段排序,不支持计算字段排序,因为计算字段值在内存里高速运算。排序分为:升序、降序和默认三种,支持排序图标。

procedure  SortDBGridEh(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
var
  FieldName, SortStr: string;
begin
  Screen.Cursor := crSQLWait;
  try
    if (Sender is TDBGridEh) and
      ((Sender as TDBGridEh).DataSource.DataSet <> nil) then
    begin
      if not ((Sender as TDBGridEh).DataSource.DataSet is TCustomADODataSet) then
        Exit;

      if not (Sender as TDBGridEh).DataSource.DataSet.Active then
        Exit;

      FieldName := Column.FieldName;
      if (Sender as TDBGridEh).DataSource.DataSet.FindField(FieldName).IsBlob then
        Exit;

      if (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).FieldKind =
        fkData then
        SortStr := FieldName
      else if (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).FieldKind =
        fkLookup then
        FieldName := (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).KeyFields
      else
        FieldName := '';

      if (FieldName = '') or (Pos(';', FieldName) > 0) then
        Exit;
      case Column.Title.SortMarker of
        smNoneEh:
          begin
            Column.Title.SortMarker := smUpEh;
            TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort :=
              FieldName;

          end;
        smUpEh:
          begin
            Column.Title.SortMarker := smDownEh;
            TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort :=
              FieldName + ' DESC';
          end;
        smDownEh:
          begin
            Column.Title.SortMarker := smNoneEh;
            TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort := '';
          end;
      end;
    end;
  finally
    Screen.Cursor := crDefault;
  end;
end;

--程序实现如下:
--在DBGridEh的事件OnTitleBtnClick引用该函数即可:
procedure TFrmU_BasicSetup.dbgAddrCodeTitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
begin
   SortDBGridEh(Sender, ACol, Column);
end;
--为了保证表格的每一列都能点击触发排序,你需要将你需要排序的列属性
--  Title->TitleButton设置为True。

如何用C语言获得本机IP地址 (获取一个ip或者获取所有ip) 阅读详情

相关推荐

Qt获取本机正在使用的IP(过滤未使用的IP地址)

参考1:https://yq.aliyun.com/articles/272274 参考2:https://www.hexcode.cn/article/show/qt-getip 借鉴方案(未解决): 由于电脑有多个网络适配连接(2个虚拟机+2个无线网),如图 根据参考1,可以获取到本机的IP相关信息,但是两个无线网无法区别谁是当前IP // 获取所有网络接口 ...

JakeLin's Blog 2136

EhLib.12.0.039

EhLib.12.0.039

Delphi EhLib控件:DBGridEh组件深入使用指南

本文还有配套的精品资源,点击获取 简介:EhLib控件是Delphi环境中的一个强大的第三方控件集,尤其是DBGridEh组件,它增强了数据网格的显示和操作功能。本文详细介绍了如何使用DBGridEh组件提升数据展示和用户界面交互性,包括统计栏的添加、复杂标题的实现、隔行分色显示、条件行颜色变化以及自定义列类型等。EhLib控件的其他功能,如拖放排序、列选择、打印预览和数据...

weixin_36149538的博客 2727

EhLib10.0.031(支持XE11安装,运行Installer文件夹中的EhLibInstaller.exe安装)

网上下载并调试支持Win64的X11的EhLib10.0.031,运行Installer文件夹中的EhLibInstaller.exe安装。

EhLib 使用教程:Ehlib 过滤功能的实现

DBGridEh 可以为你提供一个更加美观和功能丰富的 DBGird,比如平面化显示、奇偶行不同颜色(斑马线)、快速查找、合计行、Grid 打印等。在 Ehlib 的后期版本中,还提供了一个非常强大的过滤功能,他会在 DBGrid 的表头下方显示一个过滤行,用户在此行的相应列中输入查询条件,DBGridEh 可以自动为您筛选出所需要的数据。下图所示即为启用过滤功能后的 DBGridEh: 鉴

beyondqd的专栏 6351

EhLib数据库组件库完整教程与实战

本文还有配套的精品资源,点击获取 简介:EhLib一个为Delphi和C++Builder开发者设计的强大数据库组件库,用于构建高效且功能丰富的数据库应用程序。它包含多个版本,例如6.1.129FS,提供了大量的数据库访问组件、源代码、帮助文档及示例项目。核心特性包括与多种数据库引擎的交互能力、对BDE和ADO的支持,以及丰富的组件定制化选项。使用EhLib可以帮助开发者...

weixin_42593701的博客 812

Delphi开发者必备:EhLib控件库详解

Delphi,作为一款高效、灵活的编程语言,深受开发者喜爱。为了进一步提升开发效率和应用性能,开发者社区创造出了各种专用控件库。这些库不仅丰富了Delphi的内置功能,也降低了开发复杂度,缩短了项目交付周期。其中,EhLib组件库就是最为著名的例子之一。EhLib控件库是一个功能强大的组件集合,专为Delphi环境设计,旨在提供更丰富的数据处理功能和用户界面元素。组件库按照其功能和用途大致可以分为以下几类:数据感知控件:这些控件能够展示和编辑数据,如EhGrid、EhPivotGrid等。

weixin_35257663的博客 587

Delphi之Ehlib安装

由于公司要改截图的软件,所以发给我了一个源文档,但是当我打开的时候,提示我 Error creating form:Class TDBGridEh not found 对此的解决办法是安装Ehlib,我在网上下载了一个EhLib_v4.1.4。 首先我在D盘下新建文件夹 D:\Component\EhlibEhlib_v4.1.4中Common文件夹下和Delphi7文件夹下所有的东...

拿头去拼啊 1380

获得本机多个ip地址(源码)

vector get_local_ip() { int s; struct ifconf conf; struct ifreq *ifr; char buff[BUFSIZ]; int num; int i; vector ip_vec; s = socket(PF_INET, SOCK_DGRAM, 0); conf.ifc_len = BUFSIZ; conf.ifc_b

nosmatch的专栏 1124

VS2012 C++ 中通过GetAdaptersInfo获取多网卡,多IP地址信息

#include "stdafx.h" #include "winsock.h" #include "stdio.h" #include #pragma comment(lib,"Iphlpapi.lib") int _tmain(int argc, _TCHAR* argv[]) {         PIP_ADAPTER_INFO pIpAdapterInfo = new

剪烛西窗 4913

Java 获取本机IP地址

文章目录前言一、规则二、获取1.使用2.工具类 前言 在Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress()。这的确能获取到本机IP地址,但是是不准确的。因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个IP地址,Lan、WiFi、蓝牙、热点、虚拟机网卡等。 一、规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的本机可见,就是本机地址,比较常见的有 127.0.0

dingwen 1万+

EhLib 11.0 第三方Grid控件

Ehlib是一款非常不错的第三方Grid控件,界面美观,功能强劲,内含编程时最常用的Delphi控件和含源码,比DELPHI自带的强大许多,比cxGrid小巧,使用起来简单方便。

Shell脚本中获取本机ip地址

1.单网卡 方法1: #!/bin/sh local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​` echo "${local_ip}" ifconfig -a //和window下执行此命令一样道理,返回本机所有ip信息 grep inet //截取包含ip的行 grep -v 127.0.0.1 //去掉本地指向的那行 grep

Map的博客 1万+

如何用C语言获得本机IP地址?(获取一个ip或者获取所有ip)

我们可以在cmd中敲入ipconfig来获取本机ip地址,下面写个程序来获取本机ip地址(结果相同): #include #include #pragma comment(lib,"ws2_32.lib") // 静态库 void findIP(char *ip) { WORD v = MAKEWORD(1, 1); WSADATA wsaData; char name

认知 行动 坚持 4万+

掌握获取本机IP地址的多种方法

在IPv4网络中,本地环回地址127.0.0.1是一个特殊的地址,属于保留的A类地址。它不经过任何网络设备的路由处理,直接返回到本机的网络接口卡(NIC)。这使得程序可以在不涉及物理网络的情况下进行本地通信测试,是开发者在调试网络相关程序时不可或缺的工具。127.0.0.1 # 代表本地主机,也称为回环地址在编程语言层面,多数高级语言提供了用于网络编程的库或API。例如:Python: 使用socket和os模块可以获取本机IP地址。Java: 使用方法。C#: 通过。

weixin_29443363的博客 3201

JAVA获取本机IP地址

在百度搜索“JAVA获取本机IP地址”,基本上搜到比较普遍的说法是InetAddress.getLocalHost().getHostAddress(),实际上这段代码在复杂环境下是不准的。IP地址在现在的网络环境更加复杂了,比如有Lan,WIFI,蓝牙热点,虚拟机网卡... 即存在很多的网络接口(network interfaces),每个网络接口就包含一个IP地址,并不是所有的IP地址能被外部或局域网访问,比如说虚拟机网卡地址等等。 直接上代码 private static InetAddress

延陵缥缈的博客 3556

查看本机IP地址

只需要在cmd命令提示符中输入:ipconfig 命令,下面将为你详细的介绍怎么查看本机IP地址的详细步骤和方法。

程序道 -Learning, Thinking and Coding <存储知识的金库> 5267
上一篇: 关于Ehlib的ReadOnly小BUG修正。
HZ_ZMD
博客等级 码龄25年 0粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值