delphi学习treeview中从表列名和数据添加为目录并双击自动选中


1 unit Unit2;
  2
  3 interface
  4
  5 uses
  6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.Grids,
  8   Vcl.DBGrids, Vcl.ComCtrls, Vcl.StdCtrls;
  9
 10 type
 11   TForm2 = class(TForm)
 12     TreeView1: TTreeView;
 13     DBGrid1: TDBGrid;
 14     ADOConnection1: TADOConnection;
 15     ADOQuery1: TADOQuery;
 16     DataSource1: TDataSource;
 17     procedure FormShow(Sender: TObject);
 18     procedure TreeView1DblClick(Sender: TObject);
 19   private
 20     { Private declarations }
 21   public
 22     { Public declarations }
 23   end;
 24
 25 var
 26   Form2: TForm2;
 27
 28 implementation
 29
 30 {$R *.dfm}
 31
 32 procedure TForm2.FormShow(Sender: TObject);
 33 var
 34   I: Integer;
 35   node: TTreeNode;
 36   MyFuAdq,MyZiAdq: TADOQuery;
 37 begin
 38   MyFuAdq := TADOQuery.Create(nil);
 39   MyZiAdq := TADOQuery.Create(nil);
 40   try
 41     MyFuAdq.Connection := ADOConnection1;
 42     MyZiAdq.Connection := ADOConnection1;
 43     with MyFuAdq do
 44     begin
 45       SQL.Text := ‘SELECT TOP 1 * FROM top_order‘;
 46       Open;
 47     end;
 48
 49     for I := 0 to MyFuAdq.FieldDefs.Count - 1 do
 50     begin
 51       node := TreeView1.Items.Add(nil, MyFuAdq.FieldDefs[I].Name); {字段名}
 52
 53       //再次查询每列不同的数据
 54       with MyZiAdq do
 55       begin
 56         Close;
 57         SQL.Text := ‘SELECT DISTINCT ‘+MyFuAdq.FieldDefs[I].Name+ ‘ FROM top_order‘;
 58         Open;
 59       end;
 60       while not MyZiAdq.Eof do
 61       begin
 62         TreeView1.Items.AddChild(node, MyZiAdq.FieldByName(MyFuAdq.FieldDefs[I].Name).AsString);
 63         MyZiAdq.Next;
 64       end;
 65     end;
 66
 67
 68   finally
 69     MyFuAdq.Free;
 70     MyZiAdq.Free;
 71   end;
 72
 73 end;
 74
 75 procedure TForm2.TreeView1DblClick(Sender: TObject);
 76 var
 77   MyAdq: TADOQuery;
 78   selectName,selectValue: string;
 79 begin
 80   MyAdq := TADOQuery.Create(nil);
 81   try
 82     MyAdq.Connection := ADOConnection1;
 83
 84     //获取选中的内容
 85     selectName := TreeView1.Selected.Parent.Text;
 86     selectValue := TreeView1.Selected.Text;
 87
 88     //选中
 89     with MyAdq do
 90     begin
 91       SQL.Text := ‘UPDATE top_trade SET top_xuanzhong = 1 WHERE top_xuhao IN (SELECT DISTINCT top_xuhao FROM top_order WHERE ‘+selectName+‘ = ‘+selectValue.QuotedString+‘)‘;
 92       ExecSQL;
 93     end;
 94
 95
 96     //查询
 97     with ADOQuery1 do
 98     begin
 99       Close;
100       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;
101       Open;
102     end;
103   finally
104     MyAdq.Free;
105   end;
106 end;
107
108 end.

时间: 2024-08-08 15:30:33

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

在Action中获取表单提交数据

-----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2.Struts2 是提交表单到 Action,但 Action 没有 Request 对象,不能 直接使用 Request 对象获取数据 「可以间接使用 Request 对象获取数据」 3.Action 获取表单提交数据主要有三种方式: (1)使用 ActionContext 类 (2)使用 Ser

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

