DisplacedGuy’s Official PowerBuilder Training Portal


  • Training Videos
  • How-to Articles
  • Step-by-Step Tutorials
  • Migration Docs
  • Reference Guides
  • Sample Apps
  • PB – .NET Maps
  • PB – Java Maps
  • YouTube Videos
  • Launched in 2010
  • Emphasis on PB12.5
  • Using .NET with PB

More Training

  • Compensate for the lack of books written for PB version ten and higher.
  • Create a diverse and up-to-date collection of training documents.

Higher Quality

  • Reduce negative publicity/perception caused by poorly designed applications.
  • Reduce negative publicity/perception caused by poorly performing PB applications.

Reduced Effort

  • Increase developer productivity so applications can be written faster.
  • Improve design making future changes easier and less risky.


DisplacedGuy’s PB12.5 & .NET Self-Made Tutorials & Sample Applications

Rich Bianco

Rich Bianco PowerBuiilder, C# .NET, Silverlight Developer & amateur writer.

PowerBuilder or PowerBuilder to .NET Developer – I am recently off contract and looking for PowerBuilder or .NET development contracts or permanent positions. I would really prefer projects that involve migrating from PowerBuilder to .NET or WaveMaker. I have experience performing migrations to ASP.NET MVC using C#.NET, Entity Framework. My rate is extremely flexible, I just want to stay busy and keep learning. Thank you very much – rich at displacedguy dot com.

PowerBuilder newsletter.  Why?

I send a few (very few) newsletters per year but it is a good way for us PB developers to network and discuss specifics about the consulting marketplace.  In short networking, and sharing ideas, as of now I have never sent a single marketing based newsletter. I cannot promise that I never will, but it is highly unlikely– not my style and not something I have time for.

Many of the tutorials included here are self-created based by me on subjects that interest me or based on suggestions or special request. You may want to bookmark and check back, the last update to this page was FridayOct 10, 2014.

W o u l d  Y O U  p l e a s e  h e l p ?

This is sort of a desperate plea, a swallow my pride and ask for help situation. I have never asked for help in my life before so it doesn’t come easy. Other than helping me find a contract, you can help by...

Next time you think to order something from Amazon… would you consider going to their site via my Amazon link on the top right side bar or the one on this page? You don’t need to buy anything in my list. The prices are exactly the same. If you use my link the referral cookie you get is good for 24 hours. If you have already visited Amazon today, then I won’t get the referral, and if your browser blocks cookies I will not get a referral. Thank you in advance, and if there is anything I can help with, PowerBuilder related (work challenge, etc.) or not, just email me and I’ll gladly help for free! You’ll see an increase in ads on this site, I apologize in advance.

Section One

new  –  This article describes the techniques and code used to Use .NET Visual Controls in PB Classic Applications. This technique was demonstrated at the Carolina Code Camp 2012 and at the May 2012 meeting of the North Carolina PowerBuilder User Group.

The techniques described here utilize Visual Basic .Net (coded in Visual Studio 2010) with the Interop Forms Toolkit available from Microsoft. The Interop Forms Toolkit was originally intended as a ‘bridge’ between the VB 6 world and VB .Net. It allows you to host any .Net control in any Win32 application that supports COM. The current version supports Visual Studio 2005, 2008, and 2010.

new PowerBuilder 5, 6, 7, 8, Tips by Artful Software.

DisplacedGuys Self Created PowerBuilder Tutorials & Sample Applications

This section consists of tutorials that were created by me and typically consist of using .NET assemblies in PowerBuilder or using PB assemblies in .NET.  They also contain some PB WCF Web Services that are used in an ASP.NET MVC3 application.  Most sample applications have downloadable code available.

How To Leverage .NET Framework Code in PowerBuilder.NET Applications – this is a self-written article that is intended for persons who are new to mixing PowerScript and .NET Framework Code within a PowerBuilder.NET application.  This article was created by Rich (aka DisplacedGuy) because you asked for this type information in my last poll.

 Yet another PowerBuilder.NET WCF Web Service How To Article – this article was also created based on your suggestion. This one is my most complete example so far and takes it one step farther than the other articles by publishing to IIS on an internet facing domain and making the web service available for use by anyone.

Testing and Debugging WCF Web Services – This is yet another article created based on your feedback.  Would you believe that debugging PB.NET WCF Web Services is not that difficult even when consuming the web service using Visual Studio.

