Let’s say you get a request to add some ‘audit’ capability to your application. By audit I mean there is a need to track changes made to various data elements on a record when they are saved back to the database. This can be done any number of ways but you want to make use…
- .ics
- .NET
- Active Directory
- C#
- Citrix
- COM
- Connection string
- Dashboard
- datawindow
- debug
- disaster prepardness
- ETL
- EVENTCREATE
- Facsys
- frogs
- games
- MDI
- mySQL
- ODBC
- OLEDB
- Outlook
- parenting
- PB.INI
- pfc
- Powerbuilder
- Powerbuilder OLE
- Powerbuilder Tutorial
- programming
- regasm
- REPORTEVENT
- SCOPE_IDENTITY
- source control
- SQL Anywhere
- SQL Native Client
- SQL Server
- TWAIN
- Uniface
- Visual Basic
- web service
- Windows API
- Windows Event Log
- Windows settings
PowerBuilder ‘Gotcha’ – Datawindow datasource values
Look what I found – part 2
Here is an interesting comment in the header section of a method: // Invoke Service // verb (used with object), -voked, -voking. // 1. to call for with earnest desire; make supplication or pray for: to invoke God’s mercy. // 2. to call on (a deity, Muse, etc.), as in prayer or supplication. // 3.…
PowerBuilder – Ethiopian multiplication
I stumbled across this task on the Rosetta Code website. (Link here) Of course I decided to do the task and, as a result, added Powerbuilder to the Rosetta Code website list of languages. There are plenty of other tasks to do so get crackin’. The process of this method of multiplication is to write…
PowerBuilder – Database transactions using PFC n_tr
Here is a relatively painless way to handle transaction processing in your Powerbuilder application. This code assumes the use of the PFC but could be adapted without too much trouble. This will work with the following database connections: ADO.NET ASE, SYC and SYJ Sybase Adaptive Server Enterprise DIR Sybase DirectConnect I10 Informix IN9 Informix JDB…
PowerBuilder – Data Load/ETL process
One common piece of functionality in many business applications is the ability to import data from an external source. This could be anything from invoices and orders to inventory forecasts and patient medical histories. Quite often if this type of process is not considered in a generic context you end up with a solution which…
PowerBuilder Bug – Autosize height and font color
This bug occurs in version 11.5.1 Build 4608. I’m not sure of other versions at this point. One of the many great features of the datawindow is the ability to create expressions on various object properties. This can greatly reduce coding for ‘eye candy’ type stuff throughout an application. A very common use is to…
PowerBuilder ‘Gotcha’ – SQL Errors
Most applications I’ve worked on make at least a limited attempt to inform the user of any database related errors especially after an insert, update, and (usually) a commit. Along with this is normally code which displays the database error from the transaction object in a messagebox. Unless you use a custom messagebox with a…
Development tools at Home
Here is a list of some of the software I use at home. avast! Free Antivirus (www.avast.com) Fine antivirus program at no charge. XnView (www.xnview.com) Free image and graphic file viewer/converter. FileZilla Client (filezilla-project.org) Open Source FTP. Microsoft Visual Studio (www.microsoft.com/express) Great set of tools to use (I use Visual Basic/C# and SQL Server mostly). …
PowerBuilder: Transparent MDI Frame
I’m working on an MDI application which uses an mdi frame (naturally) with a sheet (window type: Main!) which normally covers the entire working area of the frame. This window serves as a large ‘sitemap’ of the over all application. One of the windows of the application displays time sensitive data (could be orders, deliveries,…
PowerBuilder ‘Gotcha’ – Datawindow Find method
The find method on the datawindow is a very useful tool but you should always remember to set the upper limit of the rows to search in excess of the actual rowcount. In simple terms: dw_1.find('part_no = 123', 1, dw_1.rowcount()) Never do this!Instead use: dw_1.find('part_no = 123', 1, dw_1.rowcount() + 1) or simply dw_1.find('part_no =…