起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 318|回复: 3

[分享]执行SQL语句**

[复制链接]
发表于 2008-8-25 15:58:02 | 显示全部楼层 |阅读模式
数据库上可以执行Insert、Update、Delete、Select等SQL语句,可以执行存储过程
回复

使用道具 举报

 楼主| 发表于 2008-8-25 15:58:22 | 显示全部楼层

Select语句

1. Select语句
可以用标准数据集TSQLDataSet来执行
可以用TQuery执行

Toggle line numbers
   1 lQuery := TQuery.Create(Self);
   2 lQuery.ConnectionString := 'DATABASEURL=BIZ:\Operation\OperationDB.DATABASE';
   3 lQuery.CommandText := 'SELECT * FROM CRM_Customer';
   4 lQuery.Open;
注:标准数据集和TQuery是有区别的,用标准数据集会自动的识别平台上定义的各种策略,字段上定义的查找属性、自动填充等属性,而用TQuery则直接发SQL语句到服务端,在客户端不作识别。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 15:58:44 | 显示全部楼层

Insert、Update、Delete语句

2. Insert、Update、Delete语句
可以用TQuery来执行

Toggle line numbers
   1 lQuery := TQuery.Create(Self);
   2 try
   3   lQuery.ConnectionString := 'DATABASEURL=BIZ:\Operation\OperationDB.DATABASE';
   4   lQuery.CommandText := 'UPDATE CRM_Customer SET CustomerName="AAA" WHERE CustomerID="111"';
   5   lQuery.Execute;
   6 finally
   7   lQuery.Free;
   8 end;
可以用数据连接TConnection来执行

Toggle line numbers
   1 lConnection := TConnection.Create(Self);
   2 try
   3   lConnection.ConnectionString := 'DATABASEURL=BIZ:\Operation\OperationDB.DATABASE';
   4   lConnection.ExecuteSQL('UPDATE CRM_Customer SET CustomerName="AAA" WHERE CustomerID="111"');
   5 finally
   6   lConnection.Free;
   7 end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 15:59:07 | 显示全部楼层

存储过程

存储过程
对于返回结果集的存储过程,用存储过程数据集TStoredProcDataSet调用
存储过程

CREATE PROCEDURE test_proc
  @inprm  int ,
  @inprm1 int
AS
  select * from table1 where id=@inprm+@inprm1
GO
平台上调用方法

Toggle line numbers
   1 //DataSetCCGCSJJ1: TStoredProcDataSet;   存储过程数据集控件.
   2 DataSetCCGCSJJ1.Params.ParamByName('@inprm').AsInteger:=1;
   3 DataSetCCGCSJJ1.Params.ParamByName('@inprm1').AsInteger:=2;
   4 DataSetCCGCSJJ1.Open;
对于不返回结果集的存储过程,用存储过程TStoredProc调用
存储过程

CREATE PROCEDURE test_proc
  @inprm   varchar(255) ,
  @inprm1  varchar(255) ,
  @inprm2  varchar(255) ,
  @outprm  varchar(255) output,
  @outprm1 varchar(255) output,
  @outprm2 varchar(255) output
AS
  select @outprm=@inprm+@inprm1+@inprm2
  select @outprm1=@inprm1+@inprm2+@inprm
  select @outprm2=@inprm2+@inprm1+@inprm
GO
平台上调用方法

Toggle line numbers
   1 //StoredProc1: TStoredProc;   存储过程控件.
   2 //Memo1: TMemo 显示存储过程返回参数用.
   3 StoredProc1.Params.ParamByName('@inprm').AsString:='1';
   4 StoredProc1.Params.ParamByName('@inprm1').AsString:='2';
   5 StoredProc1.Params.ParamByName('@inprm2').AsString:='3';
   6 StoredProc1.Execute;
   7 Memo1.Lines.Add(StoredProc1.Params.ParamByName('@outprm').AsString);
   8 Memo1.Lines.Add(StoredProc1.Params.ParamByName('@OUTPRM1').AsString);
   9 Memo1.Lines.Add(StoredProc1.Params.ParamByName('@OUTPRM2').AsString);
对于不返回结果集,也没有返回参数的,可以用存储过程TStrocProc调用,也可以用TQuery调用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 23:45 , Processed in 0.040788 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表