sql adoquery 的用法

delphi ADOQuery 用法 



都知道Delphi在数据库操作是非常好用的,delphi把ADO一些方法属性都集成了,以下是我的一些总结:
***************************************
通过sql的存储过程来实现:
添加
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Insert Into Table1(Field1,Field2)')
SQL.Add(' Values(10,20)');
ExecSQL;
end;

修改
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Update Table1 Set Field1=20,Field2=30)')
ExecSQL;
end;

删除
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Delete From Table1')
SQL.Add(' Where Field1=20 and Field2=30');
ExecSQL;
end;

查询
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Select Field1,Field2 From Table1')
SQL.Add(' Where Field1=20 and Field2=30');
Open;
end;
***************************************************
通过Delphi自有的方法属性实现:

添加:
with ADOQuery1 do
append;
......
post;
删除:
with ADOQuery1 do
delete(选择删除的记录); //默认删除记录指针指向的记录
修改:
with ADOQuery1 do
edit;
......
post;


adotable1.Append; //添加
ADotable1.Fields.FieldByName('gxid1').Value:=gx;
adotable1.Post;

adotable1.delete; //删除

adotable1.edit; //修改
ADotable1.Fields.FieldByName('gxid1').Value:=gx;
adotable1.post;

WITHI adoquery do
begin//添加
adoquery.open;//motice set adoquery.sql
adoquery.append;//OR adoquery.insert;
fieldbyname(fieldname).asstring:=trim(edit1.text);
......
adoquery.post;
end;

删除:
adoquery.delete

修改:
adoquery.edit;
fieldbyname(fieldname).asstring:=trim(edit1.text);
有关细节可以参看帮助OR DEMO

 

三、

ADOQuery的几个事件

procedure ADOQuery1_BeforePost ( DataSet : TDataSet);

begin

end;

是在ADOQuery1或者相关联的DataSource的数据集改动后,在将改动保存到内存之前激发的事件,上次使用这个事件是用来判断修改之后的数据是否规范,如果不规范,就给出提示

示例如下: 要修改的列关联的Column Score

procedure ADOQuery1_BeforePost ( DataSet : TDataSet);

var 

score:string;

begin

score:=DataSet.FieldByName(‘score’).AsString; // 提取修改之后的数据

if (‘score不符合规则’) then 

self.msgWarning(‘’输入的数据有错); 

end;

procedure ADOQuery1_AfterScroll (DataSet: TDataSet);

begin

end;

是在点击与ADOQuery1相关联的DBGridEh1中的记录后激发的事件,可以用来做两个DBGridEh控件的关联事件

如:点击DBGridEh1 中的记录1,在DBGridEh2中就显示记录1的详细信息(DBGridEh2ADOQuery2相关联)(示例如下:

procedure ADOQuery1_AfterScroll (DataSet: TDataSet);

var 

sql : string;

begin

sql:=’select * from tableneme where key=’”+ADOQuery1.fieldbyname(‘key’).AsString+”’’

ADOQuery2.SQL.Close;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add(sql);

ADOQuery2.SQL.Open;

end;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值