数据库端SQL2000中建有一数据库:人事管理系统库,含员工表(工号,姓名,部门...)和工资表(工号,年份,月份,基本工资...),现在想在客户端查询某年某月某部门某人的工资数据.数据库端的存储过程怎么写,还有客户端是不是用DbGrid1 DataSource1 AdoStoredProc1. 把查询结果显示到DbGrid1上.要不要用Query1呢?搞不懂了我好闷愈!
解决方案 »
- 急求合作发伙伴!!
- TRealAudio控件问题
- 关于汉字处理的问题
- 请教大家一个问题:如何将SWF格式转成SCR等格式?
- 怎样将下载的Fomula One 6 作为ActiveX 安装到我的BCB中呢?
- 如何将DATASET导出为WORD文档?
- 分布式开发的疑问???
- 100分可以再加 关于用SQL SERVER DMO对象生成数据库脚本的问题
- 键盘控制如何做
- 在delphi中,我想要查询在姓名中含有“英”的所有的姓名,如何做?
- 我是用ORACLE数据库,使用oraquery查询显示数据,因为数据量比较大,有等待时间,我想查询中中断查询,因该怎么搞,唉????
- 多线程查询数据库(要支持100个线程以上)
要不要用Query1呢?
----》》
不必!
设置参数就可一了
create procedure GetHRInfo
@Salary varchar(20)
as
begin
select a.salary from HR b,GZ a where b.id=a.id and a.salary=@Salary
end
Go
@xm varchar(20) as
begin
select a.salary from 工资表 a,员工表 b where b.工号=a.工号 and a.姓名=@xm
and b.年份=@Lyear and b.月份= @Lmonth and a.部门=@bm
end
DataSource1.dataset := ADOQuery1
with ADOQuery1 do
begin
close;
sql.clear;
sql.text := 'select * from 表';
open;
end;
唯一的区别就是AdoStoredProc1调用的一定是已经存在的,而TQuery可以调用动态的(也就是说可以在Sql.text:='写你需要的过程').