在下拉窗口DDLB中选中一个学生号,则显示出这个学生号的记录,有几个问题请教????

Sunnysnow1 2003-07-15 09:54:06
我想实现:在下拉窗口DDLB中选中一个学生号,则显示出这个学生号的记录。

我在这个窗口中放了3个控件:

1.下拉窗口“ddlb_1”
2.放学生学号的的数据窗口“dw_1"
3.放学生记录的数据窗口“dw_2"

我已经在窗口中编程实现了下拉窗口“ddlb_1”放入学生的学号

在下拉窗口“ddlb_1”中选择事件“selectionchanged"

现在有这样几个问题:


1.想用SQL语句查询下拉窗口“ddlb_1”中选中的学号的记录,我是这样写的:
select *
from student
where sno="所选中的行”
在这里"所选中的行”如何表示????


2.我想在数据窗口“dw_2"显示上面的记录,该怎么写呢??????????


3.我在PB中放入SQL语句,是不是还要添加一些语句,才能用SQL语句???????









...全文
41 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunnysnow1 2003-07-16
  • 打赏
  • 举报
回复
谢谢楼上各位:)

我总结方法一共有3个:

1.用dw_2.retrieve(ls_string)参数形式显示窗口,这样不用SQL语句。

2.用SQL语句,一共得到5个变量,则建立5个“SLE”编辑框显示这5个数据。

3.用SETSQL语句。可是我不会写,那么应该怎么写呢?

4.还有其他方法吗?

sxn80 2003-07-16
  • 打赏
  • 举报
回复
SQL语句写法:在DW中点击SQL进入,如果你要以学号检索,那么你先定义一个变量用于得到参数,点击菜单DESIGN---RETRIEVAL AR...定义变量no,然后在窗体下面WHERE中写入:sno = :no 就可以了!只要执行1,dw_2.retrieve(ls_string),ls_string 就是传给dw的参数
sxn80 2003-07-15
  • 打赏
  • 举报
回复
1,不知道你select * from student where sno="所选中的行”中的所选中的行是他INDEX还是该行学生的学号(text)应该这样写:select *from student where sno=:ddlb_1.text(要在ddlb_1的selectionchanged事件中写)

2,要是在dw_2中显示所选内容,不用写SQL语句的。操作如下:首先在dw_2的constructor中写入:settransobject(sqlca),然后你dw_2中的datawindow中的要设置where语句,增加一变量:ls_no,然后where语句写成:select....where sno=:ls_no 然后在ddlb_1的selectionchanged中写入:dw_2.retrieve(text)即可
3,我不明白第三条是什么意思?
doublboy 2003-07-15
  • 打赏
  • 举报
回复
2、在数据窗口“dw_2"显示上面的记录:
使用retrieve('学生的唯一标识')
建立dw_2时将检索参数设为'学生的唯一标识'
3、在pb中直接使用sql语名,别忘了在语句未尾加“;”(分号)
Thinkinger 2003-07-15
  • 打赏
  • 举报
回复
1:string ls_string
ls_string = ddlb_1.text
select columnname1, columnname2, …… into :variable1, :variable2, ……
from student
where sno = :ls_string; //注意into后的用法,可以解释你问题3

2:dw_2的数据源里建一个检索字段对应sno列,然后在响应的事件里写:
dw_2.retrieve(ls_string)

3:参看问题1解答。
Thinkinger 2003-07-15
  • 打赏
  • 举报
回复
1:string ls_string
ls_string = ddlb_1.text
select columnname1, columnname2, …… into :variable1, :variable2, ……
from student
where sno = :ls_string; //注意into后的用法,可以解释你问题3

2:dw_2的数据源里建一个检索字段对应sno列,然后在响应的事件里写:
dw_2.retrieve(ls_string)

3:参看问题1解答。
Awang_126 2003-07-15
  • 打赏
  • 举报
回复
1. 所选中的行用
string ls_temp
string ls_name
string ls_sno
.
. //在这定义其他保存学生字段的变量
.
//程序可以这样写
ls_temp=ddlb.text
select name, sno..
into :ls_name,ls_sno..
from student
where sno=:ls_temp;
2.
可以用中各个变量来显示所选学生的信息了

3.
不须写其他的语句但要记住,SQL语句是用分号结尾的可以分行写但一定要以分号结束
Awang_126 2003-07-15
  • 打赏
  • 举报
回复
1. 所选中的行用
string ls_temp
string ls_name
string ls_sno
.
. //在这定义其他保存学生字段的变量
.
//程序可以这样写
ls_temp=ddlb.text
select name, sno..
into :ls_name,ls_sno..
from student
where sno=:ls_temp
2.
可以用中各个变量来显示所选学生的信息了

3.
不须写其他的语句但要记住,SQL语句是用分号结尾的可以分行写但一定要以分号结束
klbt 2003-07-15
  • 打赏
  • 举报
回复
下拉窗口“ddlb_1”?
应该是下拉列表框“ddlb_1”

1,106

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