当前位置:首页 > 经验 >

table表格怎么上移数据(table表格怎么让某一段没有边框)

来源:原点资讯(www.yd166.com)时间:2022-10-29 00:48:41作者:YD166手机阅读>>

7.ADO组件之ADOTable组件

ADOTable 组件属于数据集组件,使用该组件可用建立数据库表及索引,对已经存在的数据表进行插入、删除、修改等操作。

在 Delphi 中,提供了 Table、Query、StoredProc 等组件来处理数据。一般情况下,对于桌面数据库来说,使用 Table 组件效率最好,而对于 SQL 数据来说,使用 Query 组件避免了 SQL 语句的转化,效率会更高,对于处理过程比较复杂、数据量大的 SQL 操作,最好使用存储过程来操作。

ADOTable 组件位于 dbGo 页上,通过 ADO 连接到数据库上,从一个物理数据表中取出数据,并通过 TDataSource 组件把数据提供给一个或多个数据控制组件;另一方面,可以把用户通过数据控制组件输入的数据发送给物理数据库。

7.1ADOTable组件的主要属性
  • Connection

指定访问数据库所使用的 ADOConnection 组件

  • ConnectionString

指定连接字符串,在不使用 ADOConnection 组件的情况下,也可以直接连接数据库

  • Active

表示是否与数据库建立连接,取值为布尔类型:True / False,如果设置为 True,则表示与数据库建立连接,可以访问数据库;否则,表示数据集处于关闭状态,不能访问数据库表。

使用 Open 和 Close 方法对数据库表的操作效果进行修改 Active 属性的效果是一致的。

  • TableName

指定访问的数据库表的名称。

  • ReadOnly

表示是否只读,如果设置为 True,表示数据库表的数据不能被修改,可以防止数据库表中的记录被修改。

  • Bof

表示当前记录指针所处的位置是否为数据表的第一条记录,属性值为布尔型

  • Eof

表示当前记录指针所处的位置是否为数据表的最后一条记录,属性值为布尔型

如果 Bof 和 Eof 都为 True 的话,则数据表为空表

  • CanModify

表示数据库表是否可用被修改,属性值为布尔型,如果设置为 True,则表示可以被修改,否则表示不可被修改,如果表组件的 ReadOnly 设置为 True,则该属性将被设置为 Fasle。

  • Modified

表示数据库表是否已经被修改,取值为布尔型

7.2ADOTable组件的主要方法

1.打开与关闭

  • Open - 打开数据库表,Active 属性设置为 True
  • Close - 关闭数据库表,Active 属性设置为 False

2.浏览数据

  • First - 将记录指针移动到第一条记录
  • Last - 将记录指针移动到最后一条记录
  • MoveBy - 将记录指针移动到与当前记录相关的某一记录处,格式:

function MoveBy(Distance: Integer): Integer;

其中,Distance表示要移动的记录数目,取值为正数时表示向下移动,为负数时表示向上移动。

返回实际一定的记录数目。

  • Next - 将记录指针后移一条记录
  • Prior - 将记录指针前移一条记录

3.编辑数据

  • Append - 在数据库表的末尾添加一条新的空间记录并将该记录设置为当前记录。
  • Delete - 将当前记录从数据库表中删除。
  • Edit - 编辑数据库表的当前记录。
  • Insert - 在数据库表中插入一条新的空间记录,并将该记录设置为当前记录。
  • InsertRecord - 在数据库表中建立一个新的记录,与 Insert 的不同之处,直接将新记录的字段值以参数形式传递,且不需要调用 Post 方法。格式:

procedure InsertRecord(const Values: array of const);

该方法会将缺少的字段值处理为 Null 值。

  • Post - 向数据库提交修改的记录。
  • SetFields - 以参数形式修改当前记录中的多个字段值。格式:

procedure SetFields(const Values: array of const);

其中:Values 中包含将插入的每个字段的值,其顺序是根据表中字段的先后顺序决定的,缺少的字段会作为 Null 值处理。

  • Cancel - 取消对数据表的修改。在数据更改未提交的情况下,该方法使记录恢复到修改前的状态。

4.书签的使用

使用书签可以在数据表上快速定位记录指针。Delphi 支持在当前记录上标记书签,以便在后面能够快速返回到书签的位置。

  • GetBookMark - 用于设置书签,返回一个 TBookMark 类型的值。格式:

function GetBookmark: TBookmark;

  • GotoBookMark - 快速将记录指针定位到书签的位置处。格式:

