数据库上可以执行Insert、Update、Delete、Select等SQL语句,可以执行存储过程
1. Select语句
- 可以用标准数据集TSQLDataSet来执行
- 可以用TQuery执行
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语句到服务端,在客户端不作识别。
2. Insert、Update、Delete语句
- 可以用TQuery来执行
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来执行
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;
3. 存储过程
- 对于返回结果集的存储过程,用存储过程数据集TStoredProcDataSet调用
- 存储过程
CREATE PROCEDURE test_proc @inprm int , @inprm1 int AS select * from table1 where id=@inprm+@inprm1 GO
- 平台上调用方法
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
- 平台上调用方法
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调用
[[PageComment2()]]