1 unit Unit2;

 interface

 uses
   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.Grids,
   Vcl.DBGrids, Vcl.ComCtrls, Vcl.StdCtrls;

 type
   TForm2 = class(TForm)
     TreeView1: TTreeView;
     DBGrid1: TDBGrid;
     ADOConnection1: TADOConnection;
     ADOQuery1: TADOQuery;
     DataSource1: TDataSource;
     procedure FormShow(Sender: TObject);
     procedure TreeView1DblClick(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

 var
   Form2: TForm2;

 implementation

 {$R *.dfm}

 procedure TForm2.FormShow(Sender: TObject);
 var
   I: Integer;
   node: TTreeNode;
   MyFuAdq,MyZiAdq: TADOQuery;
 begin
   MyFuAdq := TADOQuery.Create(nil);
   MyZiAdq := TADOQuery.Create(nil);
   try
     MyFuAdq.Connection := ADOConnection1;
     MyZiAdq.Connection := ADOConnection1;
     with MyFuAdq do
     begin
       SQL.Text := 'SELECT TOP 1 * FROM top_order';
       Open;
     end;

       do
     begin
       node := TreeView1.Items.Add(nil, MyFuAdq.FieldDefs[I].Name); {字段名}

       //再次查询每列不同的数据
       with MyZiAdq do
       begin
         Close;
         SQL.Text := 'SELECT DISTINCT '+MyFuAdq.FieldDefs[I].Name+ ' FROM top_order';
         Open;
       end;
       while not MyZiAdq.Eof do
       begin
         TreeView1.Items.AddChild(node, MyZiAdq.FieldByName(MyFuAdq.FieldDefs[I].Name).AsString);
         MyZiAdq.Next;
       end;
     end;

   finally
     MyFuAdq.Free;
     MyZiAdq.Free;
   end;

 end;

 procedure TForm2.TreeView1DblClick(Sender: TObject);
 var
   MyAdq: TADOQuery;
   selectName,selectValue: string;
 begin
   MyAdq := TADOQuery.Create(nil);
   try
     MyAdq.Connection := ADOConnection1;

     //获取选中的内容
     selectName := TreeView1.Selected.Parent.Text;
     selectValue := TreeView1.Selected.Text;

     //选中
     with MyAdq do
     begin
       SQL.Text := 'UPDATE top_trade SET top_xuanzhong = 1 WHERE top_xuhao IN (SELECT DISTINCT top_xuhao FROM top_order WHERE '+selectName+' = '+selectValue.QuotedString+')';
       ExecSQL;
     end;

     //查询
     with ADOQuery1 do
     begin
       Close;
       SQL.Text := 'SELECT top_order.top_title,top_trade.top_xuhao,top_trade.top_xuanzhong FROM top_order FULL JOIN top_trade ON top_order.top_xuhao = top_trade.top_xuhao WHERE top_order.'+selectName+' = '+selectValue.QuotedString;
       Open;
     end;
   finally
     MyAdq.Free;
   end;
 end;

 end.

delphi学习treeview中从表列名和数据添加为目录并双击自动选中的更多相关文章

  1. 在Action中获取表单提交数据

    -----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2 ...

  2. C# 将Access中时间段条件查询的数据添加到ListView中

    C# 将Access中时间段条件查询的数据添加到ListView中 一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Col ...

  3. 查询A、B表中,A表中B表没有的数据

    A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低  ~执 ...

  4. MySql必知必会实战练习(一)表创建和数据添加

    1.实战环境 windows 10 64位 mysql-8.0.13 mysql编辑和查看工具:NaviCat for MySql 表脚本文件: ########################### ...

  5. 利用DBCC PAGE查看SQL Server中的表和索引数据

    16:08 2013-01-06 参考http://doc.chinaunix.net/sqlserver/200810/206034.shtmlDBCC PAGE|IND 参数 DBCC PAGE ...

  6. oracle中修改表已有数据的某一列的字段类型的方法,数据备份

    1.在开发过程中经常会遇到表中的某一个字段数据类型不对,比如说需要保存的数据带小数,但是在最初设计的时候是给的number(10)类型,开始保存是整数的时候满足要求,后来在保存小数的时候 会发现自动四 ...

  7. 统计mysql库中每张表的行数据

    修改数据库配置文件:vim /etc/my.cnf [client] user=username password=password 使用shell脚本统计表中的行数据:count.sh #!/bin ...

  8. Javaweb项目中修改表单时数据回显方法

    1.前言 先来说下什么是数据回显,比如我要修改我的个人信息,点击修改按钮后进入修改界面,在这个界面中直接将原来的信息显示在表单中,而不是空表单,这就是数据回显 2.思路 当点击修改的时候,从数据库中查 ...

  9. django(django学习) 两张表创建 插入数据

      pycharm中直接创建django项目 输入创建项目名(如first_django) 在此输入应用名(如g_tu) 此为项目总目录 将first_django中settings.py中第58行修 ...

随机推荐

  1. winServer2008添加IIS服务

    右键我的电脑,选择管理,打开服务器管理器 点击左边菜单栏角色调出角色窗口 接着点击添加角色,弹出添加角色向导 点击下一步进入服务器角色选项 勾选Web服务器(IIS),点击下一步 出现 点击下一步,出 ...

  2. vue 2.0 无法编译ES6语法

    # vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...

  3. 何为PostgreSQL?

    PostgreSQL 是以加州大学伯克利分校计算机系开发的 POSTGRES, Version 4.2 为基础的对象关系型数据库管理系统(ORDBMS).POSTGRES 领先的许多概念只是在非常迟的 ...

  4. Canvas裁剪和Region、RegionIterator

    主要是看这边文章学习:http://blog.csdn.net/lonelyroamer/article/details/8349601 Region.op参数 DIFFERENCE(0), //最终 ...

  5. MySQL之索引优化

    很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作, ...

  6. 在GNU/Linux下将CD音乐转为mp3

    以前我欣赏古典音乐都是听的CD,因而珍藏了不少光盘以及下载到电脑上的ape与flac格式的音乐文件.随着手机硬件性能(如电池续航能力.处理器速度.音质.存储容量等)和软件功能(音乐播放器对于曲目的管理 ...

  7. Android数据库--Sqlcipher的使用(一)

    1.下载官方支持包:https://s3.amazonaws.com/sqlcipher/3.2.0/sqlcipher-for-android-community-v3.2.0.zip Github ...

  8. 搭建git代码服务器

    在代码管理中,通常需要使用版本管理工具,git就是一个不错的选择,这里简单罗列一下git服务器的搭建过程. 1. 安装git工具包 2. 初始化git库:在代码服务器上,通常只需要创建一个不含有工作目 ...

  9. OOP in JS - Inheritance

    Summary You cause a class to inherit using ChildClassName.prototype = new ParentClass();. You need t ...

  10. 【cocos2d-js 3.0】制作2048

    2048:在一个4X4的方阵中,玩家需要滑动上面的数字,如果俩个数字相邻并且相等,则相加,需要达到2048,方可胜利. 因为在浏览器操作,所以此例的操作方法为:键盘上的w,s,a,d代表上下左右,也可 ...