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;
大概思路就是这样,可以实现吗?有其它什么好的办法吗?
检查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 怎样获取返回数据中某条记录的主要内容,如果未能解决你的问题,请参考以下文章