procedure GotoBookmark(Bookmark: TBookmark);

  • FreeBookMark - 释放书签,格式:

procedure FreeBookmark(Bookmark: TBookmark);

5.查询数据记录

  • Locate - 查询数据记录,格式:

function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;

其中:

  • KeyFields - 用逗号分隔的查询字段名称
  • KeyValues - 要查询的字段值
  • Options - 查询选项,如果包含loCaseInsensitive,则查询时不区分 KeyValues 中的大小写;如果包含 loPartialKey 时,可以实现近似查询
7.3查找数据程序示例

界面如下:

table表格怎么上移数据,table表格怎么让某一段没有边框(1)

所使用的组件及属性:

组件

属性

Panel1

Caption

''

Align

alTop

Label1

Caption

'姓名'

Edit1

Text

''

Button1

Caption

'查找'

ADOConnection1

ConnectionString

Provider=MSDASQL.1;Persist Security Info=False;Data Source=demodb

LoginPrompt

False

Connected

True

ADOTable1

Connection

ADOConnection1

TableName

d_students

Active

True

DataSource1

DataSet

ADOTable1

DBGrid1

Align

alClient

DataSource

DataSource1

示例代码如下:

procedure TForm1.Button1Click(Sender: TObject); var chinese, math, english, total: Double; begin if ADOTable1.Locate('name', Edit1.Text, [loPartialKey]) then begin chinese := ADOTable1.FieldByName('chinese').AsFloat; math := ADOTable1.FieldByName('math').AsFloat; english := ADOTable1.FieldByName('english').AsFloat; total := chinese math english; Panel2.Caption := ADOTable1.FieldByName('name').AsString ':' floattostr(total); end else Panel2.Caption := '未找到'; end; procedure TForm1.FormCreate(Sender: TObject); begin ADOTable1.FieldByName('student_id').DisplayLabel := '学号'; ADOTable1.FieldByName('name').DisplayLabel := '姓名'; ADOTable1.FieldByName('sex').DisplayLabel := '性别'; ADOTable1.FieldByName('chinese').DisplayLabel := '语文'; ADOTable1.FieldByName('math').DisplayLabel := '数学'; ADOTable1.FieldByName('english').DisplayLabel := '英语'; ADOTable1.FieldByName('student_id').DisplayWidth := 16; end;7.4主从结构数据表

在 Delphi 中,通过主从结构显式地支持主从结构的数据表关系。

主从结构数据表关系设置相关的主要属性:

  • MasterSource
  • MasterFields

示例:

数据准备:

create table c_department ( department_id int4 primary key, department_name varchar(16) ); INSERT INTO c_department (department_id, department_name) VALUES(1, '计算机系'); INSERT INTO c_department (department_id, department_name) VALUES(2, '土木工程系'); create table d_students1 ( student_id varchar(64) primary key, name varchar(16), sex boolean, birthday date, department_id int4, total_score decimal(9,1) ); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210001', '张三', true, '2000-05-06', 1, 520); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210002', '李四', true, '2000-03-09', 1, 539); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210003', '周五', false, '2001-09-10', 2, 528); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210004', '赵六', true, '2000-08-28', 1, 517); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210005', '姜七', false, '2000-07-06', 2, 547); INSERT INTO d_students1 (student_id, "name", sex, birthday, department_id, total_score) VALUES('x-20210006', '贺八', true, '2000-11-01', 2, 533);

界面设计如下图:

table表格怎么上移数据,table表格怎么让某一段没有边框(2)

组件属性设置如下:

组件

属性

ADOConnection1

ConnectionString

Provider=MSDASQL.1;Persist Security Info=False;Data Source=demodb;

Connected

True

LoginPrompt

False

ADOTable1

Connection

ADOConnection1

Active

True

TableName

c_department

DataSource1

DataSet

ADOTable1

ADOtable2

Connection

ADOConnection1

Active

True

TableName

d_students1

MasterSource

DataSource1

MasterFields

department_id

DataSource2

DataSet

ADOTable2

DBGrid1

DataSource

DataSource1

DBGrid2

DataSource

DataSource2

设置 MasterFields 的方法,单击从表组件 ADOTable2 的属性 MasterFields 设置框右侧的 ... 按钮,进入关联字段的设置对话框,如下图所示:

table表格怎么上移数据,table表格怎么让某一段没有边框(3)

通过该对话框将从表的关联字段与主表的关联字段建立联系即可。

7.5字段编辑器