Creating my first PowerBuilder 12.5 .NET WCF Service.  – This is an overview type article that summarizes my experiences creating a PowerBuilder WCF Service using PB 12.5 .NET, MS SQL Server 2008, and ASP.NET MVC3 as the client website utilizing the new WCF service.

 Creating & Using a PowerBuilder 12.5 .NET WCF Service. – This step-by-step article contains over three dozen print screens and is a very detailed step by step process that I used when creating my first WCF Service.  This is intended for PB developers who have not yet created a WCF Service.

 Mapping PowerBuilder and .NET (C#) data types.  – This is a reference page containing mapping of PowerBuilder and .NET (C#) data types.

Another Calling Web Service from PowerBuilder 12.5 Example & Creating a Web Service using PowerBuilder –  This time I will explain how to access the web service via PowerBuilder. I am using the Classic version of PowerBuilder 12.5.

Section Two

DisplacedGuys Favorite PowerBuilder Learning Links

This section consists of PB training that I felt was exceptional in quality and content and consists of content that was not created by me.

RESTful Service Quick Start Video –  by expert Yakov Werde  (26 minutes, Flash)  Mr. Werde will take you through all of the steps involved in writing a PowerBuilder application that utilizes RESTful web services.  This quick start video covers the following subjects.

1. Creating a basic PowerBuilder framework that partitions the logic into libraries.  2. Examine some existing free RESTful services, and the XML or JSON return values using Fiddler.   3.  Examine XML project.  4. Examine JSON project.  5. Code the RESTful service.    This quick start example also illustrates the use of CVUO’s (custom visual user objects).

This copyrighted digital was created by DisplacedGuy.com and copyrighted by DisplacedGuy.com.   Attribution to DisplacedGuy.com does not change the requirement that written permission from DisplacedGuy.com is required to copy this content in part or whole.  Digital Millenium Copyright Act (DMCA)
 New May, 2014

PowerBuilder, Stay or Not to Stay – This unique white-paper discusses the decision making process of keeping an application written in PowerBuilder or migrating it to another language.

PowerBuilder 12.5 IDE Tips & Tricks – Webcast

The PowerBuilder Wikipedia Page – I added a link to this page in the Wiki entry so am putting a link to it here.

FREE Copy of PowerBuilder 12.5 – Download PB 12.5 – Is this REALLY free?  Hmm, is SAP feeling guilty about the delay for PB15?  I don’t see anything about this being a time limited installation, it “looks” to be free.  I wll give it a try. Nope, it is just a TRIAL copy…

Moving your PB App to the Web – Sybase.com Whitepaper

PowerBuilder Naming Conventions by Donalds Brain.com – If you are looking for naming conventions commonly used when coding with PowerBuilder this is s good list. Most companies use some sort of naming convention, and most look similar to this list. Some shops use of_ for object level functions, and some use uf_ instead (like user function). The key is to stay consistent with the PB shop you are working.

PowerBuilder 12 Video Tutorials and Training for PowerBuilder .NET

  • eTutorial: PowerBuilder 12 .NET StockTrader Sample Application – This eTutorial, based on the StockTrader Sample Application, highlights PowerBuilder 12.0’s abilities as both a development environment and a runtime platform for rich and thin clients. The PowerBuilder clients are delivered in four versions; Classic Win32, .NET Win Form, .NET Web Form and .NET WPF WCF.  These client applications illustrate how you can leverage PowerBuilder’s enterprise .NET APIs, DataWindow Technology, and the PowerScript coding language in a developer-friendly and productive IDE to rapidly build Microsoft-compatible client applications.
  • PowerScript .NET Tutorial – Full Length Video – This self guided tutorial will show you how to create fully CLS compliant .NET Win Form and WPF applications using PowerScript code and employing new and current language features inside PB 12. Concepts covered include .NET Language interoperability; the Common Language Specification, creating .NET Consumer Role compatible applications using the PB 12 Classic IDE, and creating .NET compatible Extenders using the PB 12 .NET IDE.
  • PowerBuilder and WCF Tutorial – Full Length Video – This self guided tutorial will show you how to use PowerBuilder .NET together with the Microsoft .NET Communication Framework to create rich client applications functioning in an enterprise Service Oriented Architecture. Concepts covered include an overview of the tenets of Service Oriented Architecture (SOA), an overview of the scope of the Windows Communication Framework (WCF) and the integration issues it addresses. Definitions are provided for fundamental WCF concepts.

 PowerBuilder 12 Migration – PB Classic to PowerBuilder 12 .NET

Part 1 Migration Overview and Process
Part 2 Platform and Language Issues
Part 3: Sample Application Tour: Anchor Bay Nut Company (ABNC)
Part 4: Migrating and Refactoring ABNC]

