home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Press 1997 July
/
Sezamfile97_2.iso
/
windows
/
program
/
pb.faq
< prev
next >
Wrap
Internet Message Format
|
1997-06-15
|
41KB
Path: Eunet.yu!EU.net!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!newsfeed.direct.ca!nntp.teleport.com!usenet
From: wagnerc@teleport.com (Craig Wagner)
Newsgroups: comp.soft-sys.powerbuilder
Subject: PB FAQ - Sorry
Date: Sun, 15 Sep 1996 19:23:16 GMT
Organization: MetaCorp Strategies
Lines: 1073
Message-ID: <323b7280.264899332@news.teleport.com>
NNTP-Posting-Host: ip-pdx15-31.teleport.com
X-Newsreader: Forte Agent .99e/32.227
Sorry about that last one, I accidentally 'attached' the faq instead of
importing it into the body of the message. My apologies.
------------------
PowerBuilder FAQ
------------------
GENERAL INFORMATION
About Powersoft's line of Client-Server
Development Products
As Discussed In comp.soft-sys.powerbuilder and
pb-l@plearn.edu.pl
Last Updated: 8/16/96
This document serves as a FAQ (Frequently Asked Questions) for the
comp.soft-sys.powerbuilder newsgroup and pb-l@plearn.edu.pl mailing
list. Although efforts have been made to extract errors out of this
document, the FAQ Maintainer assumes no liability for the content or
use of this document.
If you feel you can contribute any information or suggestions for the
FAQ please email me (address given below). If you are contributing
information, please format it in a manner which will facilitate its
entry into the FAQ. I have also attempted to include answers to
questions that seem to be frequently asked on the Compuserve forum,
comp.soft-sys.powerbuilder and the mailing list.
Attention has been given to restricting this document to facts, tips,
workarounds, and problem fixes that could not be gathered through
other sources easily. For example, pricing information is rarely
given here because prices fluctuate constantly for various products
and the information can easily be obtained by calling a software
distributor or the company itself.
Acknowledgments are given throughout this document where applicable to
particular questions. Thanks or Acknowledgments are generally given
at the end of the section describing the issue in parenthesis. I
would like to acknowledge, in particular, Gunther Birznieks for
creating the initial version of this FAQ, much of which has been
incorporated into this version.
FAQ bugs, flames, comments and suggestions may be directed to Craig
Wagner (wagnerc@teleport.com).
Legend: ! = New since last update
* = Correction since last update
Table of Contents
==================================================================
PART I: GENERAL QUESTIONS
[1.1] What is this newsgroup/mailing list for?
[1.2] How do I subscribe to the mailing list?
[1.3] How do I increase the chances of someone answering my question?
[1.4] What is PowerBuilder?
[1.5] What is the difference between Enterprise and Desktop?
[1.6] What is InfoMaker?
[1.7] How can I get more information about Powersoft products?
[1.8] Is PowerBuilder object-oriented?
[1.9] Which is better, PowerBuilder or <Product X>?
[1.10] Is there an FTP site to obtain Powersoft related files?
*1.11* Are there any other internet sites related to PowerBuilder?
*1.12* What 3rd party class libraries are available for PowerBuilder?
*1.13* What publications exist for PowerBuilder?
[1.14] What is the Certified PowerBuilder Developer program?
[1.15] What is the latest version of PowerBuilder?
[1.16] What new features are in PowerBuilder v5.0?
[1.17] How does the Sybase merger affect Powersoft?
[1.18] How does Windows 95 get along with PowerBuilder?
*1.19* How do I get a feature added to future versions of PowerBuilder?
PART II: TECHNICAL QUESTIONS
[2.1] What DLLs do I need for the run-time of PowerBuilder?
[2.2] PowerBuilder is crashing on me! What should I look for?
[2.3] How can I create controls on a window in a script at run-time?
[2.4] How do I "rollback" a change made in a descendant?
[2.5] How do I increase the speed of my application startup?
[2.6] How do I highlight the current row of a datawindow?
[2.7] How do I print two datawindows on the same page of a report?
[2.8] How can I get more performance out of my PowerBuilder
Applications?
[2.9] How do I make an object inherited AFTER it is created?
[2.10] Can't find PB050.DLL
[2.11] My application runs fine from the development environment but
GPF's in the EXE. What do I do?
[2.12] How do I get the current directory?
[2.13] The 'Picture' tab isn't showing up when I use the ctGauge
control in my window, so I can't change the bitmap. What am I
doing wrong?
!2.14! Should I use events or functions in my application?
---------------------------------------------------------------
PART I: GENERAL QUESTIONS
[1.1] What is this newsgroup/mailing list for?
The newsgroup comp.soft-sys.powerbuilder and mailing list
pb-l@plearn.edu.pl are intended to be used as a forum for discussion
about PowerBuilder and other Powersoft products. Professional and
Would-Be developers in PowerBuilder can discuss ideas, hints, tricks,
and bugs they find in Powersoft products here.
It is NOT an official channel of PowerBuilder support.
[1.2] How do I subscribe to the mailing list?
Send an e-mail message to listserv@plearn.edu.pl. Leave the subject
field blank and place "subscribe pb-l" (without quote) in the body of
the message.
[1.3] How do I increase the chances of someone answering my question?
First, keep in mind that the people answering the questions are doing
so free of charge, and many of them are doing it on their personal
time.
Provide as much detail about what is happening (or not happening) as
possible. A message that says "I can't connect to the database" will
likely be ignored, whereas "When I issue the 'connect using SQLCA;'
statement I get an error which states <whatever>" will probably garner
some responses.
In the same vein, include such details as: version of PB you are
using, OS environment (3.x, 95, NT, Mac, Unix), database you are using
and how you are accessing it.
Include things you have tried and the results you observed. This will
prevent you being deluged with replies to try things you have already
investigated.
Lastly, speaking for myself and others who have sent me private e-mail
on this topic, don't use your question as an excuse to vent your
personal feelings towards Powersoft or PowerBuilder. A number of us
are getting tired of seeing messages like: "As is typical of anyone
using PowerBuilder, I've encountered a problem." If you have a
question, ask it, if not, go away, you're cluttering the newgroup and
mailing list.
[1.4] What is PowerBuilder?
PowerBuilder is a GUI (Graphical User Interface) development tool for
developing Client/Server Database applications under Microsoft Windows
3.x, Microsoft Windows 95, Microsoft Windows NT, Macintosh and
Solaris.
Applications can be built by creating windows, controls (such as
listboxes and buttons), and menus within the PowerBuilder development
environment. The language that is used to program PowerBuilder is
called PowerScript which is loosely based on BASIC.
PowerBuilder supports programming on many database backends including
Sybase, Oracle, Informix and others. It also has support for ODBC
database drivers. PowerBuilder also comes with a single-user
relational database management system, Sybase SQL Anywhere (formerly
WATCOM SQL) 32-bit relational database.
[1.5] What is the difference between Enterprise and Desktop?
There are three different configurations in which PowerBuilder may be
purchased: Desktop, Professional and Enterprise. The following chart
shows the differences:
Feature Desktop Professional Enterprise
Art Galleries X X X
New Script Editor X X X
Desktop ODBC Drivers X X X
Install Disk Builder X X X
Check-in/Check-out n/a X X
Version Control Interfaces n/a X X
ObjectCycle Interfaces n/a X X
CODE/ORCA Enabled n/a X X
Full ODBC n/a X X
Distributed PB n/a n/a X
C++ Class Builder n/a n/a X
Native Database Drivers n/a n/a X
Advanced Developer Toolkit Opt X X
Powersoft Foundation
Classes (PFC) Opt X X
ObjectCycle n/a Opt X
[1.6] What is InfoMaker?
InfoMaker is an end-user forms and reporting tool. It allows non-
programmers to create applications using a point-and-click interface
without writing any code.
Because InfoMaker is a subset of PowerBuilder, any forms or reports
created in InfoMaker can easily be migrated to the PowerBuilder
environment, allowing end-users to have a limited role in application
development.
InfoMaker also comes with Data Pipeline which provides the ability to
replicate data from one type of database to another relatively
transparently.
[1.7] How can I get more information about Powersoft products?
Powersoft Corporation Sales and Marketing: 800-395-3525
Powersoft Main Number : 508-287-1500
Powersoft BBS : 508-287-1850
Powersoft FaxBack System : 508-287-1600
Powersoft Forum on CompuServe : GO POWERSOFT
Generally, all of the above sources can provide you with information
regarding training availability, schedules, pricing information on
Powersoft products, etc. The FaxBack system is especially useful for
getting technical articles and information about Powersoft products
that may not be in the manuals. Through FaxBack, you may order 4-5
documents per call and the cost to you is merely the long distance
call to the phone number.
Powersoft generally offers "Demo Days" in major metropolitan cities.
Information regarding these "Demo Days" and other Powersoft promotions
can be received by calling the Powersoft 800 number given above.
[1.8] Is PowerBuilder object-oriented?
Yes. There are varying definitions of what constitutes
"Object-Oriented" programming. PowerBuilder supports the major ideas
behind Object-Oriented programming.
While some GUI-based rapid application development tools say they are
object-oriented, they are generally limited to the objects built into
the language. Powerbuilder goes beyond this.
The objects contained in the PowerBuilder language are fully
extensible via OO based methods. Windows, controls, and other visual
objects are generally fully inherited. Once you write code for an
object in Powerbuilder such as a window, you can take that window and
make new ones by inheriting it. The OO capabilities are not limited to
visual objects. PowerBuilder supports OO on non-visual objects (custom
classes) as well.
When methods (functions) or variables are defined for objects in
PowerBuilder, you also have the ability to scope them as private,
protected or public with respect to other objects that inherit them or
use them.
Polymorphism is also supported in the form of allowing the same
function name to exist for different object types.
When an object in PowerBuilder inherits another object, it can only
inherit the properties, variables, and code of the one object.
PowerBuilder does not support multiple inheritance.
[1.9] Which is better, PowerBuilder or <Product X>?
A document that goes into the nuances of all the similarities and
differences of PowerBuilder and other competing products is beyond the
scope of this document.
However, it should be pointed out that most of the products in this
field, such as Delphi and Visual Basic, are very capable products. The
decision of which product to use for a project must be made by each
company based on the needs of the organization, the type of
application and the availability of expertise in the products under
consideration.
[1.10] Is there an FTP site to obtain Powersoft related files?
Powersoft recently established an official site to obtain bug fixes
and enhancement patches to PowerBuilder.
Their FTP site is at ftp.powersoft.com. Powersoft has stated that
they are very interested in making this a reliable way of getting
updates and fixes.
There are also a couple of sites on the internet that have patches and
some 3rd party utilities as well as this FAQ.
*1.11* Are there any other internet sites related to PowerBuilder?
Yes! Recently there have been quite a few WWW sites that have sprung
up about PowerBuilder and Powersoft products. The list below is by no
means comprehensive either. Many of these sites point to other sites
and internet areas with information about PowerBuilder and
client-server related material.
URLs:
Oregon PowerBuilder User Group
http://www.yasd.com/pbug/
PBL - PowerBuilder Links - Home Page
http://www.opcenter.net/~david_levine/
PowerBuilder Interactive
http://pk.com/powerbuilder
PowerCerv Home Page
http://www.powercerv.com/
PowerBuilder Home Page
http://www.servtech.com/public/bigelow/pb/pb.htm
Powersoft Web Site
http://www.powersoft.com/
There is also an "alternative" newsgroup to talk about PowerBuilder
set up by PowerBuilder Interactive. The NNTP server is pk.org (point
your windows based newsreader to it) and the newsgroup name is
"alt.pk.powerbuilder".
*1.12* What 3rd party class libraries are available for PowerBuilder?
A class library is a set of pre-made PowerBuilder objects which
provide a framework upon which applications can be made. Class
libraries frequently cut down on coding common tasks such as the logic
behind a master-detail relationship window, updating a single data
window or the security logic behind whether a user can access a
particular function.
The following is a partial list of class libraries and frameworks
available, and may not be complete. Please forward modifications to
the e-mail address at the beginning of this document.
PowerBuilder Foundation Classes (PFC)
Powersoft Corporation
PowerClass
ServerLogic
phone: 206-803-0378
fax: 206-803-0349
2800 Northup Way, Suite 205
Bellevue, Washington 98004
PowerTOOL
PowerCerv
phone: 813-226-2378
400 North Ashley Street
Suit 1910
Tampa, Florida 33602
ObjectStart
ObjectStart Professional
Greenbriar and Russell
phone: 708-706-4000
phone: 800-453-0347
1450 East American Lane, Suite 1640
Schaumburg, IL 60173
Super!Class
Computronix
phone: 800-359-3758
fax: 403-425-8536
email: info@computronix.com
Suite 1101, 10250 - 101 Street
Edmonton, AB T5J 3P4
Canada
*1.13* What publications exist for PowerBuilder?
Books
Title : APP DEV W/POWERBUILDER 3
Author: HOBUSS, JAMES
ISBN : 0471060674
Title : DEV POWERBUILDER 3 APPS *OOP*
Author: HATFIELD, BILL
ISBN : 0672304651
Title : DEV POWERBUILDER 3 APPS W/DK BESTSELL ED
Author: HATFIELD, BILL
ISBN : 0672306484
Title : POWERBUILDER 4:GD DEV CLIENT/SERVER APPS
Author: BAMBARA / ALLEN
ISBN : 0070054134
Title : POWERBUILDER 4 CONST KIT, THE: USING
Author: RIBAR, JOHN
ISBN : 0078820790
Title : READY-MADE POWERBUILDER 4 APPS W/DK
Author: JONES, ED
ISBN : 0079120628
Title : POWERBUILDER 4: BUILD CLIENT/SERVER APPS
Author: MAHLER, PAUL
ISBN : 0131793004
Title : MORE PROF POWERBUILDER 5 PROG W/CD
Author: BUKAUSKAS / BRAUNSTEIN
ISBN : 0135081459
Title : ADV POWERBUILDER 4 TECHS W/DK
Author: DEYHIMI / HEATH / MOSLEY
ISBN : 0471049891
Title : POWERBUILDER 4 DEV GD W/CD
Author: BRAUNSTEIN / MARSH
ISBN : 067230564X
Title : DEV YR FIRST POWERBUILDER 4 APP I/21 DAY
Author: SALEMI, J
ISBN : 0672306239
Title : TEACH YRSLF POWERBUILDER 4 IN 14 DAYS
Author: HOLSTEIN, JUDAH
ISBN : 067230676X
Title : EXPLORING POWERBUILDER W/CD *CANCELLED*
Author: ANDERSON, JULIE
ISBN : 067230693X
Title : DEV POWERBUILDER 4 APP W/DK 3E
Author: HATFIELD, BILL
ISBN : 0672306956
Title : POWERBUILDER 4: DESIGN, DEV & DEPLOYMENT
Author: GREEN & BROW
ISBN : 0672308290
Title : OBJ-ORIENTED PROG W/POWERBUILDER *CANCEL
Author: SAMS
ISBN : 0672308304
Title : POWERBUILDER 4 UNLEASHED W/CD
Author: GALLAGHER ET AL
ISBN : 0672308339
Title : POWERBUILDER 4 DEV HDBK W/CD *CANCELLED*
Author: HOUSE, BILL
ISBN : 0782116701
Title : USING POWERBUILDER 4 W/CD SE
Author: WOOD, CHUCK
ISBN : 078970059X
Title : POWERBUILDER 4 CD TUTOR *CANCEL*
Author: BICKER & DUDEK
ISBN : 0789702819
Title : LEARN POWERBUILDER 5.O F/WIN I/A DAY
Author: NESBITT, DAVID
ISBN : 1556224710
Title : POWERBUILDER 4: A DEV GD W/DK
Author: MCCLANAHAN, DAVID
ISBN : 1558514171
Title : POWERBUILDER 4 DEV GD W/DK
Author: CASCIATO, CESARE
ISBN : 1562762125
Title : POWERBUILDER 4 POWER TOOLKIT W/CD
Author: COOMBS, TED & JASON
ISBN : 1566042240
Title : POWERBUILDER 4 PROG F/DUMMIES
Author: COOMBS, TED & JASON
ISBN : 1568843259
Title : REV GD T/ POWERBUILDER 4 W/CD
Author: BODEPUDI, PRASAD
ISBN : 1874416605
Title : POWERBUILDER 4: SECRETS O/T/POWERBUILDER
Author: MACDONALD & BENFIELD-EDS
ISBN : 1886141002
Title : POWERBUILDER 5 :OBJ-ORIENT DESIGN & DEV
Author: GREEN / BROWN
ISBN : 0070244693
Title : SUPERCHARING POWERBUILDER 5 APPS *CANCEL
Author: ADEL, SAM
ISBN : 0078821754
Title : PROF POWERBUILDER 5 PROG W/CD
Author: BUKAUSKAS / BRAUNSTEIN
ISBN : 0132385775
Title : POWERBUILDER 5 DESKTOP: T/AUTH GD W/CD
Author: REYNOLDS / ROBBINS
ISBN : 0201408864
Title : ADV POWERBUILDER 5 TECHS W/DK
Author: DEYHIMI / KNIGHT / MOSELY
ISBN : 0471153397
Title : POWERBUILDER 5 UNLEASHED W/CD 2E
Author: GALLAGHER & HERBERT
ISBN : 0672309076
Title : DEV POWERBUILDER 5 APPS W/CD 4E
Author: HATFIELD, BILL
ISBN : 0672309165
Title : POWERBUILDER 5 DEV HDBK *CANCELLED*
Author:
ISBN : 0782119425
Title : POWERBUILDER 5 EXPERT SOLUTIONS *CANCEL*
Author: MCDONALD
ISBN : 0789703467
Title : USING POWERBUILDER 5 2E W/CD
Author: WOOD, CHUCK
ISBN : 0789707543
Title : TEACH YRSLF POWERBUILDER 5 W/DK
Author: MCCLANAHAN, DAVID
ISBN : 1558284745
Title : POWERBUILDER 5 F/ XBASE PROGS W/DK *PPD*
Author: NUNEMACHER, GREG
ISBN : 1558514538
Title : POWERBUILDER 5: A DEV GD W/DK
Author: MCCLANAHAN
ISBN : 1558514732
Title : FOUND POWERBUILDER 5 PROG W/CD *PPD*
Author: SMITH
ISBN : 156884302X
Title : POWERBUILDER 5 HOW-TO W/CD
Author: BRIBERDORF,GLIDDEN&POWERS
ISBN : 1571690557
Title : INTRO TO POWERBUILDER 5
Author: BOUCHARD
ISBN : 1575763567
Title : INTRO TO POWERBUILDER 5 I/M
Author: TBA
ISBN : 1575763753
Title : POWERBUILDER 5 FUNDS W/DK
Author: ERLANK & LEVIN
ISBN : 185032283X
Title : ADV POWERBUILDER 5 W/CD :TOOLS F/T/
Author: BALL, DEREK
ISBN : 1850328552
Title : INSTANT POWERBUILDER 5 OBJECTS
Author:
ISBN : 1861000065
The above list is courtesy of:
Frank Hanlan,
Computer Book Source formerly known as Edmonton Computer Books
10265-107 St. Edmonton, AB T5J 1K1 E-mail:frank@ecbs.sas.ab.ca
Ph:(403)429-1077 Fax:(403)429-1964
New Store in Calgary, AB Canada at 311-17th Avenue SW T2S 0A5
Ph:(403)229-2520 Fax:(403)229-3977 E-mail:ccbs@sas.ab.ca
Recently two books released from Sams Publishing contained a Word
macro virus on the enclosed CD. The following is the official apology
from Sams:
VIRUS ALERT
Sams Publishing sincerely apologizes for shipping the
PowerBuilder 5 Unleashed, 2nd edition and the Developing
PowerBuilder 5 Applications CD-ROMs with the Concept Virus
(also known as the Word Prank Macro virus).
The three files infected with the Concept virus are
(CD-ROM drive letter):\3RDPARTY\ATTCHMAT\ATTM.DOC
(CD-ROM drive letter):\3RDPARTY\ATTCHMAT\LOGO.DOC
(CD-ROM drive letter):\3RDPARTY\CALLBACK\CBDESC.DOC
We have posted the "clean" versions of these three files on
our Web site (http://www.mcp.com/sams).
The Microsoft Corporation has developed a Macro Virus
Protection tool that can be downloaded from the Microsoft WWW
site at http://www.microsoft.com/msoffice.com/msoffice or from
the Word forums on CompuServe and America Online.
If you have any further problems with either of PowerBuilder
CD-ROMs, please contact us at one of the following locations:
Internet e-mail: support@mcp.com
Mail: Macmillan Computer Publishing
Support Department
201 West 103rd Street
Indianapolis, IN 46290
Telephone: (317) 581-3833 Fax: (317) 581-4773
Internet WWW (The Macmillan Information SuperLibrary):
http://www.mcp.com/sams
Internet FTP: ftp.mcp.com/pub/sams
CompuServe: The keyword for our forum is SAMS ("GO SAMS").
We're a part of the Macmillan Computer Publishing
forum.
Thank you for your patience,
Sams Publishing
Magazines
PowerBuilder Developer's Journal
Publisher: Sys-Con
Address : 46 Holly Street
Jersey City, NJ 07305
Phone : 914-735-1900
Rate : $119/Year
PowerBuilder Advisor
Publisher: Advisor Publications
Address : 4010 Morena Blvd.
P.O. Box 17902
San Diego, CA 92177
Phone : 800-336-6060 (inside the USA)
619-483-6400 (outside the USA)
Rate : $39/six issues
[1.14] What is the Certified PowerBuilder Developer program?
The Certified PowerBuilder Developer program has two levels: CPD
Associate and CPD Professional.
To achieve CPD Associate level, you must pass two written exams. The
first written exam is meant to test the fundamentals of PowerBuilder
programming. The second exam is meant to test the advanced features of
PowerBuilder including topics covered in Building Object-Oriented
Applications with PowerBuilder, Mastering DataWindows, Exploiting
DataWindow Technology and Managing Performance in PowerBuilder.
To achieve CPD Professional status, you must first obtain CPD
Associate status. After that, you take an application test that tests
your ability to create application modules that solve real world
problems.
The written exams cost $100 each. Information on where and when to
take the exams can be obtained by calling 1-800-407-EXAM.
[1.15] What is the latest version of PowerBuilder?
PowerBuilder v5.x is currently at release 5.0.01. You may download the
patches off of the Powersoft BBS or the Powersoft FTP site at
ftp.powersoft.com.
[1.16] What new features are in PowerBuilder v5.0?
There are a multitude of new features for PowerBuilder v5.0, including
but not limited to:
Colour-coded script editor
New DataWindow presentation styles: RTF and OLE 2.0
OCX support
Machine code generation
Direct referencing of datawindow object controls
New calling syntax for functions and events
New Win95 controls (which also work in 16-bit environment)
such as Tab, TreeView and ListView
[1.17] How does the Sybase merger affect Powersoft?
In general, the merger will not adversely affect Powersoft. Powersoft
will remain database independant in terms of supporting client-server
backends equally. For now, Powersoft, although owned by Sybase, will
remain relatively independant.
[1.18] How does Windows 95 get along with PowerBuilder?
There are two issues with Windows 95. One is compatibility with
PowerBuilder as a 16-bit Windows 3.1 application. The other is having
a version which takes advantage of being a Windows 95 application.
PowerBuilder v5.0 supports Windows 95 fully.
Powersoft claims that you require v4.0.03 and up to run v4.x under
Win95, although I personally ran v4.0.02 for several months with no
difficulty under Win95.
*1.19* How do I get a feature added to future versions of
PowerBuilder?
Send a message to Cathy Col at ccol@powersoft.com with the subject
"Enhancement Request". All messages with this subject are pooled and
added to a running list.
PART II: TECHNICAL QUESTIONS
[2.1] What DLLs do I need for the Run-Time of PowerBuilder?
The best way to get the answer to this is to run the setup program
from your distribution CD and choose to install the Deployment Kit. If
you'd rather do things manually, you need the following DLLs:
Required 32-bit Deployment DLLs
PBBGR050.DLL Business graph engine
PBDWE050.DLL DataWindow engine
PBROI050.DLL OLE 2 support
PBRTE050.DLL Runtime engine
PBRTF050.DLL Runtime functions
PBSHR050.DLL Storage manager, printing and various other utilities
PBTYP050.DLL System object/function definitions
Optional 32-bit Deployment DLLs
PBDBL050.DLL Database interface - message handler for PBSYB, PBMDI,
PBNET
PBDBT050.DLL Database interface - message handler for PBSYC
PBDPB050.DLL Distributed PowerBuilder - local driver
PBDSE050.DLL Distributed PowerBuilder
PBIDBF50.DLL DataWindow Import dBase
PBIN5050.DLL Database interface - Informix 5.0
PBITXT50.DLL DataWindow Import text
PBMDI050.DLL Database interface - Sybase InformationConnect (MDI)
PBMSS050.DLL Database interface - MS SQL Server 6.0
PBNET050.DLL Database interface - Net Gateway
PBNPC050.DLL Distributed PowerBuilder - Named Pipes client
PBNPS050.DLL Distributed PowerBuilder - Named Pipes server
PBO71050.DLL Database interface - Oracle 7.1
PBO72050.DLL Database interface - Oracle 7.2
PBODB050.DLL Database interface - ODBC
PBOSC050.DLL Distributed PowerBuilder - Open Server client
PBOSS050.DLL Distributed PowerBuilder - Open Server server
PBRTC050.DLL Rich text support
PBSMI050.DLL Distributed PowerBuilder
PBSYB050.DLL Database interface - Sybase DBLIB interface (Microsoft
lib linked)
PBSYC050.DLL Database interface - Sybase CTLIB interface
PBSYT050.DLL Database interface - Sybase DBLIB interface (Sybase
lib linked)
PBWSC050.DLL Distributed PowerBuilder - WinSock client
PBWSS050.DLL Distributed PowerBuilder - WinSock server
Required 16-bit Deployment DLLs
PBBGR050.DLL Business graph engine
PBDWE050.DLL DataWindow engine
PBOUI050.DLL OLE 2 user interface
PBROI050.DLL OLE 2 support
PBRTE050.DLL Runtime engine
PBRTF050.DLL Runtime functions
PBSHR050.DLL Storage manager, printing and various other utilities
PBTYP050.DLL System object/function definitions
PBVBX050.DLL VBX support
Optional 16-bit Deployment DLLs
PBDBL050.DLL Database interface - message handler for PBSYB, PBMDI,
PBNET
PBDPB050.DLL Distributed PowerBuilder - local driver
PBDSE050.DLL Distributed PowerBuilder
PBIBM050.DLL Database interface - IBM
PBIDBF50.DLL DataWindow Import dBase
PBIN5050.DLL Database interface - Informix 5.0
PBITXT50.DLL DataWindow Import text
PBMDI050.DLL Database interface - Sybase InformationConnect (MDI)
PBMSS050.DLL Database interface - MS SQL Server 6.0
PBNET050.DLL Database interface - Net Gateway
PBO71050.DLL Database interface - Oracle 7.1
PBODB050.DLL Database interface - ODBC
PBOR7050.DLL Database interface - Oracle 7.0
PBOSC050.DLL Distributed PowerBuilder - Open Server client
PBRTC050.DLL Rich text support
PBSMI050.DLL Distributed PowerBuilder
PBSYB050.DLL Database interface - Sybase DBLIB interface (Microsoft
lib linked)
PBSYC050.DLL Database interface - Sybase CTLIB interface
PBWSC050.DLL Distributed PowerBuilder - WinSock client
The above lists come from the appendix of "PowerBuilder 5.0 Compiled
Code White Paper", available from the Powersoft Web Site.
[2.2] PowerBuilder is crashing on me! What should I look for?
PowerBuilder, along with many other Windows development tools, is not
perfect with regards to seamless operations with Windows. The
following are a few tips and tricks that various users of PowerBuilder
have posted on CompuServe and on comp.soft-sys.powerbuilder.
a. Reduce the number of colors in Windows to less than 256.
Apparantly some video drivers (especially ATI) tend to conflict with
the way PowerBuilder manages memory.
b. Increase MaxBPs to 2048 (MaxBPs=2048) in the [386enh] section of
SYSTEM.INI
Microsoft's Windows Resource Kit says "This entry specifies the
maximum number of break points (a method for transferring control to
Windows 386 enhanced mode) that can be used by the VMM. You may need
to increase this value if you are using a third party virtual device
driver that requires more break points than the default value. The
default is 200."
An article in the 1/24/94 InfoWorld article explained breakpoints in
more detail. Breakpoints are apparantly small chunks of memory that
are used to save the state of a Virtual Machine under windows.
Breakpoints are not restored after they are consumed when Windows
crosses a virtual machine boundary. Windows allocates space for the
10-byte Breakpoints in 4k chunks so that the default of 200 is really
358. Any setting, therefore, from 359 to 768 yields another 410 extra
breakpoints. Windows uses about 200 breakpoints for itself.
(Thanks to Phil Mitchell and Kurt Vonheim for posting some of the
above information on comp.soft-sys.powerbuilder. Some of the
breakpoint information was posted from a post done on CompuServe by
Breck Carter of TeamPS).
[2.3] How can I create controls on a window in a script at run-time?
There is no direct way to do this. Although you can create (allocate
instances) objects using the CREATE statement in PowerBuilder, there
is currently no known method to dynamically place objects on a Window.
However, there are several different workarounds that can be used to
provide the same basic functionality depending on what you want to do.
The most powerful way is to create a User Object for your visual
object and code your procedures in the user object. Then use the
OpenUserObject () function to instantiate your object.
If you are dealing with dynamic datawindows, you could dynamically
change the datawindow using the Modify () function.
Third, you could create the extra needed controls and design-time but
make them invisible. Then, you would make the visible when you need
them.
Balaji Murthy provided me with an additional piece of information to
add to this answer. Apparantly you can create controls such as
listboxes. However, you can not explicitly provide processing to them.
This method can be useful for performing things such as sorts. For
example, Balaji Murthy suggested that one can populate a dynamically
created listbox with the sorted property set to TRUE and then see what
the order becomes. This case differs from using the user object in
that you can just simply dynamically create an object based on an
existing type in PowerBuilder such as a ListBox. The only disadvantage
is lack of code which you get when you make a user object and
instantiate that instead.
[2.4] How do I "rollback" a change made in a descendant?
Select the menu item Edit | Reset Attributes.
[2.5] How do I increase the speed of my application startup?
Eliminating as much code as possible from the Open event of windows
will tend to increase the perceived speed of your application. Code
that would have been put in the Open event should be placed in another
event that can be posted to the window after the startup or called
from another place in the PowerBuilder program.
[2.6] How do I highlight the current row of a datawindow?
You can highlight the current row by using the datawindow SelectRow ()
function. When scrolling through the rows, use SelectRow () to first
turn off all prior selections by using the FALSE parameter and 0 for
the row number. After this, use SelectRow () with the TRUE parameter
to highlight the row the datawindow is currently on.
Example:
// Turns all selects off
dw_1.SelectRow (0, FALSE)
// Turns on select for current row
dw_1.SelectRow (dw_1.GetRow (), TRUE)
[2.7] How do I print two datawindows on the same page of a report?
You can not do this directly. There are workarounds to this though.
One is through code, examples of which may be found in sample files on
the Powersoft BBS and Compuserve forum. The other is to use nested or
composite datawindows, which were introduced in v4.0 of PowerBuilder.
[2.8] My transaction log keeps filling up. What do I do?
The following is paraphrased from a post done by Chris Greer.
When AutoCommit is FALSE (default), PowerBuilder never actually leaves
a transaction state. Normally, to handle transactions, you issue a
begin tran and then a commit tran statement to submit the change. In
PowerBuilder, instead of using begin tran as a separate statement, a
new transaction is started automatically as soon as you commit the
previous transaction. This means that if your users are idle during
an application, it can leave and active transaction on the transaction
log for a very long time.
There are two solutions to this:
1) Turn AutoCommit to TRUE, and only turn it FALSE before you issue
statements that modify the database. Set AutoCommit back to FALSE
after the changes have been COMMITted/ROLLBACKed.
2) Simply code a commit statement in the IDLE event of the
application. You can set the IDLE event to fire every 5 or 10 minutes.
This will clear up outstanding transactions if the user leaves the
machine for an extended period of time.
[2.9] How do I make an object inherited AFTER it is created?
The way you can do this is by exporting the object in the library to a
text file and manually editing the text file to include the
inheritance.
NOTE: ALWAYS make a backup of your objects before doing this!
eg. A window was created and laid out called w_customer. After
developing for awhile, you realize there is code that is in common to
several windows in your application. So you code that logic in a
window called w_maint. Now you want w_maint to be the ancestor of
w_customer so that the code will exist there as well.
These are the steps:
1. Export w_customer to a text file in the library painter.
2. Load the text file into a text editor. Do NOT use notepad for
Windows! Notepad does nasty things to extremely long lines. You can
use the built-in file editor in PowerBuilder by pressing shift-F6.
3. Look for a line that says something like
global type w_customer from Window
about 3 to 5 lines into the file. This line will also appear later in
the file.
4. Replace both occurances of this line with:
global type w_customer from w_maint
5. Save the text file.
6. Import the text file with the library painter.
You should now find that the w_customer window's ancestor is w_maint!
[2.10] Can't find PB050.DLL
This is one of the most common questions in the group it seems. It
generally occurs when you go to deploy your first application on a
machine that doesn't have the PowerBuilder development environment.
Don't start searching your drives, this file does not exist.
When PowerBuilder goes to connect to a database, it takes the first
three characters of the DBMS property of your transaction object and
sandwiches them between 'PB' and '050.DLL', so the ODBC interface is
called PBODB050.DLL.
If you receive the above message it means you have not initialized the
DBMS property of your transaction object properly. This is usually
caused by pulling those values from PB.INI on the development machine.
Only problem is, the deployment machine doesn't have a PB.INI, those
are the settings for the development environment.
Generally, you should create an INI file for each application you
deploy, and store your database and other applications settings in
that file. I recommend placing it in the Windows directory so
PowerBuilder can find it without having to hard-code the path. If
you're using Win95 or WinNT, store the settings in the registry and
forget INI files altogether.
[2.11] My application runs fine from the development environment but
GPF's in the EXE. What do I do?
There is a little-known command line option you can add when you run
your executable which will produce a trace of each line of code
executed by your EXE. Simply place '/pbdebug' (no quotes) on the
command line and PowerBuilder will generate a file called
<appname>.dbg containing a trace of each line of code executed.
This file will grow in size very quickly, so it is best to go straight
to the area causing the problem to prevent too large a trace file
being created.
Generally the last line of code the trace file shows executing is the
one just prior to the GPF. At this point you at least have a place to
start looking for your problem. From there it's just basic debugging
techniques.
When creating a machine code executable in PowerBuilder 5.0, ensure
you select the checkbox labeled 'Trace Information' if you are
planning on using the '/pbdebug' switch.
[2.12] How do I get the current directory?
While technically not the 'current' directory, the following will tell
you the directory from which the application is being run:
FUNCTION INT GetModuleFilename (UINT hwnd, &
REF STRING buffer, &
INT length) library "KERNEL.EXE"
ls_apppath = Space (128)
li_ret = GetModuleFileName (Handle (GetApplication ()), ls_apppath, 128)
This will only work when running the application as an EXE. When
running it from the development environment you do not get a valid
value returned. As a side effect, this makes a good way to determine
whether the application is running from the development or deployment
machine.
Alternatively, there is a file available on the Powersoft ftp site called
'direc.dll' which contains functions for getting and setting the current drive
and directory, as well as making and removing directories.
[2.13] The 'Picture' tab isn't showing up when I use the ctGauge
control in my window, so I can't change the bitmap. What am I
doing wrong?
The Component Toolbox OCX controls which ship with PowerBuilder use
the stock Font, Color and Picture property pages from MFC40.DLL. It
seems that on some machines the registry entries are not created which
allow those pages to show up when you select 'OCX Properties...' from
the popup menu. To correct this situation, create the following
entries in your registry:
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{0BE35201-8F91-11CE-9DE3-00AA004BB851}]
@="Color Property Page"
[HKEY_CLASSES_ROOT\CLSID\{0BE35201-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
[HKEY_CLASSES_ROOT\CLSID\{0BE35200-8F91-11CE-9DE3-00AA004BB851}]
@="Font Property Page"
[HKEY_CLASSES_ROOT\CLSID\{0BE35200-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
[HKEY_CLASSES_ROOT\CLSID\{0BE35202-8F91-11CE-9DE3-00AA004BB851}]
@="Picture Property Page"
[HKEY_CLASSES_ROOT\CLSID\{0BE35202-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
@="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
If anyone figures out how to change the picture in the background of
the ctGauge control at run-time, please let me know.
!2.14! Should I use events or functions in my application?
The answer to this depends on which version of PB you're using. In PB 5.0 the
differences between functions and events have become less significant.
However, here are some of them from PB 4.0 and PB 5.0.
PB 4.0
Events
- Can be run synchronously or asynchronously
- Cannot receive parameters (except for WordParm and LongParm)
- Cannot directly return a value
- Are only public
- Existance is not checked at compile time
Functions
- Can only be run synchronously
- Can receive arguments (by value or by reference)
- Can return a value
- Can have an access qualifier specified (public, private, protected)
- Must be a valid method for the class at compile time
PB 5.0
Events
- Are only public
- If using old syntax, existance is not checked at compile time
- If using new syntax with the 'dynamic' keyword, if event does not exist at
run-time and the calling script is not expecting a return value, the event
will fail 'silently'
Functions
- Can be public, private or protected
- If using old syntax, must be a valid method for the class at compile time
- If using new syntax with the 'dynamic' keyword, if function does not exist
at run-time an execution error occurs
---
Craig Wagner | E-mail: wagnerc@teleport.com
Certified PowerBuilder | Phone: (503) 636-2648
Developer Professional | Portland, OR USA
and Instructor |