在 TADOTable 组件上右击选择 Fields Editor,即可打开字段编辑器,在字段编辑器中增加固定字段并进行编辑,如下图:

table表格怎么上移数据,table表格怎么让某一段没有边框(4)

  • 在字段编辑器中定义计算字段:

选择 ADOTable2 ,右击选择 Fields Editor,添加所有字段为固定字段,然后选择 NewField,如下图:

table表格怎么上移数据,table表格怎么让某一段没有边框(5)

设置Name、Type、FieldType,本例设置:

Name

avg_score

Type

Float

FieldType

Calculated

编写 ADOTable2 的 OnCalcFields 事件代码:

procedure TForm1.ADOTable2CalcFields(DataSet: TDataSet); begin ADOTable2avg_score.Value := round(ADOTable2total_score.AsFloat / 6.0 * 10) / 10; end;

  • 在字段编辑器中定义查看字段:

在字段编辑器中右击选择 New Field,设置如下图所示:

table表格怎么上移数据,table表格怎么让某一段没有边框(6)

通过上面的设置,在 ADOTable2 中增加了 department_name 的显示,其数据来自于 ADOTable1 中。

  • 在字段编辑器中拖放

无论是计算字段、查看字段,以及数据表字段,均可以在字段编辑器中通过拖放操作来调整显示顺序。

栏目热文

用table做一页简单的表格(table表格变成excel)

用table做一页简单的表格(table表格变成excel)

上篇文章介绍了div标签的作用,我们这篇文章主要来看下过气表格标签table的语法与使用。1)table的曾经在div没...

2022-10-29 00:56:35查看全文 >>

table表格中内容太长怎么方便看(table表格居中在哪里设置)

table表格中内容太长怎么方便看(table表格居中在哪里设置)

概述我们很多时候都会去drop一些大表,特别是生产环境做操作时,这里主要提一些注意事项,仅供参考。01相关语法1、删表D...

2022-10-29 00:53:36查看全文 >>

table表格变成excel(怎么把excel导入table)

table表格变成excel(怎么把excel导入table)

在我们平时的工作过程中,很多时候我们都会按照不同的分类将业务数据存储在不同的工作表中,但是有时候由于业务的需要,又需要将...

2022-10-29 00:55:39查看全文 >>

table表格中文字在左上角怎么弄(table表格中内容太长怎么方便看)

table表格中文字在左上角怎么弄(table表格中内容太长怎么方便看)

一名合格的程序员,一定得有良好的编程规范。基本的命名、注释、函数间空行等等之类的代码规范自不必说,老生常谈了,今天总结一...

2022-10-29 00:53:19查看全文 >>

小学校长可以任职多久(中小学校长任职年龄规定)

小学校长可以任职多久(中小学校长任职年龄规定)

文/记者 巩悦悦 视频/王凯 高广超教师这份职业,到底意味着什么?对于这个问题,淄博市沂源县东高庄海尔希望小学(简称东高...

2022-10-29 00:34:46查看全文 >>

table转成普通表格(怎么把table变成普通excel)

table转成普通表格(怎么把table变成普通excel)

Power Query中提供了三种基本的结构数据,这是Power Query计算的基础,Power Query中有关于这...

2022-10-29 01:21:23查看全文 >>

table怎么合并一个表格(table怎么合并单元格)

table怎么合并一个表格(table怎么合并单元格)

正值年中,老板交代把上半年各个地区提交的数据表格做个汇总。怎么办?一个地区一张表打开华南区的表,复制】-打开汇总表-【粘...

2022-10-29 01:13:03查看全文 >>

怎样打开table表格(table怎么转为excel)

怎样打开table表格(table怎么转为excel)

项目中,需要知道IMG配置到底存在哪个表中,以便进行一些自定义的开发。可以通过下面几种方法快速找到配置对应的View和T...

2022-10-29 01:21:04查看全文 >>

table表格添加文字(table动态添加表格)

table表格添加文字(table动态添加表格)

表格标题和表头单元格标签的了解使用场景的介绍:在表格中表示整体大标题和一列小标题。其他标签的介绍:标签名称:captio...

2022-10-29 01:09:32查看全文 >>

table表格怎么改成单条细线(table修改单独行列样式)

table表格怎么改成单条细线(table修改单独行列样式)

(本‬文‬作‬于‬2010年‬)前不久,单位领导交给我一项任务,建立媒体资源数据查询和管理系统。随着单位媒体资源的日积...

2022-10-29 01:18:57查看全文 >>

文档排行