PB程序 访问服务器的数据库成功,但是程序出错!!!

flakyxd 2018-10-06 02:06:35
如图:



环境PB5开发的ERP系统程序,之前连接的是Win2003 里的sql 2000.
电脑服务器坏了之后,就把数据库物理拷贝出来,附加到新的电脑服务器里的 sql 2000里。
然后,客户端就连接不上,提示:unable to connect: SQL server is unavailable or does not exist
连接方式:
[Database]
Vendors=ODBC,SYB SQL Server v4.x,SYC Sybase System 10 CTLIB,IN5 I-Net v5.x,MSS (Msoft) SQL Server 6.0,O71 ORACLE v7.1,O72 ORACLE v7.2
DBMS=MSS
ServerName=SQLSERVER
Database=dbname
UserID=
DatabasePassword=
LogId=sa
LogPassword=sapd
DbParm=

用上面这个方式连接不了新电脑里的数据库,但是我用其他客户端可以连接新电脑里的数据库。

后来换了个连接方式:

[Database]
Vendors=ODBC,SYB SQL Server v4.x,SYC Sybase System 10 CTLIB,IN5 I-Net v5.x,MSS (Msoft) SQL Server 6.0,O71

ORACLE v7.1,O72 ORACLE v7.2
DBMS=ODBC

; DBParm=DelimitIdentifier can be added to DbParm
; to control whether quotes are placed around
; table and column names in SQL
; DbParm=DelimitIdentifier='YES'
DbParm="ConnectString='DSN=odbc1;database=dbname;server=SQLSERVER;UID=sa;PWD=sa'"
connect;


这个odbc1在客户端里的ODBC数据源里添加了,然后成功连接数据库,程序也可以登录了
但是用的过程中出现了


另外,我在服务器里用程序也可以连接登录,也不会出现这个错误,操作也正常。
我试过在win2008服务器里安装sql2008结果也一样。
有没有办法解决客户端连接登录后操作不会出错的办法?
这个ERP系统叫融丰,找了他们的电话已经没有这个公司了。
...全文
714 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
flakyxd 2018-10-22
  • 打赏
  • 举报
回复
引用 29 楼 r00_a2lBUR 的回复:
那么老的系统还能运行,厉害啊

确实挺强的,客户端到win7还能正常运行很不错。
r00_a2lBUR 2018-10-21
  • 打赏
  • 举报
回复
那么老的系统还能运行,厉害啊
WMERP 2018-10-19
  • 打赏
  • 举报
回复
PB runtime 工具包,你试试找找瞎子啊或者在PB开始菜单中中自己制作一个
flakyxd 2018-10-19
  • 打赏
  • 举报
回复
能连接的客户端还有个必要条件就是,服务器的区域语言和高级选项里必须选英语或日语就可以连接,而且不出错。
或是不改区域语言和高级选项,sql server 的服务器设置里 默认语音改为 英语也可以连接,而且不出错。
但是其他客户端还是无法连接
flakyxd 2018-10-19
  • 打赏
  • 举报
回复
我现在可以连接的客户端的PB都是60版本的DLL,复制到其他客户端后注册失败
flakyxd 2018-10-18
  • 打赏
  • 举报
回复
今天在一台客户端里安装了PB开发工具各个版本后,就可以连接服务器了,而且不出错。
难道我要每台客户端都安装PB开发工具吗?这个不现实。。。
flakyxd 2018-10-16
  • 打赏
  • 举报
回复
引用 21 楼 yusantos 的回复:
看一下你的客户端软件目录里面是否有这个文件。ntwdblib.DLL 没有的话网上下一个放进来。再试一下。

有,版本是6.50.409
flakyxd 2018-10-16
  • 打赏
  • 举报
回复
引用 22 楼 wosind 的回复:
用的IP还是实例名访问。
telnet端口有没有正常打开。
本机访问、局域网问、互联网访问是有区别的,本机能访问不能说明其他方式就没有问题。