Migrating PowerBuilder Applications – SAP (sybase) Technote that addresses changes between version 6.5 and 12.5

PowerBuilder 12 and PowerBuilder 12.NET Training Videos on YouTube

PowerBuilder 12 and PB.NET Presentations from Sybase Tech Days 2011

PowerBuilder How-To and Instructional Information

Learn PowerBuilder RESTful web services, Docking Manager & NVO Services.

  • How-To Build RESTful Part 1 on PBDJ by Yakov Werde – Lots of screen shots!
  • How-To Build RESTful Part 2on PBDJ by Yakov Werde – Lots of screen shots!

 PowerBuilder 12 Sample Apps & PB 12.NET Code Examples

PB Web Easy – PowerBuilder meets Apache (Win32 platform only) – another P in WAMP.  

The idea behind PB Web Easy is to use the PowerBuilder development environment to learn about the features of PowerBuilder and it’s Datawindow technology for building web applications.

dwoX – The home of PB Web Easy and 10.000 Lines of PowerScript Code at PBMiner.  Experimental UI at PBMiner Ext UI.  The file structure of a PBL file

PowerBuilder Groups and Associations

Sybase International User Group – Great place to learn, get free copies of PowerBuilder 12 and PowerBuilder 12.5 .NET !! Please tell them that Rich Bianco at DisplacedGuy referred you!

The SAP PowerBuilder Developer Center –  Nice to see that SAP is doing more marketing than Sybase did, hopefully they can keep the ship from sinking.

PowerBuilder Facebook Page

Training videos on SAP’s new PowerBuilder Micro-Site.  This site alone has at least a dozen links to videos that can be viewed or downloaded without fee or registration.  This site is a great place to start if you want to come up to speed fast on PB12, 12.5 and .NET

PB Newsgroups, Technical Whitepapers, EBF’s and Technical Notes

PowerBuilder Naming Standards

Elegant PowerBuilder Code – Good stuff on naming and basic stuff the PB developer will learn over many years developing.

PowerBuilder Blogs

  • 100 Days of PowerBuilder – 100 Days of PowerBuilder’ which is a series of discussions focused on basic PowerBuilder development using PowerBuilder 12.5 by PowerBuilder MVP Matt Balent.

(is your blog missing?  leave a comment or email displacedguy at gmail and it will be added!)

PowerBuilder 12.5.NET Official Documentation Sets

Official PowerBuilder 5 – 12.5 Documentation Sets

Document Set ( * = archived ) Version Language
PowerBuilder 12.5 12.5 English
PowerBuilder 12.1 12.1 English
PowerBuilder 12.0 12.0 English
PowerBuilder 11.5.1 11.5.1 English
PowerBuilder 11.5 11.5 English
PowerBuilder 11.2 11.2 English
PowerBuilder 11.1 11.1 English
PowerBuilder 11.0 11.0 English
PowerBuilder 10.5.2 10.5.2 English
PowerBuilder 10.5.1 10.5.1 English
PowerBuilder 10.5 10.5 English
PowerBuilder 10.2.1 * 10.2.1 English
PowerBuilder 10.2 * 10.2 English
PowerBuilder 10.0.1 10.0.1 English
PowerBuilder 10.0 10.0 English
PowerBuilder 9.0.3 * 9.0.3 English
PowerBuilder 9.0.2 * 9.0.2 English
PowerBuilder 9.0.1 * 9.0.1 English
PowerBuilder 9.0 * 9.0 English
PowerBuilder 8.0.4 * 8.0.4 English
PowerBuilder 8.0 * 8.0 English
PowerBuilder 7.0.2 * 7.0.2 English
PowerBuilder 6.5 * 6.5 English
PowerBuilder 6.0 * 6.0 English
PFC 6.0 * 6.0 English
PowerBuilder 5.0 * 5.0 English

This copyrighted digital was created by DisplacedGuy.com and copyrighted by DisplacedGuy.com.   Attribution to DisplacedGuy.com does not change the requirement that written permission from DisplacedGuy.com is required to copy this content in part or whole.  Digital Millenium Copyright Act (DMCA)

PowerBuilder Foundation Classes (PFC)

PowerBuilder PFC Links and Documentation

The PFC home on CodePlex contains downloads for PFC versions 10, 10.5, 11, 11.5 & 12 (Classic and .NET)

This link, a 15 minute PFC quick start guide is a little dated, but the concepts are the same and it should be useful for those using newer versions of PFC

The PFC Cheatsheet website is another gem that I just found.  On the surface it doesn’t look like much, and it is somewhat dated but if you use the treeview menu on the left you’ll find that there are tons of useful links and information on this site. I wouldn’t doubt if this site has over 100 links to PB sites in itself!


