热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PB及ASA数据库程序的发布

PB及ASA数据库程序的发布(转载)分类:pb历程2008-11-0220:341918人阅读评论(0)收藏举报数据库powerbui


PB及ASA数据库程序的发布(转载)
分类: pb历程 1918人阅读 评论(0) 收藏 举报

数据库powerbuilderpropertiesapplicationdatabasewizard


目录(?)[+]

  1. 数据库移植
  2. 数据库运行环境搭建
  3. 可执行文件生成
  4. PB程序运行环境搭建
  5. 生成安装文件



PB及ASA数据库程序的发布(转载)

使用Powerbuilder 9.0和ASA 8.0写了一个简单的软件包管理系统,在发布的过程中遇到很多问题,花一上午时间得以解决。记录之,以备后查。

数据库移植

首先,将所要移植的数据库日志文件(*.log)的路径改为相对于数据文件(*.db)的相对路径,而不是使用绝对路径。只有如此修改,数据库文件才可拷贝至其他位置并设置为数据源,否则在连接数据库时会提示“Unable to connect database server:Specified database is invalid”。具体步骤如下:

Sybase Central –> Tools –> Adaptive Server Anywhere 8 –> Change Log File Settings

在此修改路径,如原路径为“D:/SPMS/spms.log”,现可修改为“spms.log”,即表示spms.log应与spms.db在同一文件夹下。

亦可设置为不生成日志文件,但不推荐。因为,若数据库因意外(机器断电)等引起数据故障,系统会自动利用日志文件来恢复数据库。

将前述两文件拷贝至他处,并设置为数据源,测试程序是否能正常连接。

数据库运行环境搭建

上述操作均在开发环境下进行,而我们同样需要在应用环境下不安装ASA服务器端/客户端,而连接到数据库。

Adaptive Server Anywhere 8.0 数据库的正常运行需要6个文件的支持,为dbcon8.dll、dbctrs8.dll、dbeng8.exe、dblgen8.dll、 dbodbc8.dll、dbserv8.dll,将这6个文件与数据库文件一起拷贝到应用环境中。

我的程序是使用ODBC与ASA数据库相连,则还需在注册表中设置ODBC用户数据源。

注册表示例可在此浏览,其中{app}应替换为应用环境中实际拷贝的位置。导入注册表项后,测试数据库是否可正常工作(Test Connection)。

可执行文件生成

Powerbuilder工程生成可执行文件一般是通过Application Wizard来完成的,这点在大部分讲述PB基础的书籍中都有详细解释,此处不再赘述,仅将我遇到的两个问题解释下。

1. 如何修改PB生成的可执行文件图标?

在应用程序对象(Application)的属性界面(Properties –> Additional Properties –> Icon)设置图标,建议使用相对路径。

2. 如何使用资源文件(*.pbr)?

方法很简单,将所需要用到的图标、图像文件等的文件名按照每行一个的格式保存至一个txt中(可使用命令 dir /b > list.txt 将某文件夹下的所有文件名输出到list.txt中),修改后缀名为pbr,并在Resource File Name中选择该资源文件,Deploy即可。

注意:此处写入pbr的文件名应与程序中调用的文件名完全一致,比如pbr中写有search.gif,则在menu的toolbar中icon路径应写为search.gif,而不是绝对路径。

PB程序运行环境搭建

Powerbuilder 9.0 数据库的正常运行需要4个文件的支持,为libjcc.dll、pbdwe90.dll、pbodb90.dll、pbvm90.dll,将这4个文件与可执行文件一起拷贝到应用环境中。

若运行应用程序提示“dbms odbc is not supported in your current installation”,则应检查pbodb90.dll(ODBC接口连接用动态链接库)是否存在。

生成安装文件

我使用的是Inno Setup配合ISTool来生成安装文件的,此工具具有图形化设置界面,操作简便,功能强大,推荐使用。这是我生成的脚本,可供参考。

需注意的有一点,桌面快捷方式的Flag应选中“Use app paths”,以避免应用程序使用GetCurrentDirectory()等函数时无法获得正确的执行路径。

至于其他的打包程序网上多有资料介绍,按照帮助慢慢实验即可完成。



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
author-avatar
独孤求独孤_715
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有