delphi SQL 怎样获取返回数据中某条记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi SQL 怎样获取返回数据中某条记录相关的知识,希望对你有一定的参考价值。

您好。这样的我用Adoquery组件查询数据库中信息,返回记录的条数是50条,我想获取这50条记录中第20条记录的信息。Adoquery的SQL应该怎么写。
比如:
SQL查询:select * from music order by ID

我想看ID=20的字段为 musicName的信息。
还有一个模糊查询的问题:
我想增加一个搜索功能:
通过搜索类别:比如我的音乐表里有中文和英文,我想搜索这字段[英文]中music字段含有 my的记录,SQL怎么写。

求教。谢谢。
不好意思,上面那个查询语句弄错了,实际用的是这样的:
查询的SQL:select * from music where fileClass='Newage';

返回50条记录fileclass 为newage的。其中ID可能不是有序的,所以用ID=20来查第20条记录是不行的.
我想对返回的数据做个循环,来做一个分页的效果,
大概就是
如果返回数据大于30条
循环0-29
str := 返回记录中的第i条.fieldByName('MusicName').asstring

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

1、首先第20条记录,你的目的是什么,取出前20条记录?
2、id=20的:select * from music where id=20
3、模糊:select * from music where 字段名称 = ‘my’追问

我用的access
我想通过循环返回的数据来做一个分页的
比如:每页只显示30条记录,
if (返回记录大于30条)then
begin
for i=0 to 29 do
begin
str :=返回记录中的第i条.fieldByName('musicName').asstring.
str :=创建控件的名字
end;
end;
大概思路就是这样,可以实现吗?有其它什么好的办法吗?

参考技术A select * from music where 英文 like '%my%'

检查FMDB中某条记录之后或某条记录之前是不是存在行

【中文标题】检查FMDB中某条记录之后或某条记录之前是不是存在行【英文标题】:Checking if an row exist after a certain record or before a certain record in FMDB检查FMDB中某条记录之后或某条记录之前是否存在行 【发布时间】:2014-02-24 04:36:13 【问题描述】:

我正在制作一个应用程序,它需要我遍历存储在内部 SQLite 数据库中的数据列表。我在我的应用程序中使用 FMDB 进行所有数据库操作。如果显示的数据有下一个记录或上一个记录,我希望我的“下一个”和“上一个”可用,否则,按钮将被禁用以进行相应的操作。我正在发送用户单击数据列表以转到“数据视图区域”的数据的 ID。

我的表结构是

create table messagelist(id int primary key, title text, time text, message text)

在“数据视图区域”中,我触发了查询

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"message.sqlite"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
NSString *query = @"SELECT *,(SELECT id FROM messagelist WHERE id < ";
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
query = [query stringByAppendingString:@" ORDER BY id DESC LIMIT 1) AS previous_id,(SELECT id FROM messagelist WHERE id > "];
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
query = [query stringByAppendingString:@" ORDER BY id ASC LIMIT 1) AS next_id FROM messagelist WHERE id = "];
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
FMResultSet *results_one = [database executeQuery:query];
if([results_one next])


    NSLog(@"Previous id is %d and next id is %d", [results_one intForColumn:@"previous_id"],[results_one intForColumn:@"next_id"]);

这并没有返回任何东西,但是我的应用程序的 Android 版本可以很好地处理这个查询。我哪里做错了?

N:B:- 我只是通过导入 SQLite 浏览器来查看数据库,我发现没有插入 id,怎么可能,id 被声明为主键,因此它应该自动插入并相应增加.

【问题讨论】:

【参考方案1】:

自己解决了。没有像我写的那样插入主键 创建表消息列表(id int 主键,标题文本,时间文本,消息文本)而不是 创建表messagelist(id INTEGER PRIMARY KEY, title text, time text, message text)

已解决!!!!

【讨论】:

以上是关于delphi SQL 怎样获取返回数据中某条记录的主要内容,如果未能解决你的问题,请参考以下文章

怎样获取数据库中某一个字段长度最长的那条记录

SQL 表中如何让某条记录的某个属性值与另一个表中的某条记录的某个属性值相关联

使用BootStrap模态框修改表格中某条数据

ASP+ACCESS里怎样按某条字段值自定义排序?

开发技巧-如何获取表记录的主键

怎样用sql语句取表里第n条记录的数据啊(用Delphi实现)