实际上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文件的好办法。示例代码:
vars: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 怎样获取返回数据中某条记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)