主题:求助:PB数据库中的一个问题
跪求PB高手帮小弟解决一个问题,您可能是举手之劳,我是郁闷了很久了,不胜感激啊!
首先我通过“datebase”建立了两个表,表明分别是:userlogin和gzinfo 分别用来存放登录用户的用户名、密码和故障信息(就是该数据库里头所要求查询的信息)。
然后建立一个名为userlogin(名字随便起的)的APP应用,在userlogin的open事件中填写了下面代码:
SQLCA.DBMS="ODBC"
SQLCA.Database="userlogin"
SQLCA.DBParm="connectstring='DSN=userlogin;uid=dba;pwd=sql'"
Connect using SQLCA;
if SQLCA.Sqlcode<>0 then
messagebox("不能连接上数据库!",SQLCA.sqlerrtext)
return
else
open(w_login)
end if
然后又建立了三个窗口分别是:w_login w_main w_bianhao
窗口w_login是登录界面,输入用户名(从下拉框中选取)和密码后进入系统,因此我在open事件中填写如下代码:
ddplb_1.text=""
STRING uname
int i
// 声明游标ucur,其功能是从表中得到字段username中的姓名DECLARE ucur CURSOR FOR
SELECT username
FROM userlogin;
OPEN ucur;
i=1
FETCH ucur into:uname;
DO while SQLCA.SQLCODE=0
Ddplb_1.ADDitem(uname)
i++
FETCH ucur into : uname;
loop
close ucur;
在w_main窗口中设计了一个菜单,其中一个是“按编号查询(故障信息)”
点击该选项之后打开一个名为w_bianhao的子窗口,目的是在该窗口中实现按编号查询故障信息。
因此在其click事件中填写:open(w_bianhao)
在w_bianhao窗口的open事件中填写一下代码:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = true
SQLCA.DBParm = "ConnectString='DSN=gzinfo;UID=dba;PWD=sql'"
Connect Using SQLCA;
if sqlca.sqlcode=0 then
messagebox("提示:","连接数据库成功!")
else
messagebox("提示:","连接数据库出错!")
end if
问题就出在这里了,在运行时,点击按“编号查询”按钮之后先提示:“连接数据库出错”,然后点击确定按钮后打开w_bianhao窗口
在w_bianhao窗口的“查询”按钮的click事件中填写如下代码:
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
sle_7.text=""
sle_8.text=""
sle_9.text=""
sle_10.text=""
sle_11.text=""
mle_1.text=""
select "gzinfo"."gzno",
"gzinfo"."gzname",
"gzinfo"."gzjihao",
"gzinfo"."gzjibie",
"gzinfo"."gzhouguo",
"gzinfo"."gzdate",
"gzinfo"."gzbaogao",
"gzinfo"."gzdidian",
"gzinfo"."gzmiaoshu",
"gzinfo"."gzchuli",
"gzinfo"."gzyuanyin",
"gzinfo"."gzcankao",
into :sle_1.text,
:sle_2.text,
:sle_3.text,
:sle_4.text,
:sle_5.text,
:sle_6.text,
:sle_7.text,
:sle_8.text,
:sle_9.text,
:sle_10.text,
:mle_1.text,
:sle_11.text
from "gzinfo"
where "gzinfo"."gzno"=:sle_1.text
;
if sle_2.text=""then
messagebox("not found","没有此故障信息!")
sle_1.text=""
end if
sle_1.setfocus()
输入故障编号后点击查询,提示“没有此故障信息!”(在gzinfo的表中事先已经存有故障信息了)
怎么回事啊? 能帮我解决一下么? 谢谢啊~!
首先我通过“datebase”建立了两个表,表明分别是:userlogin和gzinfo 分别用来存放登录用户的用户名、密码和故障信息(就是该数据库里头所要求查询的信息)。
然后建立一个名为userlogin(名字随便起的)的APP应用,在userlogin的open事件中填写了下面代码:
SQLCA.DBMS="ODBC"
SQLCA.Database="userlogin"
SQLCA.DBParm="connectstring='DSN=userlogin;uid=dba;pwd=sql'"
Connect using SQLCA;
if SQLCA.Sqlcode<>0 then
messagebox("不能连接上数据库!",SQLCA.sqlerrtext)
return
else
open(w_login)
end if
然后又建立了三个窗口分别是:w_login w_main w_bianhao
窗口w_login是登录界面,输入用户名(从下拉框中选取)和密码后进入系统,因此我在open事件中填写如下代码:
ddplb_1.text=""
STRING uname
int i
// 声明游标ucur,其功能是从表中得到字段username中的姓名DECLARE ucur CURSOR FOR
SELECT username
FROM userlogin;
OPEN ucur;
i=1
FETCH ucur into:uname;
DO while SQLCA.SQLCODE=0
Ddplb_1.ADDitem(uname)
i++
FETCH ucur into : uname;
loop
close ucur;
在w_main窗口中设计了一个菜单,其中一个是“按编号查询(故障信息)”
点击该选项之后打开一个名为w_bianhao的子窗口,目的是在该窗口中实现按编号查询故障信息。
因此在其click事件中填写:open(w_bianhao)
在w_bianhao窗口的open事件中填写一下代码:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = true
SQLCA.DBParm = "ConnectString='DSN=gzinfo;UID=dba;PWD=sql'"
Connect Using SQLCA;
if sqlca.sqlcode=0 then
messagebox("提示:","连接数据库成功!")
else
messagebox("提示:","连接数据库出错!")
end if
问题就出在这里了,在运行时,点击按“编号查询”按钮之后先提示:“连接数据库出错”,然后点击确定按钮后打开w_bianhao窗口
在w_bianhao窗口的“查询”按钮的click事件中填写如下代码:
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
sle_7.text=""
sle_8.text=""
sle_9.text=""
sle_10.text=""
sle_11.text=""
mle_1.text=""
select "gzinfo"."gzno",
"gzinfo"."gzname",
"gzinfo"."gzjihao",
"gzinfo"."gzjibie",
"gzinfo"."gzhouguo",
"gzinfo"."gzdate",
"gzinfo"."gzbaogao",
"gzinfo"."gzdidian",
"gzinfo"."gzmiaoshu",
"gzinfo"."gzchuli",
"gzinfo"."gzyuanyin",
"gzinfo"."gzcankao",
into :sle_1.text,
:sle_2.text,
:sle_3.text,
:sle_4.text,
:sle_5.text,
:sle_6.text,
:sle_7.text,
:sle_8.text,
:sle_9.text,
:sle_10.text,
:mle_1.text,
:sle_11.text
from "gzinfo"
where "gzinfo"."gzno"=:sle_1.text
;
if sle_2.text=""then
messagebox("not found","没有此故障信息!")
sle_1.text=""
end if
sle_1.setfocus()
输入故障编号后点击查询,提示“没有此故障信息!”(在gzinfo的表中事先已经存有故障信息了)
怎么回事啊? 能帮我解决一下么? 谢谢啊~!