delphi adoquery的增删查改
来源:互联网 发布:火焰恶作剧软件 编辑:程序博客网 时间:2024/06/07 06:42
Delphi-ADOQuery查询、插入、删除、修改
//查询记录
procedure TForm1.Button1Click(Sender: TObject);beginADOQuery.Close;ADOQuery.SQL.Clear;ADOQuery.SQL.Add('select * from YourTABLE where 查询条件');ADOQuery.Open;
//插入记录
procedure TForm1.Button2Click(Sender: TObject);beginADOQuery.Close;ADOQuery.SQL.Clear;ADOQuery.SQL.Text:='insert into YourTABLE(字段1,字段2) values(:字段1,:字段2)';// ADOQuery.SQL.Add('insert into YourTABLE values(:字段1)');ADOQuery.Parameters.ParamByName('字段1').Value:=trim(Edit1.Text);ADOQuery.Parameters.ParamByName('字段2').Value:=trim(Edit2.Text);ADOQuery.ExecSQL;end;
//删除记录
procedure TForm1.Button3Click(Sender: TObject);beginADOQuery.Close;ADOQuery.SQL.Clear;ADOQuery.SQL.Text:='Delete from YourTABLE where 字段3=:字段3';//这里没有添加where的条件判断,实际使用时,注意添加判断// ADOQuery.SQL.Add('Delete from NEW_TABLE where 字段3=:字段3');ADOQuery.Parameters.ParamByName('字段3').Value:=trim(Edit3.Text);ADOQuery.ExecSQL;
//删除记录也可用DeleteRecords()函数
procedure DeleteRecords(AffectRecords: TAffectRecords = arAll);
这个函数有一个参数:AffectRecords可以取如下的值:
1、arCurrent :删除当前记录
2、arFiltered :删除符合Filter过滤后的所有记录(如果你使用Filter过滤的话)
3、arAll :删除所有记录
4、arAllChapters :Delete affects all chapters(ADO chapters)
//修改记录
procedure TForm1.Button4Click(Sender: TObject);beginADOQuery.Close;ADOQuery.SQL.Clear;ADOQuery.SQL.Text:='Update YourTABLE SET 字段4=:字段4';//这里没有添加where的条件判断,实际使用时,注意添加判断// ADOQuery.SQL.Add('Update YourTABLE SET 字段4=:字段4');ADOQuery.Parameters.ParamByName('字段4').Value:=trim(Edit4.Text);ADOQuery.ExecSQL;
//即时更新插入、删除、修改后的记录
在上面插入、删除、修改的语句后添加如下代码即可:
ADOQuery.Close;ADOQuery.SQL.Add('select * from YourTABLE where 查询条件');ADOQuery.Open;
//使用ADOQuery时注意:
1、如果你需要更改数据,query.requestlive必须为true
2、如果有输入参数的时候,容易出错,通常的错法是这样:
比如:“WHERE abc = : abc”
改正如下:“WHERE abc=:abc”就是说=:前后都不能留空格。
3、ADOQuery.Open与ADOQuery.ExecSQL 有不同之处。
ADOQuery.Open一般用在查询,select时候;而ADOQuery.ExecSQL用在insert,delete,update等。
//adoquery 的post属性 -------------
adoquery的post和UpdateBatch
Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库
当CursorType是ctKeySet或者ctStatic,并且LockType是ltBatchOptimistic的时候,数据DataSet是用批量更新的更新方式。这时,每条记录修改之后,用Post确认当前修改,但是确认后的数据却并没有立即写入数据库,而是保存于缓存之中。
当调用UpdateBatch的时候,这些缓存中的修改才写入数据库。
如果不是使用批量更新的方式的时候,Post的时候,确认的修改直接写入数据库。
////////////////////////Append和Insert的不同///////
Insert是在当前记录下插入数据(简称前插)
Append是在最后的记录下插入(简称后插)
- delphi adoquery的增删查改
- datagridview的增删改查
- jdbc的增删改查
- GridView 的增删改查
- 联系人的增删查改
- 数据库的增删改查
- Linq的增删改查
- Hibernate的增删改查
- 网页的增删改查
- struts2的增删改查
- XML的增删改查
- Hibernate的增删改查
- json的增删改查
- thinkphp的增删改查
- SQLite的增删改查
- sql的增删改查
- Hibernate的增删查改
- 数据库的增删改查
- 让我欣喜的一次聊天
- kindeditor及其他现在编辑器获取文章内容中的图片标签及其src实现
- 按身高排成两队问题 catalan数
- 职场中不可深交的五类人
- 《软件测试的艺术》 摘录
- delphi adoquery的增删查改
- WIN32编程之DialogBox
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 第10周项目1:求1000以内的所有偶数和(解法二)
- infobright with chartio
- 计算某年某月有多小天
- c#sealed的使用
- Sublime Text2配置SVN
- 经纬度坐标转换为屏幕坐标