PowerBuilder Marketing and Justification

new – This section was added in 2013 and while I didn’t normally include marketing links I thought it would be helpful to show some evangelist type posts in case you need some justification to convince your boss to upgrade to a more recent version of PB.

Twenty-four reasons to consider PowerBuilder 12 by Bruce Armstrong (PBDJ)


PowerBuilder Commercial Site Reference

Visual Expert knowledge management & change management tool for PowerBuilder applications. The company also offers other tools such as Discover PBProtect – The first obfuscator for PowerBuilder and Visual Guard
Security & Access Control for Business Applications

eLearnIt: Yakov has launched a commercial site for PowerBuilder training and while I have not reviewed it (I cannot afford myself) I have watched some of his videos and they are informative and interesting.  He’s a managing partner of eLearnIt, which has partnered with ISUG to provide online training for PowerBuilder 11.5 and 12

Older Stuff: PowerBuilder – Version 11 or lower

PowerBuilder 11 and AJAX – This video demonstrates some of the  AJAX Features of PowerBuilder 11.

Deploying PowerBuilder Applications with the PowerBuilder 11 Smart Client Intelligent Updater (Videos)

This copyrighted digital was created by DisplacedGuy.com and copyrighted by DisplacedGuy.com.   Attribution to DisplacedGuy.com does not change the requirement that written permission from DisplacedGuy.com is required to copy this content in part or whole.  Digital Millenium Copyright Act (DMCA)


