delphi中使用dbgird,如何点击鼠标获取点击的那一行数据

delphi中使用dbgird,如何点击鼠标获取点击的那一行数据,第1张

实际上TADODataSet 是一个通用的数据集组件可以代替其他三个数据集,只要分别将其CommandType 属性设置为cmdTable、comdText 或cmdStoreProc, 对应的并分别在其CommandText 属性中设置一个基表(即adotable)、一个SQL 命令(adoquery)或一个存储过程(adocommand)即可。就是说其他三个组件可以用这一个来代替。当然,这个组件还可以打开别的文件。你可以看一下上两个属性的选项。

在使用 Delphi 语言进行软件应用开发过程中,常见的一种应用是 *** 纵 excel 进行读取、生成报表的功能开发,在此总结一下常用的三种方法及其优缺点:

一、使用 COM 方法

此方法的原理,是通过 CreateOleOjbect 函数来调用 windows 系统中注册的 Excel 信息,来建立对 ExcelApplication 的引用来 *** 作 Excel。示例代码如下:

procedure ReadExcels;

var

  i,j: Integer;

begin

  exlApp := CreateOleObject('ExcelApplication');

  exlAppVisible := False;

  exlAppWorkBooksOpen(fsFileName);

 

  iRowCount := exlAppActiveSheetUsedRangeRowsCount;

  iColCount := exlAppActiveSheetUsedRangeColumnsCount;

   

  for i := 2 to iRowCount do

   for j:=1 to icolcount do 

   begin

     ShowMessage(exlAppworkbooks[1]sheets[1]cells[i,j]); 

   end;

end;

优点:可以动态创建,基本不用管软件运行电脑安装的 Excel 版本都能运行;缺点:需要安装 Excel,程序编写过程中缺乏函数、成员等提示,运行时刻出错不易调试。

二、使用 delphi 自带的 Office 控件

此方法与方法一原理类似,区别在于将 ExcelApplication 等封装成控件。示例代码如下:

ExcelApplication1WorkbooksOpen ('c:\testxls',

  EmptyParam , EmptyParam , EmptyParam , EmptyParam ,

  EmptyParam , EmptyParam , EmptyParam , EmptyParam ,

  EmptyParam , EmptyParam , EmptyParam , EmptyParam , 0);

ExcelApplication1WorksSheets['Sheet2'] Activate;

ExcelApplication1Cells[1,4]Value := 'test';

优点:程序编写过程中可以得到函数、成员等提示;缺点:需要安装 Excel,不同的 Excel 版本,需要有针对性的建立组件。

三、使用第三方控件

XLSReadWrite 作为一个优秀的 *** 作 Excel 的控件,提供了简便快捷读取、写入Excel文件的好办法。示例代码:

var

  s:string;

  xls:TXlsReadWrite;

begin

  Xlsfilename:='c:\123xls';

  xlsread;

  s:=xlssheets[0]asstring[0,0];

  showmessage(s);

  xlssheets[0]asstring[0,0]:='新闻界';

  xlssavetofile('c:\234xls');

end;

优点:可在本机未安装 excel 的前提下读取 Excel 文件,读、写等 *** 作简便;缺点:第三方控件,需要自行安装 。

楼主,在所有的前提先,你要说出你用的是什么数据库

1、首先第20条记录,你的目的是什么,取出前20条记录?

2、id=20的:select from music where id=20

3、模糊:select from music where 字段名称 = ‘my’

向下SELECT

TOP

100

FROM

Table1WHERE

>

<本页分页标记>ORDER

BY

那我来告诉你吧

是一个键,

比如说编号

bh,

编号须是排序的。0-3000吧首先你取出table1表的第一条记录。

存放到一个变量里头,vartmplb:string;beginadotable1first;TMPlb:=ADOTable1FieldsFieldByName('bh')AsString;

//

这里取到的是第一条记录也就是值bh=0的记录送到tmplb变量里select

top

100

from

table1where

bh>TMPlb

//这里是你定义的分页标记,

where

bh>0

ORDER

BY

bhend;点击下一页时,就取出第100条记录的值送于tmplb,

select

top

100

from

table1where

bh>TMPlb

//这里是你定义的分页标记,

where

bh>100

ORDER

BY

bh这样你取的是100-200做个循环不就成了

procedure

GetSelectedRecord(DataSet

:

TDataSet;

FieldName

:

String;BookmarkList

:

TBookmarkList;

Strings

:

TStrings);//这个过程中的参数分别为:数据表、字段名称、书签、用来保存所选字段内容的//字符串(用于将内容传递到另一个单独窗体中的TLIST控件中)varI:

Integer;bm

:

TBookMark;beginStringsClear;with

Dataset

do

beginDisableControls;bm

GetBookMark;try//每个选择的记录都有一个书签标志,这就为处理它们提供了条件for

I

0

to

BookmarkListCount

-

1

do

beginBookmark

BookmarkList

;StringsAdd(DataSetFindField(fieldname)AsString);end;finallyGotoBookMark(bm);FreeBookMark(bm);EnableControls;end;end;end;调用举例:GetSelectedRecord(Table1,

'NAME',

DBGrid1SelectedRows,

Form2ListBox1Items

以上就是关于delphi中使用dbgird,如何点击鼠标获取点击的那一行数据全部的内容,包括:delphi中使用dbgird,如何点击鼠标获取点击的那一行数据、怎么在delphi中读取Excel数据 转、delphi SQL 怎样获取返回数据中某条记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9747083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存