powerbuilder初试——揭开那层薄纱

今天我们认识一个新朋友:powerbuilder,首相我们通过网络上的解释先解开第一层面纱:

百科:

        PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和WindowsNT的一个集成化开发工具。它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连。

优缺点:

优点:

        1,小型开发效率高

        2,简单,封装较好

        3,提供b/s开发

缺点:

        1,执行效率低

        2,b/s开发效果非常不理想

        3,PB与其他技术的集成不好


        无论如何他是我们自考中要学习的一门技术,经过2-3天的研究,今天将增删改查的几个例子展现给大家:


例子:

基本步骤:

        第一步:建立数据库
        第二步:建立ODBC数据源
        第三步:连接PB
        第四步:编写代码

详细描述:

第一步:建立数据库

        这里不再赘述,按照传统的方法,建立一个sql数据库。

第二步:建立ODBC数据源

        建立一个公共的ODBC数据源传统方法不再展示,在pb中的方法是:

                                               powerbuilder初试——揭开那层薄纱_第1张图片

        进入我们熟悉的设置界面

                                      powerbuilder初试——揭开那层薄纱_第2张图片

第三步:连接PB

       在PB中建立新的数据连接:

                                                                         powerbuilder初试——揭开那层薄纱_第3张图片

第四步:编写代码


        以用户管理为例

1,连接数据库

(1)代码:

SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="Connectstring='DSN=mysqlxvshu;uid=sa;pwd=123456'"
CONNECT USING SQLCA;
open(w_login)


2,添加用户

(1)界面:

                                                                       powerbuilder初试——揭开那层薄纱_第4张图片

(2)代码:

//通过用户名查看是否已经有此用户
string strPwd
string strRole
string strrolename

strrolename="管理员"
if trim(ddlb_role.text)=strrolename then
	strRole="1"
else
	strRole="2"
end if 

SELECT pwd
INTO :strPwd
from "T_User"
where "T_User"."UserName"=:sle_username.text;

//SQLCode=100证明没有找到记录,此用户合法
if SQLCA.SQLCode=100 then

	INSERT INTO T_User(UserName,pwd,role)
	values (:sle_username.text,:sle_password.text,:strRole);
	messagebox("提示","添加成功")
else
	//提示用户重名
	messagebox("提示","此用户名已经存在,请您输入其他的用户名")
	sle_username.text=""
	sle_username.SetFocus()
end if 
	


3,查询用户

(1)界面:

                                                    powerbuilder初试——揭开那层薄纱_第5张图片

(2)代码:

界面开始初始化数据显示:

dw_user.SetTransObject(SQLCA)
dw_user.Retrieve()
st_time.text="当前日期:"+string(today(),"yyyy-mm-dd")


查询按钮:

if trim(sle_username.text)="" then
	messagebox("提示","用户名不能为空")
else
	
	dw_user.setfilter("Username like '%"+sle_username.text+"%'")
	dw_user.filter()
	dw_user.SetFocus()

end if 


4,修改密码

(1)界面:

                                                                     powerbuilder初试——揭开那层薄纱_第6张图片

(2)代码:

确认按钮:

if trim(sle_new.text)="" then
	messagebox("提示","新密码不能为空,请您重新输入")
	sle_new.setfocus()
else
	update T_User
	set pwd=:sle_new.text
	where UserName=:PUBstrusername ;
	messagebox("提示","修改成功")
end if 


5,删除用户

(1)界面:

                                                                     powerbuilder初试——揭开那层薄纱_第7张图片

(2)代码:

删除按钮:

//存储用户角色
string strRole

//判断输入的用户名是否为空
if trim(sle_putname.text)="" then
	messagebox("提示","用户名不能为空")
else
	
	//通过用户名找到权限
	SELECT role
	INTO :strRole
	from "T_User"
	where "T_User"."UserName"=:sle_putname.text;
	
	
	//判断用户是否存在
	if SQLCA.SQLCode=100 then
		messagebox("提示信息","您输入的用户不存在!")
	else
	
		delete 
		from T_User
		where "UserName"=:sle_putname.text;
		messagebox("提示","删除成功")
		
	//判断用户结束标志	
	end if

//是否为空结束标志
end if

总结:

        在没有实践之前,觉得这是个新东西,挺难的,但是当事情逼到自己头上,硬着头皮跟着教科书的目录,发现90%都是相似的,都是自己以前学过的东西,唯一有点不同的就是语法结构,和事件表示!

        “不怕不知道,就怕不知道”

        我们被知道和不知道折腾的很久了,但是有个问题是他们的前提,就是客服“怕”的心理,相信我们自己的能力,学到了这个年纪,我们应该知道,基础的学习我们掌握了,那么其他上层学习只是换了个表皮而已,俗话说的换汤不换药!

        相信自己,自己就能超越自己,这就是我们这个时代的奇迹!信息时代的奇迹!


你可能感兴趣的:(编程,数据库,PowerBuilder)