22 Responses

  1. hi this is a great site and the links you’ve post. 2 thumbs Up for you. Actually I was planning to upgrade myself from VB6 to PoweerBuilder or DotNet (I really preferred to PB). But I was so embarrassed co’z I can’t see any training materials post in the internet not like dotNet even you can download also ebooks. But when I read your site it gives me more eager to learn in PB.

    Thank you hope this will change my life as a VB Programmer. Have a great day!

    • Thanks for the positive comment JunJin. There is still lots of opportunity doing PowerBuilder development. There are still some of us that believe PowerBuilder offers the best productivity in developing business applications and some companies are saying the same thing with their money. I was blessed to have been sent to many training sessions (paid) by Powersoft back when Powersoft still owned PB, I couldn’t imagine learning it now. I have been studying .NET specifically MVC3 and Silverlight and they are good tools, but nothing compared to PB. Just my 2 cents.

    • Thanks for the kind words JunJin– these are what keep me motivated to not shutting this time consuming/ bandwidth hogging site down for good. I hope you find what you are looking for.

  2. Hi..
    Great work for putting all the important matter at one place like a PB repository..
    I had a query,
    How bout certification in PB??
    I am thinking for giving a certification in PB.Any good material if you have or can suggest
    Please do let me know


    • Hi,

      I don’t think there are any more certification for PowerBuilder, it was done back when PowerSoft owned PowerBuilder, and possibly when Sybase did, but I think the certifications are gone now.

      Good question though.


  3. I am really new to powerbuilder. In your view, how many years can this technology can exists. What is the market and future for this technology. Are there any alternatives for this technology in IT market. Can we make the career by learning this technology now??

    • Hi Christian, If you are willing to travel you can stay fully employed in the six-figure range without problem. If you cannot travel then PowerBuilder isn’t going to be the best investment of your time. There are still plenty of jobs because recruiters cannot find PB developers.

  4. Just found this site. It’s GREAT! I have been building Powerbuilder client/server apps since version 5, but am now looking at building a couple web apps. we don’t use Appeon, just Apache and IIS. Looking forward to learning new ways to use Powerbuilder.

  5. Very nice post. I simply stumbled upon your weblog and wanted
    to mention that I have really enjoyed browsing your blog posts.
    In any case I’ll be subscribing to your feed and I hope you
    write once more soon!

  6. Hi Team,

    I have created a function in a non visual object.The return type of the function is Array of Structure.In side the function i have declared a function ,describer in below code.

    DataStore lds_member
    lds_member=create DataStore
    lds_member.dataobject = ‘d_prx_local_member_search_by_member_id’
    lds_member = of_membersearch_ccnt(ls_member_id, ls_suffix, ls_member_fname,ls_member_lname,ls_ssn,ls_medicaid_alt, ls_medicaid_rec)
    ll_rowcount = lds_member.rowcount( )

    The datastore holds the data return from the function of_membersearch_ccnt(ls_member_id, ls_suffix, ls_member_fname,ls_member_lname,ls_ssn,ls_medicaid_alt, ls_medicaid_rec).

    Now i am cheking the value of ll_rowcount and its showing 1.That means one row is there in the datastore.

    Now i am running a for loop and fetching the values from the datastore and storing it in a structure.

    str_name lstr_name[100] // Declaring the structure

    for i = 1 to ll_rowcount
    lstr_name[i].as_meid = string(lds_member.getitemdecimal(i,’meid_id’))
    lstr_name[i].as_cmcl_id = string(lds_member.getitemdecimal(i,’cmcl_id’))
    lstr_name[i].as_mem_fname = lds_member.getitemstring(i,’fname’)
    lstr_name[i].as_mem_mname = lds_member.getitemstring(i,’mi’)
    lstr_name[i].as_mem_lname = lds_member.getitemstring(i,’lname’)
    lstr_name[i].as_mem_dob = string(lds_member.getitemdatetime(i,’mem_dob’))
    lstr_name[i].as_mem_gender = lds_member.getitemstring(i,’mem_gender’)
    lstr_name[i].as_mem_ssn = lds_member.getitemstring(i,’mem_ssn’)
    lstr_name[i].as_mem_medcd_no = lds_member.getitemstring(i,’mem_medcd_no’)
    lstr_name[i].as_meid_ident_dt = string(lds_member.getitemdatetime(i,’meid_ident_dt’))
    lstr_name[i].as_mem_assign_id = string(lds_member.getitemdecimal(i,’assigned_cmus_id’))
    lstr_name[i].as_meid_elig_ind = lds_member.getitemstring(i,’MEID_PLN_ELIG_IND’)
    lstr_name[i].as_pcp_id = lds_member.getitemstring(i,’PCP_PROVIDER_ID’)
    lstr_name[i].as_cmca_nm = lds_member.getitemstring(i,’ccm_cmca_category_cmca_nm’)
    lstr_name[i].as_cmes_nm = lds_member.getitemstring(i,’ccm_cmes_enr_sts_cmes_nm’)
    lstr_name[i].as_mem_suffix = lds_member.getitemstring(i,’MEM_SUFFIX’)
    lstr_name[i].as_race = lds_member.getitemstring(i,’RACE’)
    lstr_name[i].as_rti = lds_member.getitemstring(i,’REL’)
    lstr_name[i].as_dod = string(lds_member.getitemdatetime(i,’death_dt’))
    lstr_name[i].as_primary_cob_ind = lds_member.getitemstring(i,’PRIM_COB_IND’)
    lstr_name[i].as_primary_lang = lds_member.getitemstring(i,’LANG_ID’)
    lstr_name[i].as_group_no = lds_member.getitemstring(i,’GROUP_NUM’)
    lstr_name[i].as_dxcg = string(lds_member.getitemdecimal(i,’DXCG’))
    lstr_name[i].as_mem_member_id = lds_member.getitemstring(i,’MEM_MEMBER_ID’)
    lstr_name[i].as_alt_member_id = lds_member.getitemstring(i,’ALT_MEMBER_ID’)
    end if

    Now while in debug mode , i am watching the value of the lds_member.getitemdecimal(i,’meid_id’)), its showing

    ‘Too many characters in character literal’. But the funny thing is in structure , lstr_name[i].as_meid value is showing the actually id. That means in structure all actual values are stored. After this i am returning the structure like;

    return lstr_name[].

    After deploying the webservice while i am checking the webservice, no data is returing, but 100 rows are retrieved ( As i have declared the size of the structure array is 100.

    So can you please suggest
    1 > why data is not returning from the webservice

    2> Why in debug mode lds_member.getitemdecimal(i,’meid_id’)), its showing ‘Too many characters in character literal’.
    3> How to save a datastore in debug mode.In previous mode i was using datastorename.saveas(‘C:test.xls’,Excel!,true).

    I am using wcf Service target.

    Thanks in advance.


    • Hi Subrat,

      I noticed one HUGE problem right away. You must call SetTransObject any time you change the dataobject, but you are setting it before so it effectively gets un-assigned. I don’t know how this is working unless there is a settransobject somewhere else in the code that I don’t see. Besides that problem when you return an array, do it like this return lstr_name (don’t include the brackets) and make sure your return type is set to lstr_name[] (with brackets). Let me know if this helps, or if you are still having issues.


  7. The common man or woman can make delightful, homemade bread
    quite simply with a bread maker. As you play the game
    you have many different decorative items that become available for your farm.
    Exactly how many features really does the maker have got.

Leave a Reply

Your email address will not be published. Required fields are marked *