home *** CD-ROM | disk | FTP | other *** search
/ PC Press 1997 July / Sezamfile97_2.iso / windows / program / pb.faq < prev    next >
Internet Message Format  |  1997-06-15  |  41KB

  1. Path: Eunet.yu!EU.net!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!newsfeed.direct.ca!nntp.teleport.com!usenet
  2. From: wagnerc@teleport.com (Craig Wagner)
  3. Newsgroups: comp.soft-sys.powerbuilder
  4. Subject: PB FAQ - Sorry
  5. Date: Sun, 15 Sep 1996 19:23:16 GMT
  6. Organization: MetaCorp Strategies
  7. Lines: 1073
  8. Message-ID: <323b7280.264899332@news.teleport.com>
  9. NNTP-Posting-Host: ip-pdx15-31.teleport.com
  10. X-Newsreader: Forte Agent .99e/32.227
  11.  
  12. Sorry about that last one, I accidentally 'attached' the faq instead of
  13. importing it into the body of the message. My apologies.
  14.  
  15.                           ------------------
  16.                            PowerBuilder FAQ
  17.                           ------------------
  18.  
  19.                          GENERAL INFORMATION
  20.                About Powersoft's line of Client-Server
  21.                          Development Products
  22.             As Discussed In comp.soft-sys.powerbuilder and
  23.                           pb-l@plearn.edu.pl
  24.  
  25.                         Last Updated: 8/16/96
  26.  
  27. This document serves as a FAQ (Frequently Asked Questions) for the
  28. comp.soft-sys.powerbuilder newsgroup and pb-l@plearn.edu.pl mailing
  29. list. Although efforts have been made to extract errors out of this
  30. document, the FAQ Maintainer assumes no liability for the content or
  31. use of this document.
  32.  
  33. If you feel you can contribute any information or suggestions for the
  34. FAQ please email me (address given below).  If you are contributing
  35. information, please format it in a manner which will facilitate its
  36. entry into the FAQ. I have also attempted to include answers to
  37. questions that seem to be frequently asked on the Compuserve forum,
  38. comp.soft-sys.powerbuilder and the mailing list.
  39.  
  40. Attention has been given to restricting this document to facts, tips,
  41. workarounds, and problem fixes that could not be gathered through
  42. other sources easily.  For example, pricing information is rarely
  43. given here because prices fluctuate constantly for various products
  44. and the information can easily be obtained by calling a software
  45. distributor or the company itself.
  46.  
  47. Acknowledgments are given throughout this document where applicable to
  48. particular questions.  Thanks or Acknowledgments are generally given
  49. at the end of the section describing the issue in parenthesis.  I
  50. would like to acknowledge, in particular, Gunther Birznieks for
  51. creating the initial version of this FAQ, much of which has been
  52. incorporated into this version.
  53.  
  54. FAQ bugs, flames, comments and suggestions may be directed to Craig
  55. Wagner (wagnerc@teleport.com).
  56.  
  57. Legend: ! = New since last update
  58.         * = Correction since last update
  59.  
  60. Table of Contents
  61. ==================================================================
  62. PART I: GENERAL QUESTIONS
  63.  
  64. [1.1] What is this newsgroup/mailing list for?
  65. [1.2] How do I subscribe to the mailing list?
  66. [1.3] How do I increase the chances of someone answering my question?
  67. [1.4] What is PowerBuilder?
  68. [1.5] What is the difference between Enterprise and Desktop?
  69. [1.6] What is InfoMaker?
  70. [1.7] How can I get more information about Powersoft products?
  71. [1.8] Is PowerBuilder object-oriented?
  72. [1.9] Which is better, PowerBuilder or <Product X>?
  73. [1.10] Is there an FTP site to obtain Powersoft related files?
  74. *1.11* Are there any other internet sites related to PowerBuilder?
  75. *1.12* What 3rd party class libraries are available for PowerBuilder?
  76. *1.13* What publications exist for PowerBuilder?
  77. [1.14] What is the Certified PowerBuilder Developer program?
  78. [1.15] What is the latest version of PowerBuilder?
  79. [1.16] What new features are in PowerBuilder v5.0?
  80. [1.17] How does the Sybase merger affect Powersoft?
  81. [1.18] How does Windows 95 get along with PowerBuilder?
  82. *1.19* How do I get a feature added to future versions of PowerBuilder?
  83.  
  84. PART II: TECHNICAL QUESTIONS
  85.  
  86. [2.1] What DLLs do I need for the run-time of PowerBuilder?
  87. [2.2] PowerBuilder is crashing on me! What should I look for?
  88. [2.3] How can I create controls on a window in a script at run-time?
  89. [2.4] How do I "rollback" a change made in a descendant?
  90. [2.5] How do I increase the speed of my application startup?
  91. [2.6] How do I highlight the current row of a datawindow?
  92. [2.7] How do I print two datawindows on the same page of a report?
  93. [2.8] How can I get more performance out of my PowerBuilder
  94.       Applications?
  95. [2.9] How do I make an object inherited AFTER it is created?
  96. [2.10] Can't find PB050.DLL
  97. [2.11] My application runs fine from the development environment but
  98.        GPF's in the EXE. What do I do?
  99. [2.12] How do I get the current directory?
  100. [2.13] The 'Picture' tab isn't showing up when I use the ctGauge
  101.        control in my window, so I can't change the bitmap. What am I
  102.        doing wrong?
  103. !2.14! Should I use events or functions in my application?
  104.  
  105. ---------------------------------------------------------------
  106. PART I: GENERAL QUESTIONS
  107.  
  108. [1.1] What is this newsgroup/mailing list for?
  109.  
  110. The newsgroup comp.soft-sys.powerbuilder and mailing list
  111. pb-l@plearn.edu.pl are intended to be used as a forum for discussion
  112. about PowerBuilder and other Powersoft products. Professional and
  113. Would-Be developers in PowerBuilder can discuss ideas, hints, tricks,
  114. and bugs they find in Powersoft products here.
  115.  
  116. It is NOT an official channel of PowerBuilder support.
  117.  
  118. [1.2] How do I subscribe to the mailing list?
  119.  
  120. Send an e-mail message to listserv@plearn.edu.pl. Leave the subject
  121. field blank and place "subscribe pb-l" (without quote) in the body of
  122. the message.
  123.  
  124. [1.3] How do I increase the chances of someone answering my question?
  125.  
  126. First, keep in mind that the people answering the questions are doing
  127. so free of charge, and many of them are doing it on their personal
  128. time.
  129.  
  130. Provide as much detail about what is happening (or not happening) as
  131. possible. A message that says "I can't connect to the database" will
  132. likely be ignored, whereas "When I issue the 'connect using SQLCA;'
  133. statement I get an error which states <whatever>" will probably garner
  134. some responses.
  135.  
  136. In the same vein, include such details as: version of PB you are
  137. using, OS environment (3.x, 95, NT, Mac, Unix), database you are using
  138. and how you are accessing it.
  139.  
  140. Include things you have tried and the results you observed. This will
  141. prevent you being deluged with replies to try things you have already
  142. investigated.
  143.  
  144. Lastly, speaking for myself and others who have sent me private e-mail
  145. on this topic, don't use your question as an excuse to vent your
  146. personal feelings towards Powersoft or PowerBuilder. A number of us
  147. are getting tired of seeing messages like: "As is typical of anyone
  148. using PowerBuilder, I've encountered a problem." If you have a
  149. question, ask it, if not, go away, you're cluttering the newgroup and
  150. mailing list.
  151.  
  152. [1.4] What is PowerBuilder?
  153.  
  154. PowerBuilder is a GUI (Graphical User Interface) development tool for
  155. developing Client/Server Database applications under Microsoft Windows
  156. 3.x, Microsoft Windows 95, Microsoft Windows NT, Macintosh and
  157. Solaris.
  158.  
  159. Applications can be built by creating windows, controls (such as
  160. listboxes and buttons), and menus within the PowerBuilder development
  161. environment. The language that is used to program PowerBuilder is
  162. called PowerScript which is loosely based on BASIC.
  163.  
  164. PowerBuilder supports programming on many database backends including
  165. Sybase, Oracle, Informix and others.  It also has support for ODBC
  166. database drivers.  PowerBuilder also comes with a single-user
  167. relational database management system, Sybase SQL Anywhere (formerly
  168. WATCOM SQL) 32-bit relational database.
  169.  
  170. [1.5] What is the difference between Enterprise and Desktop?
  171.  
  172. There are three different configurations in which PowerBuilder may be
  173. purchased: Desktop, Professional and Enterprise. The following chart
  174. shows the differences:
  175.  
  176. Feature                     Desktop   Professional   Enterprise
  177. Art Galleries                  X            X            X
  178. New Script Editor              X            X            X
  179. Desktop ODBC Drivers           X            X            X
  180. Install Disk Builder           X            X            X
  181. Check-in/Check-out            n/a           X            X
  182. Version Control Interfaces    n/a           X            X
  183. ObjectCycle Interfaces        n/a           X            X
  184. CODE/ORCA Enabled             n/a           X            X
  185. Full ODBC                     n/a           X            X
  186. Distributed PB                n/a          n/a           X
  187. C++ Class Builder             n/a          n/a           X
  188. Native Database Drivers       n/a          n/a           X
  189. Advanced Developer Toolkit    Opt           X            X
  190. Powersoft Foundation
  191.   Classes (PFC)               Opt           X            X
  192. ObjectCycle                   n/a          Opt           X
  193.  
  194. [1.6] What is InfoMaker?
  195.  
  196. InfoMaker is an end-user forms and reporting tool. It allows non-
  197. programmers to create applications using a point-and-click interface
  198. without writing any code.
  199.  
  200. Because InfoMaker is a subset of PowerBuilder, any forms or reports
  201. created in InfoMaker can easily be migrated to the PowerBuilder
  202. environment, allowing end-users to have a limited role in application
  203. development.
  204.  
  205. InfoMaker also comes with Data Pipeline which provides the ability to
  206. replicate data from one type of database to another relatively
  207. transparently.
  208.  
  209. [1.7] How can I get more information about Powersoft products?
  210.  
  211. Powersoft Corporation Sales and Marketing: 800-395-3525
  212. Powersoft Main Number                    : 508-287-1500
  213. Powersoft BBS                            : 508-287-1850
  214. Powersoft FaxBack System                 : 508-287-1600
  215. Powersoft Forum on CompuServe            : GO POWERSOFT
  216.  
  217. Generally, all of the above sources can provide you with information
  218. regarding training availability, schedules, pricing information on
  219. Powersoft products, etc.  The FaxBack system is especially useful for
  220. getting technical articles and information about Powersoft products
  221. that may not be in the manuals.   Through FaxBack, you may order 4-5
  222. documents per call and the cost to you is merely the long distance
  223. call to the phone number.
  224.  
  225. Powersoft generally offers "Demo Days" in major metropolitan cities.
  226. Information regarding these "Demo Days" and other Powersoft promotions
  227. can be received by calling the Powersoft 800 number given above.
  228.  
  229. [1.8] Is PowerBuilder object-oriented?
  230.  
  231. Yes.  There are varying definitions of what constitutes
  232. "Object-Oriented" programming.  PowerBuilder supports the major ideas
  233. behind Object-Oriented programming.
  234.  
  235. While some GUI-based rapid application development tools say they are
  236. object-oriented, they are generally limited to the objects built into
  237. the language. Powerbuilder goes beyond this.
  238.  
  239. The objects contained in the PowerBuilder language are fully
  240. extensible via OO based methods.  Windows, controls, and other visual
  241. objects are generally fully inherited.  Once you write code for an
  242. object in Powerbuilder such as a window, you can take that window and
  243. make new ones by inheriting it. The OO capabilities are not limited to
  244. visual objects. PowerBuilder supports OO on non-visual objects (custom
  245. classes) as well.
  246.  
  247. When methods (functions) or variables are defined for objects in
  248. PowerBuilder, you also have the ability to scope them as private,
  249. protected or public with respect to other objects that inherit them or
  250. use them.
  251.  
  252. Polymorphism is also supported in the form of allowing the same
  253. function name to exist for different object types.
  254.  
  255. When an object in PowerBuilder inherits another object, it can only
  256. inherit the properties, variables, and code of the one object.
  257. PowerBuilder does not support multiple inheritance.
  258.  
  259. [1.9] Which is better, PowerBuilder or <Product X>?
  260.  
  261. A document that goes into the nuances of all the similarities and
  262. differences of PowerBuilder and other competing products is beyond the
  263. scope of this document.
  264.  
  265. However, it should be pointed out that most of the products in this
  266. field, such as Delphi and Visual Basic, are very capable products. The
  267. decision of which product to use for a project must be made by each
  268. company based on the needs of the organization, the type of
  269. application and the availability of expertise in the products under
  270. consideration.
  271.  
  272. [1.10] Is there an FTP site to obtain Powersoft related files?
  273.  
  274. Powersoft recently established an official site to obtain bug fixes
  275. and enhancement patches to PowerBuilder.
  276.  
  277. Their FTP site is at ftp.powersoft.com.  Powersoft has stated that
  278. they are very interested in making this a reliable way of getting
  279. updates and fixes.
  280.  
  281. There are also a couple of sites on the internet that have patches and
  282. some 3rd party utilities as well as this FAQ.
  283.  
  284. *1.11* Are there any other internet sites related to PowerBuilder?
  285.  
  286. Yes! Recently there have been quite a few WWW sites that have sprung
  287. up about PowerBuilder and Powersoft products.  The list below is by no
  288. means comprehensive either.  Many of these sites point to other sites
  289. and internet areas with information about PowerBuilder and
  290. client-server related material.
  291.  
  292. URLs:
  293.  
  294. Oregon PowerBuilder User Group
  295. http://www.yasd.com/pbug/
  296.  
  297. PBL - PowerBuilder Links - Home Page
  298. http://www.opcenter.net/~david_levine/
  299.  
  300. PowerBuilder Interactive
  301. http://pk.com/powerbuilder
  302.  
  303. PowerCerv Home Page
  304. http://www.powercerv.com/
  305.  
  306. PowerBuilder Home Page
  307. http://www.servtech.com/public/bigelow/pb/pb.htm
  308.  
  309. Powersoft Web Site
  310. http://www.powersoft.com/
  311.  
  312. There is also an "alternative" newsgroup to talk about PowerBuilder
  313. set up by PowerBuilder Interactive.  The NNTP server is pk.org (point
  314. your windows based newsreader to it) and the newsgroup name is
  315. "alt.pk.powerbuilder".
  316.  
  317. *1.12* What 3rd party class libraries are available for PowerBuilder?
  318.  
  319. A class library is a set of pre-made PowerBuilder objects which
  320. provide a framework upon which applications can be made. Class
  321. libraries frequently cut down on coding common tasks such as the logic
  322. behind a master-detail relationship window, updating a single data
  323. window or the security logic behind whether a user can access a
  324. particular function.
  325.  
  326. The following is a partial list of class libraries and frameworks
  327. available, and may not be complete. Please forward modifications to
  328. the e-mail address at the beginning of this document.
  329.  
  330. PowerBuilder Foundation Classes (PFC)
  331. Powersoft Corporation
  332.  
  333. PowerClass
  334. ServerLogic
  335. phone: 206-803-0378
  336. fax:   206-803-0349
  337. 2800 Northup Way, Suite 205
  338. Bellevue, Washington  98004
  339.  
  340. PowerTOOL
  341. PowerCerv
  342. phone: 813-226-2378
  343. 400 North Ashley Street
  344. Suit 1910
  345. Tampa, Florida  33602
  346.  
  347. ObjectStart
  348. ObjectStart Professional
  349. Greenbriar and Russell
  350. phone: 708-706-4000
  351. phone: 800-453-0347
  352. 1450 East American Lane, Suite 1640
  353. Schaumburg, IL  60173
  354.  
  355. Super!Class
  356. Computronix
  357. phone: 800-359-3758
  358. fax:   403-425-8536
  359. email: info@computronix.com
  360. Suite 1101, 10250 - 101 Street
  361. Edmonton, AB  T5J 3P4
  362. Canada
  363.  
  364. *1.13* What publications exist for PowerBuilder?
  365.  
  366. Books
  367.  
  368. Title : APP DEV W/POWERBUILDER 3
  369. Author: HOBUSS, JAMES
  370. ISBN  : 0471060674
  371.  
  372. Title : DEV POWERBUILDER 3 APPS *OOP*
  373. Author: HATFIELD, BILL
  374. ISBN  : 0672304651
  375.  
  376. Title : DEV POWERBUILDER 3 APPS W/DK BESTSELL ED
  377. Author: HATFIELD, BILL
  378. ISBN  : 0672306484
  379.  
  380. Title : POWERBUILDER 4:GD DEV CLIENT/SERVER APPS
  381. Author: BAMBARA / ALLEN
  382. ISBN  : 0070054134
  383.  
  384. Title : POWERBUILDER 4 CONST KIT, THE: USING
  385. Author: RIBAR, JOHN
  386. ISBN  : 0078820790
  387.  
  388. Title : READY-MADE POWERBUILDER 4 APPS W/DK
  389. Author: JONES, ED
  390. ISBN  : 0079120628
  391.  
  392. Title : POWERBUILDER 4: BUILD CLIENT/SERVER APPS
  393. Author: MAHLER, PAUL
  394. ISBN  : 0131793004
  395.  
  396. Title : MORE PROF POWERBUILDER 5 PROG W/CD
  397. Author: BUKAUSKAS / BRAUNSTEIN
  398. ISBN  : 0135081459
  399.  
  400. Title : ADV POWERBUILDER 4 TECHS W/DK
  401. Author: DEYHIMI / HEATH / MOSLEY
  402. ISBN  : 0471049891
  403.  
  404. Title : POWERBUILDER 4 DEV GD W/CD
  405. Author: BRAUNSTEIN / MARSH
  406. ISBN  : 067230564X
  407.  
  408. Title : DEV YR FIRST POWERBUILDER 4 APP I/21 DAY
  409. Author: SALEMI, J
  410. ISBN  : 0672306239
  411.  
  412. Title : TEACH YRSLF POWERBUILDER 4 IN 14 DAYS
  413. Author: HOLSTEIN, JUDAH
  414. ISBN  : 067230676X
  415.  
  416. Title : EXPLORING POWERBUILDER W/CD *CANCELLED*
  417. Author: ANDERSON, JULIE
  418. ISBN  : 067230693X
  419.  
  420. Title : DEV POWERBUILDER 4 APP W/DK 3E
  421. Author: HATFIELD, BILL
  422. ISBN  : 0672306956
  423.  
  424. Title : POWERBUILDER 4: DESIGN, DEV & DEPLOYMENT
  425. Author: GREEN & BROW
  426. ISBN  : 0672308290
  427.  
  428. Title : OBJ-ORIENTED PROG W/POWERBUILDER *CANCEL
  429. Author: SAMS
  430. ISBN  : 0672308304
  431.  
  432. Title : POWERBUILDER 4 UNLEASHED W/CD
  433. Author: GALLAGHER ET AL
  434. ISBN  : 0672308339
  435.  
  436. Title : POWERBUILDER 4 DEV HDBK W/CD *CANCELLED*
  437. Author: HOUSE, BILL
  438. ISBN  : 0782116701
  439.  
  440. Title : USING POWERBUILDER 4 W/CD SE
  441. Author: WOOD, CHUCK
  442. ISBN  : 078970059X
  443.  
  444. Title : POWERBUILDER 4 CD TUTOR *CANCEL*
  445. Author: BICKER & DUDEK
  446. ISBN  : 0789702819
  447.  
  448. Title : LEARN POWERBUILDER 5.O F/WIN I/A DAY
  449. Author: NESBITT, DAVID
  450. ISBN  : 1556224710
  451.  
  452. Title : POWERBUILDER 4: A DEV GD W/DK
  453. Author: MCCLANAHAN, DAVID
  454. ISBN  : 1558514171
  455.  
  456. Title : POWERBUILDER 4 DEV GD W/DK
  457. Author: CASCIATO, CESARE
  458. ISBN  : 1562762125
  459.  
  460. Title : POWERBUILDER 4 POWER TOOLKIT W/CD
  461. Author: COOMBS, TED & JASON
  462. ISBN  : 1566042240
  463.  
  464. Title : POWERBUILDER 4 PROG F/DUMMIES
  465. Author: COOMBS, TED & JASON
  466. ISBN  : 1568843259
  467.  
  468. Title : REV GD T/ POWERBUILDER 4 W/CD
  469. Author: BODEPUDI, PRASAD
  470. ISBN  : 1874416605
  471.  
  472. Title : POWERBUILDER 4: SECRETS O/T/POWERBUILDER
  473. Author: MACDONALD & BENFIELD-EDS
  474. ISBN  : 1886141002
  475.  
  476. Title : POWERBUILDER 5 :OBJ-ORIENT DESIGN & DEV
  477. Author: GREEN / BROWN
  478. ISBN  : 0070244693
  479.  
  480. Title : SUPERCHARING POWERBUILDER 5 APPS *CANCEL
  481. Author: ADEL, SAM
  482. ISBN  : 0078821754
  483.  
  484. Title : PROF POWERBUILDER 5 PROG W/CD
  485. Author: BUKAUSKAS / BRAUNSTEIN
  486. ISBN  : 0132385775
  487.  
  488. Title : POWERBUILDER 5 DESKTOP: T/AUTH GD W/CD
  489. Author: REYNOLDS / ROBBINS
  490. ISBN  : 0201408864
  491.  
  492. Title : ADV POWERBUILDER 5 TECHS W/DK
  493. Author: DEYHIMI / KNIGHT / MOSELY
  494. ISBN  : 0471153397
  495.  
  496. Title : POWERBUILDER 5 UNLEASHED W/CD 2E
  497. Author: GALLAGHER & HERBERT
  498. ISBN  : 0672309076
  499.  
  500. Title : DEV POWERBUILDER 5 APPS W/CD 4E
  501. Author: HATFIELD, BILL
  502. ISBN  : 0672309165
  503.  
  504. Title : POWERBUILDER 5 DEV HDBK *CANCELLED*
  505. Author:
  506. ISBN  : 0782119425
  507.  
  508. Title : POWERBUILDER 5 EXPERT SOLUTIONS *CANCEL*
  509. Author: MCDONALD
  510. ISBN  : 0789703467
  511.  
  512. Title : USING POWERBUILDER 5 2E W/CD
  513. Author: WOOD, CHUCK
  514. ISBN  : 0789707543
  515.  
  516. Title : TEACH YRSLF POWERBUILDER 5 W/DK
  517. Author: MCCLANAHAN, DAVID
  518. ISBN  : 1558284745
  519.  
  520. Title : POWERBUILDER 5 F/ XBASE PROGS W/DK *PPD*
  521. Author: NUNEMACHER, GREG
  522. ISBN  : 1558514538
  523.  
  524. Title : POWERBUILDER 5: A DEV GD W/DK
  525. Author: MCCLANAHAN
  526. ISBN  : 1558514732
  527.  
  528. Title : FOUND POWERBUILDER 5 PROG W/CD *PPD*
  529. Author: SMITH
  530. ISBN  : 156884302X
  531.  
  532. Title : POWERBUILDER 5 HOW-TO W/CD
  533. Author: BRIBERDORF,GLIDDEN&POWERS
  534. ISBN  : 1571690557
  535.  
  536. Title : INTRO TO POWERBUILDER 5
  537. Author: BOUCHARD
  538. ISBN  : 1575763567
  539.  
  540. Title : INTRO TO POWERBUILDER 5 I/M
  541. Author: TBA
  542. ISBN  : 1575763753
  543.  
  544. Title : POWERBUILDER 5 FUNDS W/DK
  545. Author: ERLANK & LEVIN
  546. ISBN  : 185032283X
  547.  
  548. Title : ADV POWERBUILDER 5 W/CD :TOOLS F/T/
  549. Author: BALL, DEREK
  550. ISBN  : 1850328552
  551.  
  552. Title : INSTANT POWERBUILDER 5 OBJECTS
  553. Author:
  554. ISBN  : 1861000065
  555.  
  556. The above list is courtesy of:
  557.  
  558. Frank Hanlan,
  559. Computer Book Source formerly known as Edmonton Computer Books
  560. 10265-107 St. Edmonton, AB T5J 1K1 E-mail:frank@ecbs.sas.ab.ca
  561. Ph:(403)429-1077 Fax:(403)429-1964
  562. New Store in Calgary, AB Canada at 311-17th Avenue SW T2S 0A5
  563. Ph:(403)229-2520 Fax:(403)229-3977 E-mail:ccbs@sas.ab.ca
  564.  
  565. Recently two books released from Sams Publishing contained a Word
  566. macro virus on the enclosed CD. The following is the official apology
  567. from Sams:
  568.  
  569.         VIRUS ALERT
  570.  
  571.         Sams Publishing sincerely apologizes for shipping the
  572.         PowerBuilder 5 Unleashed, 2nd edition and the Developing
  573.         PowerBuilder 5 Applications CD-ROMs with the Concept Virus
  574.         (also known as the Word Prank Macro virus).
  575.  
  576.         The three files infected with the Concept virus are
  577.           (CD-ROM drive letter):\3RDPARTY\ATTCHMAT\ATTM.DOC
  578.           (CD-ROM drive letter):\3RDPARTY\ATTCHMAT\LOGO.DOC
  579.           (CD-ROM drive letter):\3RDPARTY\CALLBACK\CBDESC.DOC
  580.  
  581.         We have posted the "clean" versions of these three files on
  582.         our Web site (http://www.mcp.com/sams).
  583.  
  584.         The Microsoft Corporation has developed a Macro Virus
  585.         Protection tool that can be downloaded from the Microsoft WWW
  586.         site at http://www.microsoft.com/msoffice.com/msoffice or from
  587.         the Word forums on CompuServe and America Online.
  588.  
  589.         If you have any further problems with either of PowerBuilder
  590.         CD-ROMs, please contact us at one of the following locations:
  591.  
  592.         Internet e-mail: support@mcp.com
  593.         Mail: Macmillan Computer Publishing
  594.               Support Department
  595.               201 West 103rd Street
  596.               Indianapolis, IN 46290
  597.               Telephone: (317) 581-3833  Fax: (317) 581-4773
  598.         Internet WWW (The Macmillan Information SuperLibrary):
  599.           http://www.mcp.com/sams
  600.         Internet FTP: ftp.mcp.com/pub/sams
  601.         CompuServe: The keyword for our forum is SAMS ("GO SAMS").
  602.                     We're a part of the Macmillan Computer Publishing
  603.                     forum.
  604.  
  605.         Thank you for your patience,
  606.  
  607.         Sams Publishing
  608.  
  609. Magazines
  610.  
  611. PowerBuilder Developer's Journal
  612. Publisher: Sys-Con
  613. Address  : 46 Holly Street
  614.            Jersey City, NJ  07305
  615. Phone    : 914-735-1900
  616. Rate     : $119/Year
  617.  
  618. PowerBuilder Advisor
  619. Publisher: Advisor Publications
  620. Address  : 4010 Morena Blvd.
  621.            P.O. Box 17902
  622.            San Diego, CA  92177
  623. Phone    : 800-336-6060 (inside the USA)
  624.            619-483-6400 (outside the USA)
  625. Rate     : $39/six issues
  626.  
  627. [1.14] What is the Certified PowerBuilder Developer program?
  628.  
  629. The Certified PowerBuilder Developer program has two levels: CPD
  630. Associate and CPD Professional.
  631.  
  632. To achieve CPD Associate level, you must pass two written exams. The
  633. first written exam is meant to test the fundamentals of PowerBuilder
  634. programming. The second exam is meant to test the advanced features of
  635. PowerBuilder including topics covered in Building Object-Oriented
  636. Applications with PowerBuilder, Mastering DataWindows, Exploiting
  637. DataWindow Technology and Managing Performance in PowerBuilder.
  638.  
  639. To achieve CPD Professional status, you must first obtain CPD
  640. Associate status.  After that, you take an application test that tests
  641. your ability to create application modules that solve real world
  642. problems.
  643.  
  644. The written exams cost $100 each. Information on where and when to
  645. take the exams can be obtained by calling 1-800-407-EXAM.
  646.  
  647. [1.15] What is the latest version of PowerBuilder?
  648.  
  649. PowerBuilder v5.x is currently at release 5.0.01. You may download the
  650. patches off of the Powersoft BBS or the Powersoft FTP site at
  651. ftp.powersoft.com.
  652.  
  653. [1.16] What new features are in PowerBuilder v5.0?
  654.  
  655. There are a multitude of new features for PowerBuilder v5.0, including
  656. but not limited to:
  657.  
  658. Colour-coded script editor
  659. New DataWindow presentation styles: RTF and OLE 2.0
  660. OCX support
  661. Machine code generation
  662. Direct referencing of datawindow object controls
  663. New calling syntax for functions and events
  664. New Win95 controls (which also work in 16-bit environment)
  665.   such as Tab, TreeView and ListView
  666.  
  667. [1.17] How does the Sybase merger affect Powersoft?
  668.  
  669. In general, the merger will not adversely affect Powersoft. Powersoft
  670. will remain database independant in terms of supporting client-server
  671. backends equally.  For now, Powersoft, although owned by Sybase, will
  672. remain relatively independant.
  673.  
  674. [1.18] How does Windows 95 get along with PowerBuilder?
  675.  
  676. There are two issues with Windows 95.  One is compatibility with
  677. PowerBuilder as a 16-bit Windows 3.1 application.  The other is having
  678. a version which takes advantage of being a Windows 95 application.
  679.  
  680. PowerBuilder v5.0 supports Windows 95 fully.
  681.  
  682. Powersoft claims that you require v4.0.03 and up to run v4.x under
  683. Win95, although I personally ran v4.0.02 for several months with no
  684. difficulty under Win95.
  685.  
  686. *1.19* How do I get a feature added to future versions of
  687.        PowerBuilder?
  688.  
  689. Send a message to Cathy Col at ccol@powersoft.com with the subject
  690. "Enhancement Request".  All messages with this subject are pooled and
  691. added to a running list.
  692.  
  693. PART II: TECHNICAL QUESTIONS
  694.  
  695. [2.1] What DLLs do I need for the Run-Time of PowerBuilder?
  696.  
  697. The best way to get the answer to this is to run the setup program
  698. from your distribution CD and choose to install the Deployment Kit. If
  699. you'd rather do things manually, you need the following DLLs:
  700.  
  701. Required 32-bit Deployment DLLs
  702. PBBGR050.DLL    Business graph engine
  703. PBDWE050.DLL    DataWindow engine
  704. PBROI050.DLL    OLE 2 support
  705. PBRTE050.DLL    Runtime engine
  706. PBRTF050.DLL    Runtime functions
  707. PBSHR050.DLL    Storage manager, printing and various other utilities
  708. PBTYP050.DLL    System object/function definitions
  709.  
  710. Optional 32-bit Deployment DLLs
  711. PBDBL050.DLL    Database interface - message handler for PBSYB, PBMDI,
  712.                 PBNET
  713. PBDBT050.DLL    Database interface - message handler for PBSYC
  714. PBDPB050.DLL    Distributed PowerBuilder - local driver
  715. PBDSE050.DLL    Distributed PowerBuilder
  716. PBIDBF50.DLL    DataWindow Import dBase
  717. PBIN5050.DLL    Database interface - Informix 5.0
  718. PBITXT50.DLL    DataWindow Import text
  719. PBMDI050.DLL    Database interface - Sybase InformationConnect (MDI)
  720. PBMSS050.DLL    Database interface - MS SQL Server 6.0
  721. PBNET050.DLL    Database interface - Net Gateway
  722. PBNPC050.DLL    Distributed PowerBuilder - Named Pipes client
  723. PBNPS050.DLL    Distributed PowerBuilder - Named Pipes server
  724. PBO71050.DLL    Database interface - Oracle 7.1
  725. PBO72050.DLL    Database interface - Oracle 7.2
  726. PBODB050.DLL    Database interface - ODBC
  727. PBOSC050.DLL    Distributed PowerBuilder - Open Server client
  728. PBOSS050.DLL    Distributed PowerBuilder - Open Server server
  729. PBRTC050.DLL    Rich text support
  730. PBSMI050.DLL    Distributed PowerBuilder
  731. PBSYB050.DLL    Database interface - Sybase DBLIB interface (Microsoft
  732.                 lib linked)
  733. PBSYC050.DLL    Database interface - Sybase CTLIB interface
  734. PBSYT050.DLL    Database interface - Sybase DBLIB interface (Sybase
  735.                 lib linked)
  736. PBWSC050.DLL    Distributed PowerBuilder - WinSock client
  737. PBWSS050.DLL    Distributed PowerBuilder - WinSock server
  738.  
  739. Required 16-bit Deployment DLLs
  740. PBBGR050.DLL    Business graph engine
  741. PBDWE050.DLL    DataWindow engine
  742. PBOUI050.DLL    OLE 2 user interface
  743. PBROI050.DLL    OLE 2 support
  744. PBRTE050.DLL    Runtime engine
  745. PBRTF050.DLL    Runtime functions
  746. PBSHR050.DLL    Storage manager, printing and various other utilities
  747. PBTYP050.DLL    System object/function definitions
  748. PBVBX050.DLL    VBX support
  749.  
  750. Optional 16-bit Deployment DLLs
  751. PBDBL050.DLL    Database interface - message handler for PBSYB, PBMDI,
  752.                 PBNET
  753. PBDPB050.DLL    Distributed PowerBuilder - local driver
  754. PBDSE050.DLL    Distributed PowerBuilder
  755. PBIBM050.DLL    Database interface - IBM
  756. PBIDBF50.DLL    DataWindow Import dBase
  757. PBIN5050.DLL    Database interface - Informix 5.0
  758. PBITXT50.DLL    DataWindow Import text
  759. PBMDI050.DLL    Database interface - Sybase InformationConnect (MDI)
  760. PBMSS050.DLL    Database interface - MS SQL Server 6.0
  761. PBNET050.DLL    Database interface - Net Gateway
  762. PBO71050.DLL    Database interface - Oracle 7.1
  763. PBODB050.DLL    Database interface - ODBC
  764. PBOR7050.DLL    Database interface - Oracle 7.0
  765. PBOSC050.DLL    Distributed PowerBuilder - Open Server client
  766. PBRTC050.DLL    Rich text support
  767. PBSMI050.DLL    Distributed PowerBuilder
  768. PBSYB050.DLL    Database interface - Sybase DBLIB interface (Microsoft
  769.                 lib linked)
  770. PBSYC050.DLL    Database interface - Sybase CTLIB interface
  771. PBWSC050.DLL    Distributed PowerBuilder - WinSock client
  772.  
  773. The above lists come from the appendix of "PowerBuilder 5.0 Compiled
  774. Code White Paper", available from the Powersoft Web Site.
  775.  
  776. [2.2] PowerBuilder is crashing on me! What should I look for?
  777.  
  778. PowerBuilder, along with many other Windows development tools, is not
  779. perfect with regards to seamless operations with Windows. The
  780. following are a few tips and tricks that various users of PowerBuilder
  781. have posted on CompuServe and on comp.soft-sys.powerbuilder.
  782.  
  783. a. Reduce the number of colors in Windows to less than 256.
  784.  
  785. Apparantly some video drivers (especially ATI) tend to conflict with
  786. the way PowerBuilder manages memory.
  787.  
  788. b. Increase MaxBPs to 2048 (MaxBPs=2048) in the [386enh] section of
  789.    SYSTEM.INI
  790.  
  791. Microsoft's Windows Resource Kit says "This entry specifies the
  792. maximum number of break points (a method for transferring control to
  793. Windows 386 enhanced mode) that can be used by the VMM.  You may need
  794. to increase this value if you are using a third party virtual device
  795. driver that requires more break points than the default value.  The
  796. default is 200."
  797.  
  798. An article in the 1/24/94 InfoWorld article explained breakpoints in
  799. more detail.  Breakpoints are apparantly small chunks of memory that
  800. are used to save the state of a Virtual Machine under windows.
  801. Breakpoints are not restored after they are consumed when Windows
  802. crosses a virtual machine boundary.  Windows allocates space for the
  803. 10-byte Breakpoints in 4k chunks so that the default of 200 is really
  804. 358.  Any setting, therefore, from 359 to 768 yields another 410 extra
  805. breakpoints.  Windows uses about 200 breakpoints for itself.
  806.  
  807. (Thanks to Phil Mitchell and Kurt Vonheim for posting some of the
  808. above information on comp.soft-sys.powerbuilder.  Some of the
  809. breakpoint information was posted from a post done on CompuServe by
  810. Breck Carter of TeamPS).
  811.  
  812. [2.3] How can I create controls on a window in a script at run-time?
  813.  
  814. There is no direct way to do this.  Although you can create (allocate
  815. instances) objects using the CREATE statement in PowerBuilder, there
  816. is currently no known method to dynamically place objects on a Window.
  817.  
  818. However, there are several different workarounds that can be used to
  819. provide the same basic functionality depending on what you want to do.
  820.  
  821. The most powerful way is to create a User Object for your visual
  822. object and code your procedures in the user object.  Then use the
  823. OpenUserObject () function to instantiate your object.
  824.  
  825. If you are dealing with dynamic datawindows, you could dynamically
  826. change the datawindow using the Modify () function.
  827.  
  828. Third, you could create the extra needed controls and design-time but
  829. make them invisible. Then, you would make the visible when you need
  830. them.
  831.  
  832. Balaji Murthy provided me with an additional piece of information to
  833. add to this answer.  Apparantly you can create controls such as
  834. listboxes. However, you can not explicitly provide processing to them.
  835. This method can be useful for performing things such as sorts.  For
  836. example, Balaji Murthy suggested that one can populate a dynamically
  837. created listbox with the sorted property set to TRUE and then see what
  838. the order becomes. This case differs from using the user object in
  839. that you can just simply dynamically create an object based on an
  840. existing type in PowerBuilder such as a ListBox. The only disadvantage
  841. is lack of code which you get when you make a user object and
  842. instantiate that instead.
  843.  
  844. [2.4] How do I "rollback" a change made in a descendant?
  845.  
  846. Select the menu item Edit | Reset Attributes.
  847.  
  848. [2.5] How do I increase the speed of my application startup?
  849.  
  850. Eliminating as much code as possible from the Open event of windows
  851. will tend to increase the perceived speed of your application.  Code
  852. that would have been put in the Open event should be placed in another
  853. event that can be posted to the window after the startup or called
  854. from another place in the PowerBuilder program.
  855.  
  856. [2.6] How do I highlight the current row of a datawindow?
  857.  
  858. You can highlight the current row by using the datawindow SelectRow ()
  859. function.  When scrolling through the rows, use SelectRow () to first
  860. turn off all prior selections by using the FALSE parameter and 0 for
  861. the row number.  After this, use SelectRow () with the TRUE parameter
  862. to highlight the row the datawindow is currently on.
  863.  
  864. Example:
  865.  
  866. // Turns all selects off
  867. dw_1.SelectRow (0, FALSE)
  868.  
  869. // Turns on select for current row
  870. dw_1.SelectRow (dw_1.GetRow (), TRUE)
  871.  
  872. [2.7] How do I print two datawindows on the same page of a report?
  873.  
  874. You can not do this directly. There are workarounds to this though.
  875. One is through code, examples of which may be found in sample files on
  876. the Powersoft BBS and Compuserve forum. The other is to use nested or
  877. composite datawindows, which were introduced in v4.0 of PowerBuilder.
  878.  
  879. [2.8] My transaction log keeps filling up. What do I do?
  880.  
  881. The following is paraphrased from a post done by Chris Greer.
  882.  
  883. When AutoCommit is FALSE (default), PowerBuilder never actually leaves
  884. a transaction state.  Normally, to handle transactions, you issue a
  885. begin tran and then a commit tran statement to submit the change.  In
  886. PowerBuilder, instead of using begin tran as a separate statement, a
  887. new transaction is started automatically as soon as you commit the
  888. previous transaction.  This means that if your users are idle during
  889. an application, it can leave and active transaction on the transaction
  890. log for a very long time.
  891.  
  892. There are two solutions to this:
  893.  
  894. 1) Turn AutoCommit to TRUE, and only turn it FALSE before you issue
  895. statements that modify the database.  Set AutoCommit back to FALSE
  896. after the changes have been COMMITted/ROLLBACKed.
  897.  
  898. 2) Simply code a commit statement in the IDLE event of the
  899. application. You can set the IDLE event to fire every 5 or 10 minutes.
  900. This will clear up outstanding transactions if the user leaves the
  901. machine for an extended period of time.
  902.  
  903. [2.9] How do I make an object inherited AFTER it is created?
  904.  
  905. The way you can do this is by exporting the object in the library to a
  906. text file and manually editing the text file to include the
  907. inheritance.
  908.  
  909. NOTE: ALWAYS make a backup of your objects before doing this!
  910.  
  911. eg.  A window was created and laid out called w_customer. After
  912. developing for awhile, you realize there is code that is in common to
  913. several windows in your application.  So you code that logic in a
  914. window called w_maint.  Now you want w_maint to be the ancestor of
  915. w_customer so that the code will exist there as well.
  916.  
  917. These are the steps:
  918.  
  919. 1. Export w_customer to a text file in the library painter.
  920.  
  921. 2. Load the text file into a text editor.  Do NOT use notepad for
  922. Windows! Notepad does nasty things to extremely long lines. You can
  923. use the built-in file editor in PowerBuilder by pressing shift-F6.
  924.  
  925. 3. Look for a line that says something like
  926.  
  927. global type w_customer from Window
  928.  
  929. about 3 to 5 lines into the file.  This line will also appear later in
  930. the file.
  931.  
  932. 4. Replace both occurances of this line with:
  933.  
  934. global type w_customer from w_maint
  935.  
  936. 5. Save the text file.
  937.  
  938. 6. Import the text file with the library painter.
  939.  
  940. You should now find that the w_customer window's ancestor is w_maint!
  941.  
  942. [2.10] Can't find PB050.DLL
  943.  
  944. This is one of the most common questions in the group it seems. It
  945. generally occurs when you go to deploy your first application on a
  946. machine that doesn't have the PowerBuilder development environment.
  947. Don't start searching your drives, this file does not exist.
  948.  
  949. When PowerBuilder goes to connect to a database, it takes the first
  950. three characters of the DBMS property of your transaction object and
  951. sandwiches them between 'PB' and '050.DLL', so the ODBC interface is
  952. called PBODB050.DLL.
  953.  
  954. If you receive the above message it means you have not initialized the
  955. DBMS property of your transaction object properly. This is usually
  956. caused by pulling those values from PB.INI on the development machine.
  957. Only problem is, the deployment machine doesn't have a PB.INI, those
  958. are the settings for the development environment.
  959.  
  960. Generally, you should create an INI file for each application you
  961. deploy, and store your database and other applications settings in
  962. that file. I recommend placing it in the Windows directory so
  963. PowerBuilder can find it without having to hard-code the path. If
  964. you're using Win95 or WinNT, store the settings in the registry and
  965. forget INI files altogether.
  966.  
  967. [2.11] My application runs fine from the development environment but
  968.        GPF's in the EXE. What do I do?
  969.  
  970. There is a little-known command line option you can add when you run
  971. your executable which will produce a trace of each line of code
  972. executed by your EXE. Simply place '/pbdebug' (no quotes) on the
  973. command line and PowerBuilder will generate a file called
  974. <appname>.dbg containing a trace of each line of code executed.
  975.  
  976. This file will grow in size very quickly, so it is best to go straight
  977. to the area causing the problem to prevent too large a trace file
  978. being created.
  979.  
  980. Generally the last line of code the trace file shows executing is the
  981. one just prior to the GPF. At this point you at least have a place to
  982. start looking for your problem. From there it's just basic debugging
  983. techniques.
  984.  
  985. When creating a machine code executable in PowerBuilder 5.0, ensure
  986. you select the checkbox labeled 'Trace Information' if you are
  987. planning on using the '/pbdebug' switch.
  988.  
  989. [2.12] How do I get the current directory?
  990.  
  991. While technically not the 'current' directory, the following will tell
  992. you the directory from which the application is being run:
  993.  
  994. FUNCTION INT GetModuleFilename (UINT hwnd,              &
  995.                                 REF STRING buffer,      &
  996.                                 INT length) library "KERNEL.EXE"
  997.  
  998. ls_apppath = Space (128)
  999. li_ret = GetModuleFileName (Handle (GetApplication ()), ls_apppath, 128)
  1000.  
  1001. This will only work when running the application as an EXE. When
  1002. running it from the development environment you do not get a valid
  1003. value returned. As a side effect, this makes a good way to determine
  1004. whether the application is running from the development or deployment
  1005. machine.
  1006.  
  1007. Alternatively, there is a file available on the Powersoft ftp site called
  1008. 'direc.dll' which contains functions for getting and setting the current drive
  1009. and directory, as well as making and removing directories.
  1010.  
  1011. [2.13] The 'Picture' tab isn't showing up when I use the ctGauge
  1012.        control in my window, so I can't change the bitmap. What am I
  1013.        doing wrong?
  1014.  
  1015. The Component Toolbox OCX controls which ship with PowerBuilder use
  1016. the stock Font, Color and Picture property pages from MFC40.DLL. It
  1017. seems that on some machines the registry entries are not created which
  1018. allow those pages to show up when you select 'OCX Properties...' from
  1019. the popup menu. To correct this situation, create the following
  1020. entries in your registry:
  1021.  
  1022. REGEDIT4
  1023.  
  1024. [HKEY_CLASSES_ROOT\CLSID\{0BE35201-8F91-11CE-9DE3-00AA004BB851}]
  1025. @="Color Property Page"
  1026.  
  1027. [HKEY_CLASSES_ROOT\CLSID\{0BE35201-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
  1028. @="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
  1029.  
  1030. [HKEY_CLASSES_ROOT\CLSID\{0BE35200-8F91-11CE-9DE3-00AA004BB851}]
  1031. @="Font Property Page"
  1032.  
  1033. [HKEY_CLASSES_ROOT\CLSID\{0BE35200-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
  1034. @="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
  1035.  
  1036. [HKEY_CLASSES_ROOT\CLSID\{0BE35202-8F91-11CE-9DE3-00AA004BB851}]
  1037. @="Picture Property Page"
  1038.  
  1039. [HKEY_CLASSES_ROOT\CLSID\{0BE35202-8F91-11CE-9DE3-00AA004BB851}\InprocServer32]
  1040. @="C:\\WINDOWS\\SYSTEM\\MFC40.DLL"
  1041.  
  1042. If anyone figures out how to change the picture in the background of
  1043. the ctGauge control at run-time, please let me know.
  1044.  
  1045. !2.14! Should I use events or functions in my application?
  1046.  
  1047. The answer to this depends on which version of PB you're using. In PB 5.0 the
  1048. differences between functions and events have become less significant.
  1049. However, here are some of them from PB 4.0 and PB 5.0.
  1050.  
  1051. PB 4.0
  1052. Events
  1053. - Can be run synchronously or asynchronously
  1054. - Cannot receive parameters (except for WordParm and LongParm)
  1055. - Cannot directly return a value
  1056. - Are only public
  1057. - Existance is not checked at compile time
  1058.  
  1059. Functions
  1060. - Can only be run synchronously
  1061. - Can receive arguments (by value or by reference)
  1062. - Can return a value
  1063. - Can have an access qualifier specified (public, private, protected)
  1064. - Must be a valid method for the class at compile time
  1065.  
  1066. PB 5.0
  1067. Events
  1068. - Are only public
  1069. - If using old syntax, existance is not checked at compile time
  1070. - If using new syntax with the 'dynamic' keyword, if event does not exist at
  1071.   run-time and the calling script is not expecting a return value, the event
  1072.   will fail 'silently'
  1073.  
  1074. Functions
  1075. - Can be public, private or protected
  1076. - If using old syntax, must be a valid method for the class at compile time
  1077. - If using new syntax with the 'dynamic' keyword, if function does not exist
  1078.   at run-time an execution error occurs
  1079.  
  1080. ---
  1081. Craig Wagner        | E-mail:  wagnerc@teleport.com
  1082. Certified PowerBuilder    | Phone: (503) 636-2648
  1083.  Developer Professional | Portland, OR USA
  1084.  and Instructor         |
  1085.