C# 将Access中时间段条件查询的数据添加到ListView中 一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加Item. 首先,ListView的Item属性包括Items和SubItems.必须先实例化一个ListIteView对象.具体如下: ListViewItem listViewItem=new ListViewItem(); l

在yii2中展示表关联的数据

方法一: 在数据库中构建数据表的时候,首先把表之间的关联关系也定义进去: 方法二: 在模型中定义表之间的关联关系,如下: public function getAuthor(){ return $this->hasOne(Author::className(),['id'=>'author_id']); } 此方法中的getAuthor为一对一的关系. 在视图中利用yii\helpers\ArrayHepler 类来填充下拉列表内容: echo $form->field($model,'

数据迁移之sql server2005 中两表关联更新数据操作

近期在做数据迁移的工作,老系统的数据迁移到新系统,当中麻烦的确不少,因为是重新设计的系统与老系统中有太多的不一至性,例如表结构,字段的处理,像附件的存储方式,还有历史遗留数据... 后面会慢慢的把相关技术处理细节展现出来,当然,难度不大,只是琐碎事情太多. 今天就简单来看看数据的关联更新. 业务场景: 同一个业务,有一张主表及一张子表,字段差不多,只是老系统中主键生成方式GUID,而新的主键生成方式自增长型,这里就不论合不合理了,来看看我们的问题. 我们要做的就是把老数据导入到新表,并且保持他们

expdp导出oracle数据库中指定表空间下数据

大家在工作中,应该很多接触各种各样的数据库,笔者在此记录一下,我的一次导出数据经历. 工作环境是oracle+Linux(红帽系统,类似centos) 1.进入linux系统(这里不在赘余) 2.运行sqlplus,建议创建oracle用户 管理数据库,直接输入sqlplus 可能不行,需要修改系统的环境变量,我这里是用的 . /home/oracle/.bash_profile 临时改变系统环境变量 3.在进入sqlplus 中,创建目录路径:输入命令: create directory my

MySQL 中两表关联更新数据

通过用户手机号,更新他的添加时间和过期时间,两表关联更改副表内容 UPDATE expand_money e INNER JOIN members m ON e.uid = m.id SET e.add_time=unix_timestamp(),e.expired_time=unix_timestamp()+60*60*24*7 WHERE m.user_phone = '139139139139'

MYSQL使用mysqldump导出某个表的部分数据

MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢? mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式和SQL查询命令中中的where基本上相同,有了它,我们就可以从数据库中导出你需要的那部分数据了. 命令格式如下: mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径 例子:

管理表空间和数据文件

前言:管理表空间和数据文件   在 Oracle数据库中,表空间中的数据存在于磁盘的数据文件中,所以对表空间的管理操作与对数据文件的管理操作密切相关.通过使用表空间,可以有效的部署不同类型的数据,加强数据管理,从而提高数据库的运行性能. 通过阅读本章节内容,可以: 理解表空间和数据文件的关系 掌握如何创建表空间 掌握如何维护表空间和数据文件 了解如何管理撤销表空间 掌握如何管理临时表空间 一:表空间与数据文件的关系 在Oracle 数据库中,表空间与数据文件之间的关系非常密切,这二者 相互依存.

使用Navicat导出可执行脚本 SqlServer数据库某表的部分数据

今天遇到需要导出SqlServer中某表的部分数据,然后导入正式环境的数据库. 于是我想,直接导出可执行的sql脚本,然后放到正式环境上执行就好,然后就是用了Navicat工具辅助导出可执行的sql脚本, 步骤如下: 点击导出 . 然后,选择SQL脚本文件,点击下一步 点击要导出的位置-->点全选 直接下一步-->下一步 导出来之后,,没有表名,小主自己加上的,时间有点赶,就不继续看原因了 记录点点滴滴,虽然微不足道. 原文地址:https://www.cnblogs.com/chenjle/