用delphi怎么实现把SQL中的存储过程显示在label的caption上呀?————某软件公司的面试题
用SQL建一数据库,然后建一存储过程(查询功能嘛),然后在delphi的form上放一个label控件,
要求是:当label的单击事件时,SQL的存储过程的查询结果便显示在label的caption上面,具体代码怎么写呀?
写出者立即给分。
问题点数:20、回复次数:23Top
1 楼woaichenyu(小吴)回复于 2004-12-04 15:42:33 得分 0
会者都来看看呀Top
2 楼fffddd(假钞换贞操)回复于 2004-12-04 15:56:48 得分 0
关注一下。和普通的查询不一样吗?Top
3 楼woaichenyu(小吴)回复于 2004-12-04 16:04:28 得分 0
我想应该还是有点区别呀
在delphi下面执行存储过程的代码怎么写呀
查询出来是一表格,怎么写进caption呀
Top
4 楼Northwindrocker(北风)回复于 2004-12-04 16:14:01 得分 2
我日这么简单的东西啊!吓我一跳我以为要把store procedure本身代码写到label上呢
调用store procedure和普通的查询基本上一样
store procedure 这样写
create procedure p1
Top
5 楼Northwindrocker(北风)回复于 2004-12-04 16:25:00 得分 3
靠没写完按了确定
create procedure p1
@id int output
as
begin transaction
select @id = max(p_id) from table1
if @@error <> 0 rollback transaction
else commit transaction //当然这里只是查询可以不要判断错误发生
然后你在delphi中用adostroedproc控件使用这个procedure
with adostoredproc1 do
beign
open;//注意如果没有返回结果的是execproc
label1.caption := fields[0].asstring;
end;
Top
6 楼Northwindrocker(北风)回复于 2004-12-04 16:27:10 得分 0
最后有点错误
label1.caption := inttostr(parameters.paramvalus['id']);Top
7 楼zzlazio(sritsb)回复于 2004-12-04 17:03:09 得分 0
晕..
查询出来的应该是表格形式的了..
Caption显示??Top
8 楼rouqing(*冰雨&双子座奇缘*)回复于 2004-12-04 17:07:14 得分 1
得看看存储过程返回怎么样的数据了,用label显示可能只有一个值吧?
比如查询sum(salary),呵呵Top
9 楼rouqing(*冰雨&双子座奇缘*)回复于 2004-12-04 17:08:05 得分 1
实际上具体的要看存储过程如何Top
10 楼fatcatman()回复于 2004-12-04 17:16:06 得分 1
请问楼主是不是去金意面试过?Top
11 楼yongheng0866(恒久地平线)回复于 2004-12-04 17:34:07 得分 0
怎么和我的面试题 一模一样啊 你到哪里去面试的哦?Top
12 楼Figo1104(倾倒一片)回复于 2004-12-04 19:10:15 得分 5
在SQL查询分析器里创建存储过程
if exists(select name from sysobjects where name='Query'and type ='p')//如果存储过程存在先删除
Drop procedure Query
//创建存储过程
create procedure Query @学号 char(4),@姓名 varchar(10) output//姓名为输出参数
AS
select @姓名=name from student where Sno=@sno
GO
procedure TF_change.BitBtn1Click(Sender: TObject);
begin
Query1.close;
Query1.SQL.Text:='Exec Query_person :@学号,:@姓名';
Query1.Parameters.ParamByName('@学号').Value:=Edit_id.Text;//输入学号查询
Query1.Open;
Label1.caption := Query1['姓名'];
end;
Top
13 楼markdean(无马骑士)回复于 2004-12-04 19:55:33 得分 0
出题的人有问题。Top
14 楼woaichenyu(小吴)回复于 2004-12-04 20:03:44 得分 0
怎么上面的各位老大怎么连ADO连接组件都没有用上就做起来了昵
Top
15 楼woaichenyu(小吴)回复于 2004-12-05 11:54:27 得分 0
晕..
查询出来的应该是表格形式的了..
Caption显示??
Top
16 楼vfork(學習htm、css、js、java,然後到ajax。)回复于 2004-12-05 11:57:29 得分 1
靠,把各个字段的string +起来然后给caption就是的啊.Top
17 楼hongke212(寒星)回复于 2004-12-05 15:03:01 得分 0
学习中...........Top
18 楼Figo1104(倾倒一片)回复于 2004-12-05 18:50:32 得分 4
晕..
查询出来的应该是表格形式的了..
Caption显示??]]
在SQL查询分析器里创建存储过程,我把代码改简单一点
if exists(select name from sysobjects where name='Query_person'and type ='p')//如果存储过程存在先删除
Drop procedure Query
//创建存储过程
create procedure Query_person @学号 char(4)
AS
select *from student where Sno=@sno
GO
procedure TF_change.BitBtn1Click(Sender: TObject);
begin
Query1.close;
Query1.SQL.Text:='Exec Query_person :@学号,:@姓名';
Query1.Parameters.ParamByName('@学号').Value:=Edit_id.Text;//输入学号查询
Query1.Open;
Label1.caption := Query1['姓名'];
end;
我比你还晕哟,caption显示的只是查出来的数据一个姓名字段而已,用DBGrid显示的是整条记录用表格显示
Top
19 楼windy_224(边Cheng浪子)回复于 2004-12-05 19:29:43 得分 0
呵呵!
只是显示一个值吗???Top
20 楼anbangs(大邦)回复于 2004-12-06 00:14:23 得分 0
有搞头吗?Top
21 楼pdbird(老巢)回复于 2004-12-06 10:25:32 得分 2
用SQL建一数据库,然后建一存储过程(查询功能嘛),然后在delphi的form上放一个label控件,
要求是:当label的单击事件时,SQL的存储过程的查询结果便显示在label的caption上面,具体代码怎么写呀?
答:要分情况进行分析:
1、如果查询不是一条记录,那应当就是用游标进行返回,这时就应当先得到总条数,然后写一个循环,一条条的记录写到label上面。
2、如果是查询总数什么的,只返回一条记录,就可以直接赋给label.caption了。Top
22 楼pengxuan(网虫先生)回复于 2004-12-06 11:17:07 得分 0
楼上正解。循环赋值加回车换行不就可以显示得一样了嘛。Top
23 楼woaichenyu(小吴)回复于 2004-12-06 12:05:31 得分 0
: pengxuan(网虫先生) \ pdbird(老巢)
两位高手可否把源代码贴出来看一下呀
Top