用IP和实例名访问都试过了结果一样。
局域网问不能访问
aolixiaox 2018-10-12
  • 打赏
  • 举报
回复
用的IP还是实例名访问。
telnet端口有没有正常打开。
本机访问、局域网问、互联网访问是有区别的,本机能访问不能说明其他方式就没有问题。
yusantos 2018-10-12
  • 打赏
  • 举报
回复
看一下你的客户端软件目录里面是否有这个文件。ntwdblib.DLL 没有的话网上下一个放进来。再试一下。
flakyxd 2018-10-12
  • 打赏
  • 举报
回复
虽然看到了连接参数,但是参数是没问题的。不知道为什么连接不了
同样配置文件timeway.ini 我在服务器本机上可以连接,在客户端就不能连接
问题还是出在服务器那里
我理解的DBMS=MSS (Msoft) SQL Server 6.0 这个方式是 Microsoft SQL Server类型的OLE DB
到底是什么呢?
yusantos 2018-10-12
  • 打赏
  • 举报
回复
这么老的系统还在用,不容易。赶紧换SAP吧。
flakyxd 2018-10-10
  • 打赏
  • 举报
回复
看了ddlb_1.text = ProfileString ("timeway.ini", "database", "dbms", "")
ddlb_1的属性里看到如下 有string Item[]={"ODBC"


inherited from dropdownlistbox
int X=605
int Y=1185
int Width=978
int Height=404
int TabOrder=140
boolean VScrollBar=true
long BackColor=12639424
int TextSize=-9
int Weight=400
string FaceName="Arial"
FontFamily FontFamily=Swiss!
FontPitch FontPitch=Variable!
string Item[]={"ODBC",&
flakyxd 2018-10-10
  • 打赏
  • 举报
回复
真正读取的是timeway.ini

/* Populate sqlca from current PB.INI settings */
ddlb_1.text = ProfileString ("timeway.ini", "database", "dbms", "")
//sqlca.database = ProfileString ("timeway.ini", "database", "database", "")
sle_1.text = ProfileString ("timeway.ini", "database", "userid", "")
sle_2.text = ProfileString ("timeway.ini", "database", "dbpass", "")
sle_4.text = ProfileString ("timeway.ini", "database", "logid", "")

sle_3.text = ProfileString ("timeway.ini", "database", "LogPassWord", "")

//sqlca.servername = ProfileString ("timeway.ini", "database", "servername", "")
sle_6.text = ProfileString ("timeway.ini", "database", "dbparm", "")
sle_5.text = ProfileString ("timeway.ini", "database", "lock", "")
sle_7.text = ProfileString ("timeway.ini", "database", "prompt", "")
CHOOSE CASE upper(ProfileString ("timeway.ini", "database", "autocommit", ""))
CASE 'TRUE'
sqlca.AutoCommit = TRUE
CASE 'FALSE'
sqlca.AutoCommit = FALSE
END CHOOSE


st_10.text = GLOBAL_VENDOR_NAME
st_11.text = GLOBAL_VENDOR_NAME_E
string ls_add_string,ls_add_string2,string_I,string_J
Integer I,J

ddlb_server_name.SetRedraw(false)
ddlb_server_name.Reset( )
ddlb_database_name.SetRedraw(false)
ddlb_database_name.Reset( )

if FileExists("timeway.ini")=false then
messagebox("问题","资源文件‘TIMEWAY.INI’未发现!")
// close(w_m_login1)
else
string_J = ProfileString ("timeway.ini", "TW_MRPII", "I", "")
J=integer(string_J)
FOR I=1 TO J
string_I = "servername" + string(I)
ls_add_string = ProfileString ("timeway.ini", "TW_MRPII", string_I, "")
ddlb_server_name.AddItem(ls_add_string)
string_I = "database" + string(I)
ls_add_string2 = ProfileString ("timeway.ini", "TW_MRPII",string_I, "")
ddlb_database_name.AddItem(ls_add_string2)
NEXT
end if

ddlb_server_name.SetRedraw(true)
ddlb_database_name.SetRedraw(true)
ddlb_server_name.selectitem(1)
ddlb_database_name.selectitem(1)

LOGIN_NUMBER = 0
//sle_password.setfocus()
sle_user_name.setfocus()
setpointer(arrow!)
flakyxd 2018-10-10
  • 打赏
  • 举报
回复
引用 15 楼 wosind 的回复:
PBKiller2.5.18
9以前的版本都可以反编译


//string name
int rownum
this.triggerevent("timeway_splash")
//this.postevent("timeway_splash")
/* Populate sqlca from current PB.INI settings */
//sqlca.DBMS = ProfileString ("pb.ini", "database", "dbms", "")
sqlca.DBMS = ddlb_1.text
//sqlca.database = ProfileString ("pb.ini", "database", "database", "")
sqlca.database = ddlb_database_name.TEXT
//sqlca.userid = ProfileString ("pb.ini", "database", "userid", "")
sqlca.userid = sle_1.text
//sqlca.dbpass = ProfileString ("pb.ini", "database", "dbpass", "")
sqlca.dbpass = sle_2.text
//sqlca.logid = ProfileString ("pb.ini", "database", "logid", "")
sqlca.logid = sle_4.text
//sqlca.logpass = ProfileString ("pb.ini", "database", "LogPassWord", "")
sqlca.logpass = sle_3.text
//sqlca.servername = ProfileString ("pb.ini", "database", "servername", "")
sqlca.servername = ddlb_server_name.TEXT
//sqlca.dbparm = ProfileString ("pb.ini", "database", "dbparm", "")
sqlca.dbparm = sle_6.text
sqlca.lock = sle_5.text
sqlca.AutoCommit = true

string SYSTEM_STR

window wo
SYSTEM_STR = ProfileString ("timeway.ini","TW_MRPII","SYSTEM_STR","")
/* Uncomment the following for actual DB connection */
setpointer(hourglass!)
connect;

if sqlca.sqlcode <> 0 then
MessageBox ("Connect error","数据库连接错误:无法连接数据库." + sqlca.sqlerrtext)
return
end if


setpointer(hourglass!)
//if KeyDown(KeyEnter!)=TRUE then
integer PRIVIILEGE_VAR
string USER_NAME_VAR,PASSWORD_VAR
USER_NAME_VAR = w_m_login1_inv.sle_user_name.text
PASSWORD_VAR = w_m_login1_inv.sle_password.text
SELECT max(dbo.M_LOGIN.PRIVIILEGE)
INTO :PRIVIILEGE_VAR
FROM dbo.M_LOGIN
where LOGIN_NAME = :USER_NAME_VAR and PASSWORD = :PASSWORD_VAR;
USERNAME_FIRST = USER_NAME_VAR
IF PRIVIILEGE_VAR > 0 THEN
date dtu
dtu = date(2198,12,31)
if dtu < today() then
messagebox("OK","系统连接出错!")
close(parent)
return
end if
declare dtu procedure for sysdtu;
sqlca.sqlcode = 0
execute dtu;
// messagebox('sqlca.sqlcode',string(sqlca.sqlcode))
if sqlca.sqlcode < 0 then
messagebox("Call vendor","请联系软件供应商...,系统连接出错!")
close(parent)
return
end if
// messagebox('SYSTEM_STR',left(SYSTEM_STR,5))
name=sle_user_name.text
select count(*) into :rownum from m_login
where login_name = :name and
(part ='3' or part = '13');
if rownum<1 then
messagebox("OK","你不是本模块用户,无权使用本模块.~r~n欲要使用本模块,请联系系统管理员.")
disconnect;
return
end if
if left(SYSTEM_STR,5) = 'W_SYS' then
// Open (wo,SYSTEM_STR)
// else
Open (w_genapp_frame_inv)
end if
close(parent)
// sle_password.setfocus()
ELSE
messagebox('OK!','非法用户名或口令!')
disconnect;
LOGIN_NUMBER = LOGIN_NUMBER + 1
setpointer(arrow!)
if LOGIN_NUMBER > 2 then
messagebox('Exit','您无权使用本系统!')
setpointer(arrow!)
close(parent)
end if
END IF
//end if

aolixiaox 2018-10-10
  • 打赏
  • 举报
回复
PBKiller2.5.18
9以前的版本都可以反编译
flakyxd 2018-10-10
  • 打赏
  • 举报
回复
引用 13 楼 wosind 的回复:
我前面有告诉你了,一劳永逸的方法就是,PB 反编译一下PBD,找到数据库连接相关的脚本,这些脚本能看出来,程序连接的方式,和一些需要的参数等等,这样就知道服务器要做什么相关设置。

我下载了几个反编译的都是导不出来,能不能给个链接
或是我打包给你,你帮我看下?
aolixiaox 2018-10-10
  • 打赏
  • 举报
回复
我前面有告诉你了,一劳永逸的方法就是,PB 反编译一下PBD,找到数据库连接相关的脚本,这些脚本能看出来,程序连接的方式,和一些需要的参数等等,这样就知道服务器要做什么相关设置。
flakyxd 2018-10-10
  • 打赏
  • 举报
回复


[Database]
Vendors=ODBC,SYB SQL Server v4.x,SYC Sybase System 10 CTLIB,IN5 I-Net v5.x,MSS (Msoft) SQL Server 6.0,O71 ORACLE v7.1,O72 ORACLE v7.2
DBMS=MSS (Msoft) SQL Server 6.0
ServerName=RG
Database=YGERPN
LogId=sa
LogPassword=sasql
; DBParm=DelimitIdentifier can be added to DbParm
; to control whether quotes are placed around
; table and column names in SQL
; DbParm=DelimitIdentifier='YES'
DbParm=
;
AutoCommit=false
AutoQuote=1
; Columns defines how many columns are displayed
; when a table is expanded
Columns=8
;
ForeignKeyLineColor=16711680
IndexKeyLineColor=255
PrimaryKeyLineColor=65280
Prompt=0
Lock=
NoCatalog=No
ReadOnly=0
ShowIndexKeys=1
ShowReflnt=1
StayConnected=1
TableDir=1
TableListCache=18000
TableSpace=*
TerminatorCharacter=;
HideComments=0
ShowRefInt=1
; specify the background color for the column list window header band
TableHeaderColor=
; specify the text color for the column list window header band
TableHeaderTextColor=
; specify the background color for the column list window detail band
TableDetailColor=
; specify the text color for the column list window detail band
TableDetailTextColor=
; specify the text color for the column list window COLUMN NAME column in the detail band
TableColumnNameTextColor=
LEXICON=
path="c:\ERP\database\"
GLOBAL_USER_NAME='永冠塑胶制造(深圳)有限公司'


[TW_MRPII]
I=1
ServerName1=RG
Database1=YGERPN
GLOBAL_USER_NAME='公司'
GLOBAL_COMPANY_NAME='深圳市融丰软件有限公司'
SYSTEM_STR = 'W_SYSTEM5'
timer = 60
ledger=ERP_FIN


这个是erp客户端的INI文件,我觉得这个是没问题的,因为以前这个客户端在XP系统和Win7还有Win10系统下都能连接,
问题的关键在于服务器肯定有什么地方要设置什么的.
flakyxd 2018-10-08
  • 打赏
  • 举报
回复
引用 10 楼 zhgwbzhd 的回复:
PB的MSS方式,区分为TCP和命名管道,这个需要在服务器上都打开。 最好保持原来的方式,否则不知道哪里会出现问题。 原来的是日文版,你最好也采用日文版。这个最好不要乱改。 因为有字符集,字符编码这一说,最好和原来都保持一致。
这是sql server 2008TCP和命名管道 这是sql server 2000TCP和命名管道
加载更多回复(10)
如何运用Pb9.0设计学生学籍管理系统 海盐县澉浦中学 贺剑夫 内容提要 学生学籍管理工作是学校管理工作的重要组成部分,现在相当一部分学校的学生学籍管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,利用计算机技术和数据库技术设计开发学生学籍管理系统、实现学生学籍管理工作的自动化成为学生管理部门的迫切需要。 学生学籍管理工作主要是学生基本情况的管理包括学生学籍变动的管理(转入、转出、休学、复学、退学、调班、外出借读、借读、留级或跳级)、学生成绩的管理和教师基本信息管理和教课的管理,主要包括数据输入、修改、删除、追加、查询、统计和打印报表等功能,学生学籍管理系统要能高效、准确地完成这些功能,并要达到界面美观友好、使用方便。PowerBuilder9.0和其他数据库管理系统相比,可以发现它基于C/S的体系结构,除拥有其他开发平台的界面制作的优秀控件之外,以应用系统工程的工作空间(WorkSpace)为框架,以数据窗口控件和数据对象作为数据库应用系统开发的核心,通过这两个控件的使用,并结合其他控件的辅助功能,能制作出功能强大的管理系统,因此选用PowerBuilder9.0来制作学生学籍管理系统,实现对学生学籍(包括学籍变动情况)、教师信息及教课和学生成绩的全面管理。 第一个步骤是创建一个工作空间和项目目标文件,使以后设计的所有功能都在此目标文件下有组织地灵活运行。第二个步骤是建立系统运行需要的表并把表添加到数据库中。第三个步骤是进行主菜单的设计,使不同的窗口共享这个主菜单,通过设计脚本来触发当前活动窗口中定义的事件来完成数据的增删改、查询、打印。第四个步骤是建立各种窗口,通过数据窗口对象,和建立的各种控件,来实现相应的功能。关系数据库SQL语言对关系模型的发展和数据库管理系统的研制起了重要作用。SQL语言虽为结构式查询语言,但实际上具有定义、查询、更新和控制等多种功能。在学生学籍管理系统的开发过程中,主要使用了嵌入式SQL语句和动态SQL语句在程序中灵活地操纵数据库。 关键字:SQL语言 对象 窗口 数据窗口 控件 一、概述 1.1 项目的背景及意义 学生学籍管理工作是学校管理工作的重要组成部分,现在相当一部分学校的学生学籍管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,利用计算机技术和数据库技术设计开发学生学籍管理系统、实现学生学籍管理工作的自动化成为学生管理部门的迫切需要。 我校是一所农村初级中学,由于师资力量的薄弱和经费的紧缺,对于学生的学籍管理工作更是落后,可以说目前的学校对于学生的学籍管理都是进行手工的操作,这样的操作对于学生的管理非常不便,因此,考虑到这种情况,迫切需要开发一个学籍管理系统来进行这一项工作。 学生的学籍管理工作包括学籍管理工作、学籍的变动管理工作和成绩管理工作,主要包括数据的输入、删除、修改、查询、统计、打印等功能,学生的学籍管理系统要能高效、准确地完成这些功能,并要达到界面友好、使用方便。 1.2 相关技术与开发工具介绍 PowerBuilder是一个基于客户机/服务器方式的、完全可视化的开发环境。在PowerBuilder环境中,可以用一种可视和直观的方式来创建应用程序的用户界面和数据库接口。 PowerBuilder是面向对象的工具,它变革了面向对象技术的使用,并把它应用到用户界面对象中。用户界面的元素都是对象,它们有属性、事件和方法,通过使用这些对象就会大大地缩短应用程序的开发时间。同时,PowerBuilder9.0也是功能强大的编程语言。通过使用PowerScript编写的代码来实现事件驱动程序。 PowerBuilder是一个开放系统,其优秀的开放系统功能是可以访问任何一个常用的后台数据库系统,如Sybase、Informix或者DB2。另外,PowerBuilde可以通过一个叫做客户机、服务器开放开发环境的规范与其他PC产品进行集成。 PowerBuilder是一个多平台开发环境,有运行在windows95/98/2000/xp/me下的,也有运行在Macintosh下的Unix版本的系统。因此,PowerBuilder可以为真正的企业开发提供完全的支持。 PowerBuilder提供了对分布式应用程序的开发支持。而对分布处理最广泛和最成功的应用当数Internet技术。PowerBuilder提供了两种Internet应用的访问方式:基于WEB.PB的Browser/Server方式和基于Plugins的Client/Server方式。 在Internet应用程序中,客户浏览器与服务器之间的通信方式是这样的:浏览器向WEB服务器请求调用HTML文档,Web服务器将HTML文件传递给客户浏览器。HTML文档中的元素可以指向其他资源(包括位图、声波文件、插入件、ActiveX控件及应用程序等)。用户用鼠标点击这些元素,相当于向Web服务器提出一个请求。这些请求可以是下载文件,也可以请求Web服务器执行一个应用程序。浏览器-Web服务器的结构如图1-1所示 图1-1 浏览器-Web服务器结构 Web应用的执行过程如图1-2所示 图1-2 Web应用的执行过程 PowerBuilder提供了两种plug-in方式,即Windows Plug-in和Data Window Plug-in。Windows Plug-in相当于在浏览器浏览的HTML中嵌入运行PowerBuilder的应用程序。Data Window Plug-in相当于在浏览器的HTML中嵌入运行PowerBuilder的PSR文件。它们的调用过程如下: (1) 浏览器访问Web服务器,向Web服务器提出请求。 (2) 服务器卸载PSR文件或PBD文件,浏览器显示PowerBuilder窗口对象或PSR文件。 (3) 用户对浏览器上的窗口进行操作,Web服务器把操作的结果返回给PowerBuilder窗口。 1.3 系统可行性分析 建设MIS的必要性取决于需求的迫切性和实现的可行性。可行性并不等于可能性,它还包括很必要性,如果领导或管理人员对信息的需求并不迫切,或各方面的条件不具备,就是不具备可行性。系统可行性包括经济上可行性、技术上可行性、管理上可行性和资源上可行性四个方面。 1.3.1 经济上的可行性 主要对项目的经济效益进行评价。该系统除了购置硬件设备外,操作简便,无须投入较大的培训费用、开发费用、维护费用等,并且在实施过程中减少手工操作的步骤、加快了对学生的学籍管理、学籍变动管理和学生成绩管理的速度。 1.3.2 技术上的可行性 本系统的开发采用的是PowerBuilder9.0,它是一个大型数据库应用系统的开发平台,基于客户/服务器的体系结构,可以广泛开发适合于远程数据库和本地数据库的应用系统。它除拥有其他开发平台的界面制作的优秀控件之外,以应用系统的工作窨(WorkSpace)为框架,以数据窗口控件和数据窗口对象作为数据库应用系统开发的核心,通过这两个控件和使用,并结合其他控件的辅助功能,用户可以制作出许多有用的大中型数据库应用系统。PowerBuilder9.0使开发人员能够开发肥客户端应用来满足日益复杂的商业需求,而且它支持J2EE and Mircrosoft.NET环境。它也奠定了“第四代+”(4Glplus)编程语言的基础,它通过设计、建模、开发、配置和管理的紧密集成大大提高了开发人员的生产力, 1.3.3 管理上的可行性   本系统采用powerbuilder8.0 自带的ASA(Adaptive Server Anywhere)数据库,该数据库简单,通过标准ODBC接口,自动连接数据库,这也是PB具有强大功能和对数据库易操作的一方面。该数据库管理系统能够使用SQL 语句,也可以使用各种连接操作,能单独的使用,也可以与各种编程工具连接起来使用,在管理上非常方便。 1.3.4 资源上的可行性   本系统资源利用方便,数据可通过.txt文件导入数据库而进行使用,也可将数据库文件导出为.txt文件,便于数据的文件格式的转换和资源的共享。 二、总体设计 2.1 系统总体功能结构   图2-1 系统总体功能结构图 在登录窗口中是对使用系统人的身份的识别,如果是系统管理员,则拥有修改、插入、追加、删除、保存数据的权利,并可对能使用本系统人员进行管理。如果是数据管理员,则没有对使用本系统人员的管理项,而普通用户则只能进行查询、打印、页面设置、打印预览等简单功能。在各个学籍管理和学籍变动管理窗口中都有对数据的备份功能。 2.2 系统总体物理结构 本系统的运行模式可以在单机模式、主机模式、客户/服务器(C/S)模式、浏览器/服务器(B/S)模式中进行选择。在计算机网络比较比较普及的今天,比较好的选择应该是C/S或B/S模式。 数据库管理系统(DBMS)选择PowerBuilder自带的Adaptive Server Anywhere 8.0。 三、E—R图设计 1) 学生实体E-R图                  图3-1 学生实体E-R图 2)课程实体E-R图                图3-2 课程实体E-R图 3) 教师实体E-R图 图3-3 教师实体E-R图 4) 选课实体E-R图 图3-4 选课实体E-R图 5) 教课实体E-R图 图3-5 教课实体E-R图 6)学生转出实体E-R图     图3-6 学生转出实体E-R图 7) 学生休学E-R图 图3-7 学生休学实体E-R图 8) 学生复学实体E-R图 图3-8 学生复学实体E-R图 9) 学生退学实体E-R图 图3-9 学生退学实体E-R图 10)学生外出借读实体E-R图 图3-10 学生外出借读实体E-R图 11)学生调班实体E-R图 图3-11 学生调班实体E-R图 12)学生留级(跳级)实体E-R图 图3-12 学生留级(跳级)实体E-R图 13)各实体之间的E-R图     图3-13 各实体之间的E-R图 四、总结与展望 本制作流程,可实现学生、教师、课程间的基本管理和用户的管理,能进行学籍的变动情况处理(如学生转入、学生转出、学生休学、学生复学、学生退学、学生调班、学生留级(跳级)、学生借读及学生外出借读),对报表能进行打印及打印预览,对相关数据能进行备份,在设计中使用了菜单、窗口、数据窗口、数据窗口控件及多种窗口控件,给工作上带来了很大的方便,可以实现学生学籍管理及变动情况管理的应用。 通过对PowerBuilder9.0的窗口对象、菜单对象、数据窗口对象、数据窗口控件、窗口控件及其基本属性的运用,可进行一般的事务处理和软件的设计。 通过Pb9.0可以很方便地将所有的数据库转移到服务器上,实行客户/服务器的管理模式,增加对系统出错处理模块的管理,以及实现Web方面的功能开发。 计算机教育发展到今天,尤其是新课程的改革要求我们计算机教师,特别是农村中学的计算机教师要能编写适合于本地特色的一些管理系统来为学校服务,为教学服务。PB9.0无疑是一种较明智的选择。 参考文献 1、 伍俊良 《PowerBuilder课程设计与系统开发案例》 清华大学出版社 2003年 2、 袁方 杨成 《数据库应用系统设计实践教程》 电子科技大学出版社 2001年 3、 黄伟 《PowerBbuilder6.5-7.0实例解析》 北京大学出版社 2000年 4、 张钢 《信息系统开发实践教程》 电子科技大学出版社 2001年 5、 甘仞初 《信息系统开发》 经济科学出版社 1996年 6、 黄梯云 《管理信息系统》 经济科学出版社 1999年 7、康博创作室 《PowerBuilder6.0使用及开发指南》 人民邮电出版社 1999年
《PowerBuilder 8.0基础篇》各章例程及运行注意事项: 第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp 第6章 API 6.2.1 改变窗口的显示风格 -- ChangeWindow 6.2.2 使窗口的图片透明化 -- TransWindow 6.2.3 改变窗口的关闭形式 -- CloseStyle 6.2.4 PB中实现图形的复制与粘贴以及图像的简单处理 -- PictureBox 6.3.1 获得系统的内部进程 -- System Thread 6.3.2 获得系统基本信息 -- SystemInformation 6.4.1 检测物理网络的连通情况 -- Mping 6.4.2 关闭,重启,注销计算机 -- ExitWindow 6.4.3 通过标准字体对话框来设置字体 -- SetFont 第7章 pipeline 数据管道 -- pipeline 第8章 组件 将数据窗口中的数据导出到Word中 -- pbtoword 第10章 Web PowerBuilder与WEB开发 -- web 第11章 Jaguar Jaguar CTS组件编程 -- Jagar Test 注意事项: 1. 第4章部分例程需要配置名为pbbook的ODBC数据源。 2. 某些例程可能会因环境原因而无法运行,但源代码可供参考。
安装说明:你只需要将task.exe和task.dll放置在同一目录下,task.db为其使用的数据库。你的机器上需要安装ODBC程序,该程序使用的是PB提供的Adaptive Server Anywhere数据库服务器服务。 如何配置ODBC数据源参见 安装说明文件.doc 主要功能 1.增加任务 将任务划分到个人,任务名不可以重复。“返回”按钮可以返回到主菜单,“关闭”将退出该软件。“提交”将实际向数据库中添加,如果你的数据源没有配制好以及数据填写不符合要求,将会提示相应出错信息。 2.查询任务 你可以在查询工作区内输入查询内容,你必须要选择查询方式,分为负责人和任务名两种。填写好后按查询。如果你选择负责人,由于同一人可以有很多任务,将会在多任务显示中显示任务名。选择某一项目后将会提示“已经找到与之匹配的记录,并在查询结果显示中显示详细信息。“返回”按钮可以返回到主菜单,“关闭”将退出该软件。你可以用“菜单设计”内容来测试查找任务名功能,用“阎立”或“汤其成”查找负责人。 3.提问中心 你可以提问问题。提问者是你愿意留下的称呼,提问内容也就是问题当然也可以发其他内容了。“返回”按钮可以返回到主菜单,“关闭”将退出该软件。“提交”将实际向数据库中添加,如果你的数据源没有配制好以及数据填写不符合要求,将会提示相应出错信息。 4.查看回复 在查看问题区域内显示目前数据库中所有问题记录。当你选择某一项目后将会在问题内容中显示问题。点上方的“查看回复”将会在问题回复中显示所有与该问题对应的回复,选择某一回复后将会在其下方显示具体回复内容。如果你也想对该问题回复,可以在我要回复中填写相应内容,最后按提交即可。返回”按钮可以返回到主菜单,“关闭”将退出该软件。“提交”将实际向数据库中添加,如果你的数据源没有配制好以及数据填写不符合要求,将会提示相应出错信息。 5.任务进度与任务评估 在任务评估模块中,你在下拉列表框中选择目前已经存在的任务名,并在评估人中写好评估人或单位,在评估情况中写好任务完成状况以及你的一些建议,最好说明存在的问题。完成工作量是以100作为单位,你完成了100中的多少一般90就不错了。最后按提交。在工作进度模块中,你在下拉列表框中选择目前已经存在的任务名,按查询,将会出现进度条的变化,并在下方简单地统计比率,注意是针对同一工程的所有评估。在其下方将出现所有对该工程的评估,选中其中一个项目后将在下方显示详细内容。 主页:http://21stera.51.net BBS:http://b175107.xici.net
第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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