delphi中如何实现对sql数据库记录进行添加,删除,修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中如何实现对sql数据库记录进行添加,删除,修改相关的知识,希望对你有一定的参考价值。

参考技术A 使用ADO,首先用ADOConnection对象建立连接,然后使用ADOQuery对象对数据库进行操作。
ADOQuery对象操作:
查询:先使用close;再设置SQL.text为SQL查询语句内容;最后使用OPEN方法打开
添加:Append或Insert;FieldByName('字段名').Value
:=
字段内容;Post;
修改:Edit;FieldByName('字段名').Value
:=
字段内容;Post;
删除:定位到指定记录(使用循环);Delete;
参考技术B 可以用ADO里的ADOQuery,ADOTable,ADOConnection都可以进行这类操作,例使用ADOQueryWith
ADOQuery1
dobegin
Close;SQL.Clear;
SQL.Add('Insert
into

(字段...)
Values
(字段值....)');
//添加记录
ExecSQL;
Close;SQL.Clear;
SQL.Add('Delete
from 表
Where
字段=值....');
//删除记录
ExecSQL;
Close;SQL.Clear;
SQL.Add('Update 表
Set 字段=值....
Where
条件');
//修改记录
ExecSQL;end;或者先打开记录,再直接操作With
ADOQuery1
dobegin
Close;SQL.Clear;
SQL.Add('Select
*
from 表
Where
字段=值....');
//查询记录
Open;
Append;
Fieldbyname('字段名').Value:=值;
//添加并赋值
post;
//提交
Edit;
Fieldbyname('字段名').Value:=值;
//修改+赋值
post;
//提交
Delete; //删除end;用ADO类的其它
控件
操作
方式
相似。

sql语句里如何实现给查询记录添加自然序号?

表a,数据:
id name
12 张三
13 李四
15 王五

想通过一条sql语句(mysql和sqlite里)实现获取这三条记录(假设该表不只有这三条记录),并且给每行前面加上从1开始的序号,变成
1 12 张三
2 13 李四
3 14 王五

请教

通过rownum实现即可。
sql:select rownum , * from tablename where 条件语句。
解释:rownum是隐藏的,查询结果默认从1开始编号,所以肯定会是自然编号的,有多少条,编号就到多少。
参考技术A select Row_NUMBER() OVER (ORDER BY a.id ASC)AS 序号,a.* from table a

或者:
select RANK() OVER (ORDER BY a.id ASC )AS 序号,a.* from table a

table写表名。追问

不行,在mysql 查询里运行不过,请问这是哪个数据库的语法?我希望是mysql或者sqlite的

追答

SQL Server 2008

追问

求mysql 或sqlite的语句,谢谢

参考技术B SELECT @rownum:=@rownum+1 AS rownum, a.*
FROM (SELECT @rownum:=0) r, a;
参考技术C select (@rowNO := @rowNo+1) AS rowno,username,cardnum from (SELECT username,cardnum FROM t_consumer where 1=1) a,(select @rowNO :=0) b

参考资料:http://blog.csdn.net/macwhirr123/article/details/7489484

参考技术D 添加字段,使用自动增长追问

中间删除某行数据,但是最后select出来的还要求是 1,2,3顺序数字。
你想的太简单了。

以上是关于delphi中如何实现对sql数据库记录进行添加,删除,修改的主要内容,如果未能解决你的问题,请参考以下文章

delphi 请问如何在SQL语句中实现对 Binary 类型的位运算?

delphi dbgrid筛选记录?

delphi中的SQL语句

delphi中如何使用SQL语句结果

delphi中如何得到SQL表中记录总数?

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