Tech Articles


Updating the Datawindow Object Definition


I'm doing some work on an application to aid in the mass update of various datawindow attributes. It's not rocket science since you are dealing with a series of text files and doing some basic 'find and replace' operations. However, if you have ever worked on a project which has been around for a while you will notice that datawindows do not get 'migrated' when you upgrade to a newer version of PowerBuilder; the export syntax remains at the version in which the thing was last modified and saved.

Now you might think that using the LibraryExport and LibraryImport methods will do the trick but you would be mistaken. A newly imported datawindow object keeps the same version as when it was exported.

To accomplish the task you need to use the datawindow CREATE method.

integer li_file, li
string ls_old_syntax, ls_importsyntax
// old datawindow syntax saved to a file
ls_old_syntax = 'C:\temp\d_oldstuff.txt'
// open and read the file
li_file = Fileopen(ls_old_syntax, TextMode!)
Filereadex(li_file, ls_importsyntax)
// remember to close the file
FileClose(li_file)
// check version of ls_importsyntax
IF POS(ls_importsyntax, 'release 12.5;') > 1 THEN
   // its already new, leave it alone        
ELSE
   // dw_new is object on the window
   dw_new.reset()
   dw_new.dataobject = ''
   // create the new datawindow object from the old syntax
   li = dw_new.create(ls_importsyntax, ls_err) 
   // now get the new syntax
   ls_new_syntax = dw_new.describe("DataWindow.Syntax")   
END IF

Now you can do whatever you want with the new syntax.

Comments (0)
There are no comments posted here yet

Find Articles by Tag

Design OLE Application SQL Server Oracle Array 32-bit Export Database Table Schema IDE Automated Testing Interface External Functions Export JSON OAuth JSONGenerator Event BLOB Service UI Themes Database Object Azure PBDOM UI Modernization Text Script Model Configuration Trial Event Handler C# DragDrop Source Control SVN Testing PowerBuilder Compiler Class Mobile File Jenkins Android TreeView REST Resize PowerServer Web GhostScript PowerScript (PS) Database Table Data DataType HTTPClient SOAP Windows 10 Icons Installation Encryption InfoMaker SqlModelMapper Debugging Syntax 64-bit DataWindow .NET Std Framework TortoiseGit Variable Sort JSON RESTClient PDFlib Open Source COM SQL PFC Elevate Conference SnapObjects SqlExecutor PDF PowerServer Mobile Source Code Error Encoding Icon SDK Transaction .NET Assembly API RichTextEdit Control RibbonBar Debugger ODBC Authentication PostgreSQL RibbonBar Builder PostgreSQL ODBC driver Repository Event Handling Debug iOS Database Profile Validation Expression Database Graph CI/CD Database Connection OrcaScript Authorization Linux OS OAuth 2.0 Menu Git PowerBuilder (Appeon) Outlook DevOps TLS/SSL Filter CoderObject Bug Web Service Proxy ActiveX Database Painter XML SnapDevelop Charts Data DLL Deployment TFS PowerBuilder Window Import JSON Platform UI Windows OS Migration .NET DataStore NativePDF DataWindow JSON WebBrowser Import License Messagging CrypterObject Web API JSONParser Excel Performance MessageBox Database Table Stored Procedure WinAPI Branch & Merge