<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5949006623885328573</id><updated>2011-12-24T05:58:32.764+07:00</updated><category term='PHP'/><category term='JQuery'/><category term='Powerscript'/><category term='Netbeans'/><category term='Graph'/><category term='powerbuilder'/><category term='powerbuider 11.2'/><category term='SQL'/><category term='recursive function'/><category term='Iphone'/><category term='Database'/><category term='WIN 32 API'/><category term='AJAX'/><category term='treeview'/><category term='datawindow'/><category term='VB.NET'/><category term='Oracle'/><category term='Android'/><category term='Java'/><title type='text'>powerbuilder</title><subtitle type='html'>All About Programming</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default?start-index=101&amp;max-results=100'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>182</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2968020171685506283</id><published>2011-12-24T05:58:00.000+07:00</published><updated>2011-12-24T05:58:32.784+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><title type='text'>Controlling Lists with jQuery</title><summary type='text'>jQuery UI Selectables
The ocean of  user-generated content is proving a handful for our client. Thousands of  tags are pouring in from the site’s users—but now the legal department  is saying that as the manager, he has to approve every single one  manually, to avoid a repeat of a recent nasty litigation.
   Because  the site employs an unconstrained tag system, there are stacks of  duplicate </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2968020171685506283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2968020171685506283'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2011/12/controlling-lists-with-jquery.html' title='Controlling Lists with jQuery'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5021033218894907997</id><published>2011-12-24T05:56:00.000+07:00</published><updated>2011-12-24T05:56:09.739+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Generate PDFs with PHP</title><summary type='text'>This isn’t all, though. One of the more interesting items currently  being bundled with PHP is the PDFLib extension, which allows developers  to dynamically generate documents in Adobe Portable Document Format  (PDF). Over the next few pages, I’m going to take a quick look at this  module, providing you with a brief overview of its functions and  demonstrating how you can use it in your PHP </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5021033218894907997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5021033218894907997'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2011/12/generate-pdfs-with-php.html' title='Generate PDFs with PHP'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1558430420512944056</id><published>2010-03-09T08:32:00.000+07:00</published><updated>2010-03-09T08:33:05.735+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>How to create a bouncing ball animation</title><summary type='text'>This Java tip shows how to create a bouncing ball animation using threads.           &lt;!-- start source code --&gt;          import java.awt.Container;import java.awt.Dimension;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1558430420512944056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1558430420512944056'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2010/03/how-to-create-bouncing-ball-animation.html' title='How to create a bouncing ball animation'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-216104743866845125</id><published>2010-01-11T06:30:00.001+07:00</published><updated>2010-01-11T06:34:42.354+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Get data from the Internet</title><summary type='text'>Create a new userobject from standard class internetresult, call it n_cst_internet.Declare this instance variable string is_dataWith that userobject type, you need to overload the internetdata function (which will be called by the PB VM automatically). The return type is integer and the parameter is data, its type is a blob.[integer internetdata(blob data)]is_data = string(data)RETURN 1NOTE : </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/216104743866845125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/216104743866845125'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2010/01/get-data-from-internet.html' title='Get data from the Internet'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2313435951450811003</id><published>2009-10-08T08:12:00.002+07:00</published><updated>2009-12-29T08:39:07.259+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Iphone'/><title type='text'>How To Create Simple TableView Part 2</title><summary type='text'>In this tutorial you will learn how to capture the events on clicking the rows of the table. Table isn’t just used to preset the data but it is often needed to do some action against the selection of a cell.  Here is an overview of the part 1, how Table view is created. 1)     Declare the UITableView variable and map it to the actual table in interface builder. 2)     Implement </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2313435951450811003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2313435951450811003'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2009/10/how-to-create-simple-tableview-part-2.html' title='How To Create Simple TableView Part 2'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5534804184162748149</id><published>2009-08-04T08:17:00.000+07:00</published><updated>2009-08-04T08:18:43.077+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Updated Android SDK is now available</title><summary type='text'>Android Developers Blog author Jason Chen reports writes about the availability of the new Android SDK which is called m5-rc14. The new version will therefore be called as Android SDK m5-rc14.   Following are the changes to the m5-rc14 edition: New user interfaceLayout animationsGeo-codingNew media codecs Updated Eclipse plug-in</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5534804184162748149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5534804184162748149'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2009/08/updated-android-sdk-is-now-available.html' title='Updated Android SDK is now available'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1205387594301200984</id><published>2009-05-30T09:13:00.000+07:00</published><updated>2009-05-30T09:14:38.396+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Install Android SDK and Eclipse's Android Development Tools plugin</title><summary type='text'>In order to setup Eclipse for development of Android, both Install Android SDK and Eclipse's Android Development Tools plugin are needed.Download Android SDK and unzip it in any folder you want, it's "C:\App\android_sdk_windows_m3-rc22a" for me.Android Development Tools plugin can be download inside Eclipse IDE. Start Eclipse, then select Help &gt; Software Updates &gt; Find             and Install....</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1205387594301200984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1205387594301200984'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2009/05/install-android-sdk-and-eclipses.html' title='Install Android SDK and Eclipse&apos;s Android Development Tools plugin'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7114987393721767135</id><published>2009-05-16T09:17:00.002+07:00</published><updated>2009-05-16T09:23:54.411+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>android Widget Design Guidelines</title><summary type='text'>Since the beginning of the year, the Android UI team has been hard at work on the Android 1.5 release. Starting today with widgets, we would like to share some of our evolving Android design principles with you.Widgets are a new feature that application developers can use to promote a small sample of the most relevant dynamic data from their applications on the Home screen. We've designed widgets</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7114987393721767135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7114987393721767135'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2009/05/android-widget-design-guidelines.html' title='android Widget Design Guidelines'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_etG65zi4dXs/Sg4i5yXip_I/AAAAAAAAABE/ayt7Du-Vnk8/s72-c/android-widget-design-guidelines.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6549384922816131154</id><published>2009-05-03T07:53:00.001+07:00</published><updated>2009-05-03T07:55:16.471+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Hello, World android tutorial</title><summary type='text'>As a developer, you know that the first impression of a development framework is how easy it is to write "Hello, World." Well, on Android, it's pretty easy. It's particularly easy if you're using Eclipse as your IDE, because we've provided a great plugin that handles your project creation and management to greatly speed-up your development cycles.If you're not using Eclipse, that's okay. </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6549384922816131154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6549384922816131154'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2009/05/hello-world-android-tutorial.html' title='Hello, World android tutorial'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7521705506974714503</id><published>2008-11-16T15:31:00.000+07:00</published><updated>2008-11-16T15:32:39.239+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Using mod_rewrite with Apache and PHP</title><summary type='text'>  NOTE:  This tutorial assumes that the reader has no prior knowledge of  working neither with the Apache Configuration file, HTACCESS file, nor with  mod_rewrite in general. It will go through a simple step-by-step process on  how to successfully setup mod_rewrite to work on your web server. mod_rewrite is a popular Apache Module which gives a server administrator  the ability to mask a web </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7521705506974714503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7521705506974714503'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/11/using-modrewrite-with-apache-and-php.html' title='Using mod_rewrite with Apache and PHP'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5444725193965159442</id><published>2008-11-16T15:05:00.000+07:00</published><updated>2008-11-16T15:13:26.258+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Auto Image Verification </title><summary type='text'>In this tutorial I am going to show you how to create one of those cool and sometimes annoying little verification images you see on forms you fill out. Where the image displays a string of characters and you have to enter them into a field to prove your human. This is a security measure to keep spam and automated scripts out.                         A few requirements to get started: </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5444725193965159442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5444725193965159442'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/11/auto-image-verification.html' title='Auto Image Verification '/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4997835099225093531</id><published>2008-11-15T08:01:00.000+07:00</published><updated>2008-11-15T08:04:20.004+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Seven habits for writing secure PHP applications</title><summary type='text'>Security in a PHP application includes remote and local security concerns.   Discover the habits PHP developers should get into  to implement Web applications that have both characteristics. &lt;!--START RESERVED FOR FUTURE USE INCLUDE FILES--&gt; 	     // &lt;![CDATA[ 			capture_referrer(); 		 // ]]&gt;   &lt;!--  START : HTML FOR SEARCH REFERRER --&gt;      &lt;!--  START : HTML FOR ARTICLE SEARCH --&gt;    &lt;!--  END </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4997835099225093531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4997835099225093531'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/11/seven-habits-for-writing-secure-php.html' title='Seven habits for writing secure PHP applications'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1038479447084721256</id><published>2008-10-16T08:24:00.000+07:00</published><updated>2008-10-16T08:25:56.379+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>My first JavaFX Applet</title><summary type='text'>This tutorial shows how you configure a draggable JavaFX Applet. A draggable applet can be dragged out of the web browser, and it keeps running even after the browser is closed. When you quit the Applet, you can reopen it via a shortcut from the Windows explorer like any other desktop application.   Pre-requisities  Firefox 3.0 (or IE 7)  JRE 6u10  NetBeans with JavaFX plugins Make sure Firefox </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1038479447084721256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1038479447084721256'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/my-first-javafx-applet.html' title='My first JavaFX Applet'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1847851220417844396</id><published>2008-10-15T08:46:00.000+07:00</published><updated>2008-10-15T08:47:57.290+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>Developing a Visual Web JSF Application</title><summary type='text'>In this tutorial, you use the NetBeans IDE and JSF 1.2 (Woodstock) components to create and run a simple web application, Hello Web. The example   application asks you to input a name and then displays a message that uses that   name. At first, you implement this page with an input field. Then you replace   the input field with a drop-down list from which the user can choose a name. The   </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1847851220417844396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1847851220417844396'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/developing-visual-web-jsf-application.html' title='Developing a Visual Web JSF Application'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4958616058044343965</id><published>2008-10-15T08:40:00.000+07:00</published><updated>2008-10-15T08:41:52.334+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>NetbeansPHPOnSolaris</title><summary type='text'>                Using NetBeans PHP Support in Solaris Express Developer Edition 01/08 SXDE 01/08 is a great release for AMP developers on Solaris. It comes with both the full AMP stack, with tools that make it very easy to setup, as well as NetBeans with new PHP support.  I played with this and it was very easy to get started.     Set up Runtime Environment  Get MySQL and Apache going following </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4958616058044343965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4958616058044343965'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/netbeansphponsolaris.html' title='NetbeansPHPOnSolaris'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4620600275638132724</id><published>2008-10-15T08:35:00.000+07:00</published><updated>2008-10-15T08:37:10.256+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>Building Relationships Between Rails Models</title><summary type='text'>This tutorial describes how to build relationships (one-to-one and one-to-many) between models          in a NetBeans Ruby on Rails project.               Contents             Creating the Sample Database Creating the Comment ModelMigrating the DatabaseDefining a Relationship Between the Comment and Post Models Modifying the Controller Scaffolding Modifying the View to Add CommentsDisplaying the</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4620600275638132724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4620600275638132724'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/building-relationships-between-rails.html' title='Building Relationships Between Rails Models'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2769675382552684767</id><published>2008-10-13T07:57:00.001+07:00</published><updated>2008-10-13T07:57:11.993+07:00</updated><title type='text'>Netbeans connecting to MySQL Database</title><summary type='text'>This document demonstrates how to set up a connection to a MySQL database from NetBeans IDE. Once connected, you can begin working with MySQL in the IDE's Database Explorer by creating new databases and tables, populating tables with data, and running SQL queries on database structures and content. This tutorial is designed for beginners with a basic understanding of database management, who want</summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/2769675382552684767/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=2769675382552684767&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2769675382552684767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2769675382552684767'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/netbeans-connecting-to-mysql-database.html' title='Netbeans connecting to MySQL Database'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8274040339347650648</id><published>2008-10-07T12:03:00.000+07:00</published><updated>2008-10-07T12:05:22.309+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Using MS MapPoint in PowerBuilder</title><summary type='text'>Why should you use GIS (Geographic Information System) data in PowerBuilder? You can plan a route for a service technician or a sales person. You can track the positions of the trucks delivering goods and it might allow you to direct a truck to an additional pick up close to its route. You can print driving directions when heading to an unknown place.The following article demonstrates how to use </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8274040339347650648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8274040339347650648'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/10/using-ms-mappoint-in-powerbuilder.html' title='Using MS MapPoint in PowerBuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4146381223801264709</id><published>2008-09-10T10:10:00.000+07:00</published><updated>2008-09-10T10:12:20.889+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Accessing SQL Server Databases with PHP</title><summary type='text'>Introduction The Microsoft SQL Server 2005 Driver for PHP allows PHP developers to access data in SQL Server 2005 and SQL Server 2008 databases. The driver includes support for Windows and SQL Server Authentication methods, transactions, parameter binding, streaming, metadata access, connection pooling, and error handling.  This paper explains how to load and configure the driver, and discusses </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4146381223801264709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4146381223801264709'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/09/accessing-sql-server-databases-with-php.html' title='Accessing SQL Server Databases with PHP'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8308398893008849395</id><published>2008-08-25T08:59:00.000+07:00</published><updated>2008-08-25T09:00:43.730+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Reading the SQL Server log files using T-SQL</title><summary type='text'>ProblemOne of the issues I have is that the SQL Server Error Log is quite large and it is not always easy to view the contents with the Log File Viewer.  In a previous tip "Simple way to find errors in SQL Server error log" you discussed a method of searching the error log using VBScript.  Are there any other easy ways to search and find errors in the error log files? SolutionSQL Server 2005 </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8308398893008849395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8308398893008849395'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/reading-sql-server-log-files-using-t.html' title='Reading the SQL Server log files using T-SQL'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5238897077544638131</id><published>2008-08-20T09:25:00.000+07:00</published><updated>2008-08-20T09:26:05.735+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Export Data to Excel Through OLE AutomationX</title><summary type='text'>This article shows how to export data to excel using OLE automation. Although PowerBuilder provides a save as to Excel file format, this function has several limitations, such as including all columns even if the user does not want them and not including computed fields. This example is also much more user-friendly, because it automatically starts Excel for users, so they do not have to save the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5238897077544638131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5238897077544638131'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/export-data-to-excel-through-ole.html' title='Export Data to Excel Through OLE AutomationX'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1657342830354351270</id><published>2008-08-16T08:10:00.000+07:00</published><updated>2008-08-16T08:11:14.985+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Embedding Data</title><summary type='text'>If you are using a datawindow which contains static data you can embed the data directly into the datawindow definition. Goto the Rows menu and select the data menu option. From here you add can add rows and enter data directly into the datawindow.Whenever the datawindow is used it automatically has the embedded rows in it without the need for a retrieve. This is an easy way to store quickly </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1657342830354351270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1657342830354351270'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/embedding-data.html' title='Embedding Data'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2284618178423919011</id><published>2008-08-15T08:20:00.000+07:00</published><updated>2008-08-15T08:21:17.742+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Get the Transaction Object</title><summary type='text'>Have you ever wanted to get the transaction object that is assigned to a datawindow. This is not an everyday requirement but it is especially useful if you are building components or frameworks.Sybase did not see fit to make the Transaction attribute of the datawindow object public, so we have to do a few tricks of our own to get this information.Declare an instance variable of type Transaction </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2284618178423919011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2284618178423919011'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/get-transaction-object.html' title='Get the Transaction Object'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7850471340364106178</id><published>2008-08-14T08:32:00.000+07:00</published><updated>2008-08-14T08:33:46.795+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>12 Types of RowFocusIndicator</title><summary type='text'>This tip is a script used to create 12 types of RowFocusIndicators including Color-Bands (White, Light-Yellow, ...) or Raised-Text-Band or Standard PowerBuilder RowFocusIndicators. The function also creates, destroys and changes them at run-time./*-----------------------------------------------FUNCTION:- boolean SetRfi(datawindow adw, int ai_rfi_cd)PURPOSE/FUNCTIONALITY:- Create ColorBand or </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7850471340364106178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7850471340364106178'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/12-types-of-rowfocusindicator.html' title='12 Types of RowFocusIndicator'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3635410522326932721</id><published>2008-08-13T07:27:00.000+07:00</published><updated>2008-08-13T07:28:15.753+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>List all columns in a table</title><summary type='text'>To list all the columns in a table the simplest way is:    exec sp_help unfortunately this returns more than just the columns in the table. Alternately, to just list the columns use:    select name from syscolumns where id=object_id('')where  is the name of the table. For example:    select name from syscolumns where id=object_id('Employees')</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3635410522326932721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3635410522326932721'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/list-all-columns-in-table.html' title='List all columns in a table'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7456522892394373975</id><published>2008-08-12T07:19:00.001+07:00</published><updated>2008-08-12T07:19:39.417+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Determine the name of the user for the current session</title><summary type='text'>SQL Server provides a number of ways of getting information about the current user:    *      sp_who @@SPID    will give the user name and other session information about the current user session.    *      The database variable 'SYSTEM_USER' returns the domain and login name of the user IF windows authentication is used. However if current user is logged on using SQL Server Authentication then '</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7456522892394373975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7456522892394373975'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/determine-name-of-user-for-current.html' title='Determine the name of the user for the current session'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4278122834205880811</id><published>2008-08-09T08:35:00.000+07:00</published><updated>2008-08-09T08:36:12.991+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Checking for Errors after Inline SQL or Stored Procedures</title><summary type='text'>It is important to check the results after executing inline SQL or a stored procedure. This is different from checking DataWindow errors which is done in DBError (see sample). A traditional approach to checking non-DataWindow database results might look something like:SELECT Cust_NameINTO :ls_NameFROM CUSTWHERE Cust_Id = as_CustId;CHOOSE CASE SQLCA.SQLCode  CASE 0    // all OK  CASE 100    // not</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4278122834205880811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4278122834205880811'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/checking-for-errors-after-inline-sql-or.html' title='Checking for Errors after Inline SQL or Stored Procedures'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2620032438284560573</id><published>2008-08-08T07:38:00.001+07:00</published><updated>2008-08-08T07:38:47.720+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Move a database file</title><summary type='text'>* Important *    Before attempting to move a database file please ensure that you have a good backup to go back to should things go wrong.The procedure for moving a database file varies depending on whether you want to:    * Move a Master database file    * Move a Temp database file    * Move any other database fileMove a database fileThis procedure can be used for any database except 'tempdb' or</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2620032438284560573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2620032438284560573'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/move-database-file.html' title='Move a database file'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5530840903030761266</id><published>2008-08-06T08:56:00.001+07:00</published><updated>2008-08-06T08:56:53.184+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Floating Date Mask</title><summary type='text'>If you decide on putting an edit mask for a date field in your Datawindow, PowerBuilder displays something like 00/00/0000. It looks OK but the user still does not know whether the first two zeros are to be month or day entry.Here is what I do. On top of the Datawindow date field put a text object that looks exactly the same as the Datawindow field (same size, border, font etc.). Make sure to </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5530840903030761266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5530840903030761266'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/floating-date-mask.html' title='Floating Date Mask'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6826743607803934962</id><published>2008-08-06T08:54:00.000+07:00</published><updated>2008-08-06T08:55:09.057+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Importing Datawindows with Search Paths</title><summary type='text'>Mathew found an undocumented feature of the LibraryImport command. You can import datawindows into a PBD. The documentation implies that you can only import into a PBL file.However if you want to create and re-use dynamic datawindow in your application they have to be in your library search path. This is great when you're dynamically creating datawindows from a database (using .Create) which have</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6826743607803934962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6826743607803934962'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/importing-datawindows-with-search-paths.html' title='Importing Datawindows with Search Paths'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1380971441295730257</id><published>2008-08-05T08:33:00.000+07:00</published><updated>2008-08-05T08:34:16.800+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Datawindow Quick Sort Indicator</title><summary type='text'>Almost every PowerBuilder datawindow developed in recent years has probably had the quick sort feature. This feature allows the user to click on the column heading and the datawindow will be sorted based on the column the user clicked. This is a great little feature and is normally implemented as a service in class libraries the world over. Therefore this tip does not tell you how to implement </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1380971441295730257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1380971441295730257'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/datawindow-quick-sort-indicator.html' title='Datawindow Quick Sort Indicator'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-486767642863160949</id><published>2008-08-05T08:32:00.000+07:00</published><updated>2008-08-05T08:33:20.081+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Selecting Text in Editmask</title><summary type='text'>The auto select text attribute of an edit field is a great feature in the PowerBuilder Datawindow control when you are using it for data entry. One thing that always bugged me was that the same attribute was not available for edit mask controls. One solution to this is to add a service to your datawindow that automatically checks for an edit mask field and highlights the text. The following code </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/486767642863160949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/486767642863160949'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/selecting-text-in-editmask.html' title='Selecting Text in Editmask'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3384211456574695074</id><published>2008-08-04T09:13:00.000+07:00</published><updated>2008-08-04T09:14:19.977+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>AutoSize Height and Leading Blanks in datawindow</title><summary type='text'>I came across a curious problem the other day! I have a report in PBDelta that shows the scripts side by side. The scripts have leading blanks to show the structure of the code and can be quite long.The problem I was having is that with autosize height switched off the code showed indented fine but was truncated at then end of the field, thus people could not see all their code. No problem I </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3384211456574695074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3384211456574695074'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/autosize-height-and-leading-blanks-in.html' title='AutoSize Height and Leading Blanks in datawindow'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5749557849265836363</id><published>2008-08-03T08:56:00.001+07:00</published><updated>2008-08-03T08:56:35.989+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Windows Help Tricks</title><summary type='text'>The function ShowHelp provided by PowerBuilder allows you access to the basic elements of a help file. Under Windows 3.1 this was great but things have moved on a bit since then and unfortunately the command has not been updated to keep pace with the newer help engine in Windows 95 and Windows NT 4.There are two new features in particular that would be useful. The first is to access the new </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5749557849265836363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5749557849265836363'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/windows-help-tricks.html' title='Windows Help Tricks'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5118696924075772035</id><published>2008-08-02T08:13:00.000+07:00</published><updated>2008-08-02T08:14:30.445+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>List table information</title><summary type='text'>To get information about a table in an SQL Server database, use:    sp_help where:  is the name of the table for which details are required.This lists the table name, columns, indexes and other information about the table. Further details can be found by consulting the SQL Server documentation.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5118696924075772035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5118696924075772035'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/list-table-information.html' title='List table information'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-784889290722500386</id><published>2008-08-01T08:34:00.000+07:00</published><updated>2008-08-01T08:35:28.455+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Start SQL Server 2000 in Single User Mode</title><summary type='text'>To start SQL Server in single user mode:   1. Start a command session (start &gt; Run &gt; "cmd" [Return]).   2. To ensure that SQL Server is not running type:          net stop MSSQLServer      This may say that this will also stop another service (typically SQLSERVERAGENT), in which case allow it to continue. It will also indicate if the service is already stopped.   3. To start SQL Server in single </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/784889290722500386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/784889290722500386'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/08/start-sql-server-2000-in-single-user.html' title='Start SQL Server 2000 in Single User Mode'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7489823659239892972</id><published>2008-07-31T07:52:00.001+07:00</published><updated>2008-07-31T08:31:16.636+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>List all tables that contain a given column name</title><summary type='text'>To list all the tables in an SQL Server database that contain a given column name, use the following SQL:    select sysobjects.name, * from syscolumns, sysobjects    where syscolumns.name='MyColumn'    and sysobjects.id = syscolumns.id    and (sysobjects.xtype='U' or sysobjects.xtype='S')Note:    *  Replace 'MyColumn' with the name of the column you wish to search on.    *  This query will return</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7489823659239892972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7489823659239892972'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/list-all-tables-that-contain-given.html' title='List all tables that contain a given column name'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1086434894504652019</id><published>2008-07-30T08:31:00.001+07:00</published><updated>2008-07-30T08:31:32.779+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Auto Global Variables</title><summary type='text'>OO purists say you should not have any global variables but as we all know you do not always have time to be pure. In most applications you normally have a few global declarations, usually some kind of an application manager or maybe an object request broker.Well if you export a PowerBuilder object an look at its source near the top of the code is a line that looks like:global type u_ken from </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1086434894504652019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1086434894504652019'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/auto-global-variables.html' title='Auto Global Variables'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5003669342383021362</id><published>2008-07-30T08:29:00.000+07:00</published><updated>2008-07-30T08:30:52.014+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Large Random Numbers in powerbuilder</title><summary type='text'>//////////////////////////////////////////////////////////////////////////// Function: f_BigRand//// Description:// This function uses 2 calls to Rand to generate Random numbers for large// ranges. It breaks the range into blocks of 32767 (max range for// RAND function)// The limit of the function is 32767 blocks of 32767. // It calls RAND to first determine which block, then calls RAND again to </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5003669342383021362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5003669342383021362'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/large-random-numbers-in-powerbuilder.html' title='Large Random Numbers in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-811981816162112476</id><published>2008-07-29T08:07:00.000+07:00</published><updated>2008-07-29T08:08:49.976+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle SQL Sort Merge Join</title><summary type='text'>The use of a sort merge join in Oracle SQL is quite common, especially in cases where there are missing join predicate against one of the tables or a missing index.In a sort merge join, Oracle must perform full scans on the target tables, sort the keys and join the rows together.It's important not to confuse a merge join with a merge join cartesian, which is a special case which is usually </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/811981816162112476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/811981816162112476'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/oracle-sql-sort-merge-join.html' title='Oracle SQL Sort Merge Join'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8692404357208300351</id><published>2008-07-28T09:36:00.000+07:00</published><updated>2008-07-28T09:38:56.238+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Faster Store Procedures through External Function Calls</title><summary type='text'>New to PowerBuilder 4 was the ability to declare none result set stored procedures inside the transaction object. This has many benefits:    * Speed, because PowerBuilder always knows about the procedure it does not need to verify that the SQL is valid and knows it does not have to prepare for a result set.    * Compact code, because you declare the procedure as a function of the transaction </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8692404357208300351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8692404357208300351'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/faster-store-procedures-through.html' title='Faster Store Procedures through External Function Calls'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6076197568183063113</id><published>2008-07-27T09:56:00.000+07:00</published><updated>2008-07-27T09:57:12.098+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Calculating Mathematical Values in SQL Server</title><summary type='text'>ProblemIn our application we have the need to perform mathematical calculations.  Right now we are doing so in our front end application.  Unfortunately we are starting to experience performance problems with large data sets and differences in calculations due to developers using different logic.  We are seeking some other options to perform the calculations.  Does SQL Server perform basic </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6076197568183063113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6076197568183063113'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/calculating-mathematical-values-in-sql.html' title='Calculating Mathematical Values in SQL Server'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4310891385780059793</id><published>2008-07-26T08:32:00.000+07:00</published><updated>2008-07-26T08:33:19.882+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Smoothly Docking Your Toolbar</title><summary type='text'>When I was developing PBDelta I wanted the toolbar to have a certain look and feel. I always wanted it docked at the top of the frame and I wanted to always dock the sheet bar with the frame bar to reduce the amount of real estate that the toolbar used.The first thing to do was to make the toolbars so they could not be moved. In the application open event I added the following line of code:</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4310891385780059793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4310891385780059793'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/smoothly-docking-your-toolbar.html' title='Smoothly Docking Your Toolbar'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4187414185380450704</id><published>2008-07-25T08:23:00.000+07:00</published><updated>2008-07-25T08:24:38.570+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Right Justify Help Menu Item</title><summary type='text'>Right justifying menu items is a little used and know feature of Windows. Most applications that take advantage of this feature use it to place the Help menu on the far right side of the menu bar.In recent years this options seems to have fallen from grace with 99% of applications using the now more standard last menu item as the help menu.Anyway if you want to use this feature you need to add </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4187414185380450704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4187414185380450704'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/right-justify-help-menu-item.html' title='Right Justify Help Menu Item'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2174188469143939733</id><published>2008-07-24T08:36:00.001+07:00</published><updated>2008-07-24T08:36:43.378+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Animate Windows API</title><summary type='text'>Although this API adds no real value to your application, it can add a nice cool effect to splash and about window. This API is only available under Windows 98 and Windows 2000. Add the external function declaration as follows:Function boolean AnimateWindow( &amp;   long lhWnd, long lTm, long lFlags ) library 'user32'The first parameter is the handle to your window, the second is the time taken for </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2174188469143939733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2174188469143939733'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/animate-windows-api.html' title='Animate Windows API'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3331886784728822767</id><published>2008-07-24T08:35:00.001+07:00</published><updated>2008-07-24T08:35:52.045+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Get The Name of a Network Share using powerbuilder</title><summary type='text'>Using the Get Volume API tip previously posted on PBDR will return the names of the drives connected to your machine. Unfortunately for network drives this returns the name of the physical drive not the name of the share you have mapped to. If you have many shares mapped to a single physical network drive you will not be able to distinguish between the drives.To improve this situation you can use</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3331886784728822767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3331886784728822767'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/get-name-of-network-share-using.html' title='Get The Name of a Network Share using powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2189021281598478026</id><published>2008-07-23T08:32:00.000+07:00</published><updated>2008-07-23T08:33:42.665+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Invisible vs. Enabled</title><summary type='text'>When designing the menus for your application try to design them in such a way that you never need to alter a menu item to make it invisible. Changing the visible attribute is probably the most expensive operation you can perform in PowerBuilder. This is because PowerBuilder destroys the complete menu and rebuilds it again from scratch.The normal rule of thumb for menu items to be invisible/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2189021281598478026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2189021281598478026'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/invisible-vs-enabled.html' title='Invisible vs. Enabled'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7034058452015811944</id><published>2008-07-22T08:59:00.000+07:00</published><updated>2008-07-22T09:00:06.861+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Middle Tier Object Security</title><summary type='text'>Securing a Distributed Business Objects accessed by many client types such as Rich PowerBuilder Clients and HTML Clients is a bit more complex than securing a Client Server Business Object. Client Server Business Objects live in a very controlled world where the integrity of the objects user is known and the object does not have to worry about unauthorized access, or if it does it is normally </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7034058452015811944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7034058452015811944'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/middle-tier-object-security.html' title='Middle Tier Object Security'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3519470384639995082</id><published>2008-07-21T08:56:00.001+07:00</published><updated>2008-07-21T08:56:41.630+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle listener lsnrctl command</title><summary type='text'>Here are lsnrctl command :C:\&gt;lsnrctlLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 12-PEB-2008 18:56:26Copyright (c) 1991, 2005, Oracle.  All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL&gt; helpThe following operations are availableAn asterisk (*) denotes a modifier or extended command:start               stop                statusservices            </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3519470384639995082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3519470384639995082'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/oracle-listener-lsnrctl-command.html' title='Oracle listener lsnrctl command'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5653284078994539953</id><published>2008-07-21T08:51:00.000+07:00</published><updated>2008-07-21T08:53:15.509+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Five DBA Best Practices</title><summary type='text'>Multiple Oracle HomesMy favorite best practice is the one about multiple Oracle Homes. Here it how it goes. When applying a patch or a patchset, I recommend against applying to the existing Oracle Home. Instead, I suggest creating a new Oracle Home, and apply the patches there.I create the first Oracle Home at /app/oracle/db_1, for instance. When a patch comes out, I install the whole Oracle </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5653284078994539953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5653284078994539953'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/five-dba-best-practices.html' title='Five DBA Best Practices'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1160889818947750672</id><published>2008-07-19T10:57:00.000+07:00</published><updated>2008-07-19T10:58:07.046+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Context Sensitive Menus in powerbuilder</title><summary type='text'>When working with menus for PowerBuilder we quite often create a generic set of MDI style menus which we enable and disable in our windows. This has an advantage for the developer in that we only need a few common sets of menus and they are easier to program. The user benefits because the menu layout is almost always the same and they get used to the layout thus improving productivity and </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1160889818947750672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1160889818947750672'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/context-sensitive-menus-in-powerbuilder.html' title='Context Sensitive Menus in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6202053622968823337</id><published>2008-07-18T09:49:00.000+07:00</published><updated>2008-07-18T09:50:47.837+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Distributed Child Datawindows</title><summary type='text'>A new feature of PB5.0 was distributed computing. This new feature allows you to distribute processing onto multiple servers. On a recent project I had to write an application where all business logic and database access was performed by a server. The client had no Database connection. We had to load all of the Child Datawindows manually because the datawindow had no transaction object. Here's a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6202053622968823337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6202053622968823337'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/distributed-child-datawindows.html' title='Distributed Child Datawindows'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-102606925641336824</id><published>2008-07-17T08:40:00.000+07:00</published><updated>2008-07-17T08:42:00.599+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Web Page Sequencing in powerbuilder</title><summary type='text'>When writing components for deployment in web applications you need to think about the sequence in which the user does things in the web browser. For example the user can spawn new instances of browser windows from a hyperlink in your application continue processing, close down the browser window and attempt to continue in the old window.This can cause some problems for simple stateless </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/102606925641336824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/102606925641336824'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/web-page-sequencing-in-powerbuilder.html' title='Web Page Sequencing in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1535979155772886824</id><published>2008-07-16T08:37:00.000+07:00</published><updated>2008-07-16T08:38:12.081+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Calling PowerBuilder Components from JSP</title><summary type='text'>I've been working in a new application using JSP and EAServer with business components written in PowerBuilder. One of the first things you need to get working is the JSP calling the PowerBuilder objects. There are two ways you can achieve this.The first way is the simplest and just connects to the Corba ORB (Jaguar) and calls a method on the ORB passing in a String with the package and object </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1535979155772886824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1535979155772886824'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/calling-powerbuilder-components-from.html' title='Calling PowerBuilder Components from JSP'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7798407182437071617</id><published>2008-07-15T08:58:00.001+07:00</published><updated>2008-07-15T08:58:55.299+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Invoking and Executing a Script from OEM</title><summary type='text'>When including script names in OEM you must carefully include the fully-qualified path for the script: (i.e. /u01/app/oracle/scripts/myscript.sql). Placing custom scripts within OEM is a great way to improve reporting. Here is a quick overview of script execution from OEM:   1. Create a "new event" from the OEM console   2. Choose "enable unsolicited event" and then "test unsolicited event"   3. </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7798407182437071617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7798407182437071617'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/invoking-and-executing-script-from-oem.html' title='Invoking and Executing a Script from OEM'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7767847482526548279</id><published>2008-07-15T08:55:00.000+07:00</published><updated>2008-07-15T08:57:29.827+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Computing date differences in oracle</title><summary type='text'>One of the confounding problems with Oracle DATE datatypes is the computation of elapsed time.Oracle supports date arithmetic and you can make expressions like "date1 - date2" to get the difference between the two dates. Once you have the date difference, you can use simple techniques to express the difference in days, hours, minutes or seconds.To get the values for data differences, you must </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7767847482526548279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7767847482526548279'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/computing-date-differences-in-oracle.html' title='Computing date differences in oracle'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3929751452348992691</id><published>2008-07-14T07:59:00.000+07:00</published><updated>2008-07-14T08:00:58.423+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Database Link From Oracle to SQL Server</title><summary type='text'>Here are complete notes in creating a database link between Oracle and SQL Server.1. Install Oracle ODBC drivers on the server (your local Oracle database) that will access the remote SQL Server database using the database link.2. Setup the ODBC connection on the local Oracle database using the Windows ODBC Data Source Administrator3. Test the ODBC drivers to ensure that connectivity is made to </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3929751452348992691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3929751452348992691'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/database-link-from-oracle-to-sql-server.html' title='Database Link From Oracle to SQL Server'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1646804461476373477</id><published>2008-07-11T08:29:00.000+07:00</published><updated>2008-07-11T08:30:16.617+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Run an Application Only Once</title><summary type='text'>Only one instance of any application running at a time is good to make it simple and sleek. In this discussion we are going to see how to make your application run only once.When user double clicks on your application icon, first try to see if it is already running. If it is already running bring it to top and return. There are some sleek SDK functions you can make use of to implement this. The </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1646804461476373477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1646804461476373477'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/run-application-only-once.html' title='Run an Application Only Once'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7815081037814152655</id><published>2008-07-10T09:12:00.000+07:00</published><updated>2008-07-10T09:13:23.642+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Invisible vs. Enabled Menu in Powerbuilder</title><summary type='text'>When designing the menus for your application try to design them in such a way that you never need to alter a menu item to make it invisible. Changing the visible attribute is probably the most expensive operation you can perform in PowerBuilder. This is because PowerBuilder destroys the complete menu and rebuilds it again from scratch.The normal rule of thumb for menu items to be invisible/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7815081037814152655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7815081037814152655'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/invisible-vs-enabled-menu-in.html' title='Invisible vs. Enabled Menu in Powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-2547198345544129830</id><published>2008-07-09T08:46:00.001+07:00</published><updated>2008-07-09T08:46:49.806+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Move a Window Without a Titlebar in powerbuilder</title><summary type='text'>In order to move any window with a mouse it must have a titlebar. Child,     popup and response windows can have no title bar but what do you do if you want to     simulate a title bar and allow the user to move the window.In the mouse down event of     the window (pbm_lbuttondown) send the window the following message:     Send( Handle( this ), 274, 61458, 0 )</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2547198345544129830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/2547198345544129830'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/move-window-without-titlebar-in.html' title='Move a Window Without a Titlebar in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5007417249300507241</id><published>2008-07-09T08:44:00.000+07:00</published><updated>2008-07-09T08:45:24.972+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Last Position Function in powerbuilder</title><summary type='text'>/*--------------------------------------------------------------  GF_LASTPOS: K.M. Howe 09-13-1995 (PUBLIC)     Function to find the last position of a string           in a string.   long: position in string           as_string: string to look in           as_value: string to match --------------------------------------------------------------*/Long ll_Pos, ll_OldPosll_Pos = Pos( as_String, </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5007417249300507241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5007417249300507241'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/last-position-function-in-powerbuilder.html' title='Last Position Function in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4690267832622073354</id><published>2008-07-08T09:31:00.001+07:00</published><updated>2008-07-08T09:31:31.245+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>How to Create a temporary table</title><summary type='text'>Creating a temporary table is virtually the same as creating a normal table. The main exception is the naming of the table. A hash ('#') character as the first character in the table name denotes that it is a temporary table. There are two types of temporary tables, local and global. A local temporary table has a single hash ('#') at the start of its name. A local temporary table is visible only </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4690267832622073354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4690267832622073354'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/how-to-create-temporary-table.html' title='How to Create a temporary table'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1386433041475423547</id><published>2008-07-07T08:22:00.000+07:00</published><updated>2008-07-07T08:23:11.336+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Setting Focus to a Window (handling minimized)</title><summary type='text'>When setting focus a window, it is useful to make sure the window is not minimized. Standard CloseQuery processing is one place where this logic might be needed. The window-level function below sets focus to the current window and returns minimized window to Normal state.Function:  f_ShowWindow (no args)integer li_Return = 1// make the current window normal size, if it was minimizedIF </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1386433041475423547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1386433041475423547'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/setting-focus-to-window-handling.html' title='Setting Focus to a Window (handling minimized)'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1587159080336252323</id><published>2008-07-07T07:49:00.000+07:00</published><updated>2008-07-07T07:50:18.989+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Setting Focus to the TabPage with the Control</title><summary type='text'>A common problem when using Tab objects is that you can set focus to a control (e.g. a DataWindow) on the tab but that control is not actually visible, since another Tab Page is selected. This may happen because another TabPage (e.g. TabPage 2) has focus when the save process starts and the DW on this Tabpage (e.g. TabPage 3) has an ItemChanged Error message to display.It is useful to create a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1587159080336252323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1587159080336252323'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/setting-focus-to-tabpage-with-control.html' title='Setting Focus to the TabPage with the Control'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8882370234731944935</id><published>2008-07-05T09:15:00.000+07:00</published><updated>2008-07-05T09:16:02.337+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><title type='text'>WMI wrapper</title><summary type='text'>Introduction  WMI is a powerful technology widely used by programmers to manage computers. it can be accessed in .Net through the System.Management namespace. Although WMI classes are highly structured, the common way to use it is through WQL requests returning variant objects. The purpose of the WMIwrapper project in this article is to provide classes equivalent to WMI ones provided in the root\</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8882370234731944935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8882370234731944935'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/wmi-wrapper.html' title='WMI wrapper'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4574287603337491044</id><published>2008-07-04T08:54:00.001+07:00</published><updated>2008-07-04T08:54:44.058+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Converting keycodes to character strings</title><summary type='text'>With most objects, you can trap the key strokes using user events.  For example,   on a datawindow object, you can create a user event using Event Id = pbm_dwnkey.    In this event, you'll find a parameter of type keycode.  This is a   predefined enumerated data type with values such as KeyA!, KeyB!,   etc.  But if you want to convert this value to a string, you'll find your choices are   limited</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4574287603337491044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4574287603337491044'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/converting-keycodes-to-character.html' title='Converting keycodes to character strings'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6346706302481064172</id><published>2008-07-04T08:52:00.000+07:00</published><updated>2008-07-04T08:53:03.035+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Reading Data from a Word Document into a Datawindow Control</title><summary type='text'>This article is the second of two 10-Minute Solutions that demonstrate how to interface PowerBuilder with Microsoft Word. Using these two articles and the previous set of articles on using the MAPI interface, you will be able to put the four topics together to construct some interesting applications. One example could be a workflow system where your application mails out forms or a questionnaire </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6346706302481064172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6346706302481064172'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/reading-data-from-word-document-into.html' title='Reading Data from a Word Document into a Datawindow Control'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5721017031214087816</id><published>2008-07-03T08:32:00.001+07:00</published><updated>2008-07-03T08:32:50.778+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>List the size of each table in the database</title><summary type='text'>Cry How to...List the size of each table in the databaseIt is sometimes useful to obtain the current storage requirements of each table in a database, i.e. the number of KB of storage currently occupied by each table. There are a number of ways to get the size of tables in a SQL Server database::    * Using Enterprise Manager    * Using sp_spaceused (for single table)    * Using a scriptUsing </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5721017031214087816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5721017031214087816'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/list-size-of-each-table-in-database.html' title='List the size of each table in the database'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1836791657442945069</id><published>2008-07-03T08:29:00.001+07:00</published><updated>2008-07-03T08:32:05.486+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Export Data to a Comma Separated File</title><summary type='text'>To export data to a comma separated file (csv), use the bcp command line utility:    bcp [[].] out  [/U] [/P] [/S] /c /t,where:      is an optional parameter specifying the name of the database. It can only be omitted if the desired database is the default database.      the name of the table owner.      the name of the table.      The name of the comma separated file to generate.      The SQL </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1836791657442945069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1836791657442945069'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/export-data-to-comma-separated-file.html' title='Export Data to a Comma Separated File'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4690026288413299705</id><published>2008-07-03T08:28:00.001+07:00</published><updated>2008-07-03T08:29:24.727+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Determine the name of the database you are connected to</title><summary type='text'>To get the name of the current database:    select db_name(dbid) from master..sysprocesses where spid=@@SPIDalternately:    sp_who @@SPIDwill give the name of the current database and other information about the current user.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4690026288413299705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4690026288413299705'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/determine-name-of-database-you-are.html' title='Determine the name of the database you are connected to'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1855473100285611479</id><published>2008-07-02T09:35:00.000+07:00</published><updated>2008-07-02T09:38:40.457+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Server Time-Dates</title><summary type='text'>The other day in our architecture group meeting the question was raised on how SQL Server handled future dates in relation to lights savings time.  For example if a play was scheduled in January for a date in July at 1:00 PM would reflect this time or 2:00 PM because of the jump in a hour for day light savings time.  This is a common issue with many applications, but not SQL Server.  It all </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1855473100285611479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1855473100285611479'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/sql-server-time-dates.html' title='SQL Server Time-Dates'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4616954013155119481</id><published>2008-07-01T11:13:00.001+07:00</published><updated>2008-07-01T11:13:45.630+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Monitor Database Growth</title><summary type='text'>This code provides a way of monitoring the growth of all your databases within a single instance. The first part is the creation of a monitoring table with the initial load of current databases and sizes. The second part is the SQL that can be put in a scheduled job to automate the growth monitoring.It is recommended that this job is run weekly or monthly, depending on how fast your databases </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4616954013155119481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4616954013155119481'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/monitor-database-growth.html' title='Monitor Database Growth'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5686714532860462816</id><published>2008-07-01T11:11:00.000+07:00</published><updated>2008-07-01T11:12:33.294+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Generate Scripts to Compare Tables</title><summary type='text'>I wanted to be able to compare the table data in two databases where I was not able to transfer the data or install a program (such as Red-Gate's SQL Data Compare) but I could use a script. What I found was that there is a stored procedure called sp_table_validation. It is used primarily for handling replication, however, if I can see it I can call it, right? It generates, and compares, row </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5686714532860462816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5686714532860462816'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/generate-scripts-to-compare-tables.html' title='Generate Scripts to Compare Tables'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4263779544325072332</id><published>2008-07-01T11:09:00.001+07:00</published><updated>2008-07-01T11:09:49.722+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Start SQL Server 2000 in Single User Mode</title><summary type='text'>To start SQL Server in single user mode:    Start a command session (start &gt; Run &gt; "cmd"      [Return]).To ensure that SQL Server is not running type:         net stop MSSQLServer     This may say that this will also stop another service      (typically SQLSERVERAGENT), in which case allow      it to continue. It will also indicate if the service is      already stopped.To start SQL Server in </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4263779544325072332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4263779544325072332'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/start-sql-server-2000-in-single-user.html' title='Start SQL Server 2000 in Single User Mode'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3752955809578340874</id><published>2008-07-01T11:06:00.000+07:00</published><updated>2008-07-01T11:07:49.963+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Run dbcc checkdb on each database (using cursors)</title><summary type='text'>The simplest way to run 'dbcc checkdb' (to check the structural integrity of an SQL Server database) on each database in the system is to write a simple script that includes each database by name, for example:  dbcc checkdb(MASTER) with no_infomsgsdbcc checkdb(MODEL) with no_infomsgs..dbcc checkdb(TEMP) with no_infomsgs  The disadvantage of this approach is that the script needs to be updated </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3752955809578340874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3752955809578340874'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/run-dbcc-checkdb-on-each-database-using.html' title='Run dbcc checkdb on each database (using cursors)'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3547990923991012867</id><published>2008-07-01T08:56:00.001+07:00</published><updated>2008-07-01T08:56:39.184+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Faster Arithmetic</title><summary type='text'>When doing arithmetic in PowerBuilder it is easy not to give any consideration to the Datatypes you are performing arithmetic upon. I recently found out that although PowerBuilder allows you to perform arithmetic using all numeric Datatypes the internal engine will always use the largest internal Datatype for the calculation to reduce the risk of rounding and overflow.You may be wondering where </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3547990923991012867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3547990923991012867'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/faster-arithmetic.html' title='Faster Arithmetic'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3845809980667286529</id><published>2008-07-01T08:55:00.001+07:00</published><updated>2008-07-01T08:55:31.768+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Object Variables Should Always be Private</title><summary type='text'>When attempting to encapsulate a class that will be inherited you would normally declare the variables as protected so that they can be accessed be derived classes but are protected from aggregate and associated relationships.The problem with this is that it generates a higher level of coupling between the ancestor and the descendant. The impact of changing the way a particular attribute is </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3845809980667286529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3845809980667286529'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/07/object-variables-should-always-be.html' title='Object Variables Should Always be Private'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8594542111671812130</id><published>2008-06-30T10:09:00.000+07:00</published><updated>2008-06-30T10:14:02.328+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>RSS Ticker with AJAX</title><summary type='text'>Download the demoDescription: RSS is a popular format for syndicating and displaying external content on your site, such as the latest headlines from CNN. Well, with this powerful RSS ticker script, you can now easily display any RSS content on your site in a ticker fashion! This script uses a simple PHP based RSS parser called LastRSS for retrieving a RSS feed, then Ajax and DHTML to display </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8594542111671812130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8594542111671812130'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/rss-ticker-with-ajax.html' title='RSS Ticker with AJAX'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1377360169348734490</id><published>2008-06-30T10:02:00.000+07:00</published><updated>2008-06-30T10:04:16.595+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Alternate Ajax Techniques</title><summary type='text'>By now, nearly everyone who works in web development has heard of the term Ajax, which is simply a term to describe client-server communication achieved without reloading the current page. Most articles on Ajax have focused on using XMLHttp as the means to achieving such communication, but Ajax techniques aren't limited to just XMLHttp. There are several other methods; we'll explore some of the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1377360169348734490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1377360169348734490'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/alternate-ajax-techniques.html' title='Alternate Ajax Techniques'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1165436601314715824</id><published>2008-06-30T09:53:00.000+07:00</published><updated>2008-06-30T10:02:05.500+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Pengantar AJAX</title><summary type='text'>Sebelum membahas lebih jauh tentang AJAX. Apa sih sebenarnya AJAX? AJAX bukanlah barang baru dan bukan teknologi baru. AJAX merupakan paduan dari beberapa teknologi yang sudah dikenal sebalumnya yaitu HTML, DOM, XML, Javascript dan teknologi pendukung lainnya. AJAX adalah akronim dari Asynchronous JavaScript and XML,  komponen-komponen AJAX meliputi:   HTML (HyperText Markup Language) digunakan </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1165436601314715824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1165436601314715824'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/pengantar-ajax.html' title='Pengantar AJAX'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8889569923226139659</id><published>2008-06-27T20:42:00.000+07:00</published><updated>2008-06-27T20:43:23.956+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIN 32 API'/><title type='text'>Windows Temp Directory</title><summary type='text'>This tip for getting the windows temp directory from within windows was submitted by  Daniel Barnes. When you've just got to create some temporary storage files, the window temp directory is the recommended place for shoving them!  If you're feeling really good, the best place for this to go would be within the PFE layer probably in n_cst_filesrvwin32. // Declare this as your Local External </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8889569923226139659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8889569923226139659'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/windows-temp-directory.html' title='Windows Temp Directory'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-3000619653576272460</id><published>2008-06-27T20:36:00.000+07:00</published><updated>2008-06-27T20:40:38.506+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Make a Window Stay On Top</title><summary type='text'>Sometimes when developing applications you want your window to stay on     top of all other windows.One way to achieve this is to declare an API call, but     PowerBuilder has support for this built in. If at all possible it is best not to go     directly to an API call as is makes your application platform specific.     Anyway, there is a method of the window object, SetPosition() which takes</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3000619653576272460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/3000619653576272460'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/make-window-stay-on-top.html' title='Make a Window Stay On Top'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8446023645311055441</id><published>2008-06-26T09:34:00.000+07:00</published><updated>2008-06-26T09:35:54.566+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><title type='text'>Writing Your Own GPS Applications</title><summary type='text'>Introduction What is it that GPS applications need to be good enough to use in a commercial environment, such as in-car navigation? Also, how does the process of interpreting GPS data actually work? In this two-part series, I will cover both topics and give you the skills you need to write a commercial-grade GPS application that works with a majority of GPS devices in the industry today. Writing </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8446023645311055441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8446023645311055441'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/writing-your-own-gps-applications.html' title='Writing Your Own GPS Applications'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1986038167611624637</id><published>2008-06-26T09:31:00.000+07:00</published><updated>2008-06-26T09:32:02.418+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Programmatically Setting Control Adapters for URL Rewriting and AJAX</title><summary type='text'>IntroductionAnyone who has spent time developing URL rewriters will know that these do not always play nicely with AJAX components. This is because the HtmlForm element written out by .NET uses the actual URL for post-backs, and not the page's virtual URL that you are trying to preserve. This article discusses how this can be resolved cleanly, and also shows how control adapters may be set </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1986038167611624637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1986038167611624637'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/programmatically-setting-control.html' title='Programmatically Setting Control Adapters for URL Rewriting and AJAX'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6518691860980419434</id><published>2008-06-24T20:41:00.001+07:00</published><updated>2008-06-24T20:41:50.288+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>12 Types of RowFocusIndicator</title><summary type='text'>This tip is a script used to create 12 types of RowFocusIndicators including Color-Bands (White, Light-Yellow, ...) or Raised-Text-Band or Standard PowerBuilder RowFocusIndicators. The function also creates, destroys and changes them at run-time./*-----------------------------------------------FUNCTION:- boolean SetRfi(datawindow adw, int ai_rfi_cd)PURPOSE/FUNCTIONALITY:- Create ColorBand or </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6518691860980419434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6518691860980419434'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/12-types-of-rowfocusindicator.html' title='12 Types of RowFocusIndicator'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4570855663268750383</id><published>2008-06-24T20:40:00.001+07:00</published><updated>2008-06-24T20:40:20.582+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Update Multiple Tables from a single Datawindow</title><summary type='text'>Although the Datawindow painter does not allow you to update multiple tables. You can add this functionality to the Datawindow.All of the datawindows attributes are updateable through the modify command or the dot notation. The update specifications that you specify in the Rows Update menu item are accessible in the same way as other attributes. The attributes you will need to set are the Update </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4570855663268750383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4570855663268750383'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/update-multiple-tables-from-single.html' title='Update Multiple Tables from a single Datawindow'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4117086985573876518</id><published>2008-06-23T10:02:00.000+07:00</published><updated>2008-06-23T10:03:22.094+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Preventing User Access From Other Tools in powerbuilder</title><summary type='text'>When users have other products on their machines that allow them to     connect to a database, a tool like Access for example, they have the ability to connect to     your Application Database. If the user knows their ID and password, which they do when     they login via your application logon screen then there is nothing stopping them from     connecting via Access and bypassing all your lovely</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4117086985573876518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4117086985573876518'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/preventing-user-access-from-other-tools.html' title='Preventing User Access From Other Tools in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-8253239850440469673</id><published>2008-06-23T10:01:00.000+07:00</published><updated>2008-06-23T10:02:36.899+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>IF Statements using SQL</title><summary type='text'>When building list windows for users you often want to allow them to     specify search criteria. If the search criteria are simple and only have a single field or     all fields must be entered than a simple WHERE clause with retrieval     arguments will do the job. For very complicated arguments with multiple selections you     will have to resort to dynamically altering the SQL behind the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8253239850440469673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/8253239850440469673'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/if-statements-using-sql.html' title='IF Statements using SQL'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7101777318898402910</id><published>2008-06-21T09:20:00.001+07:00</published><updated>2008-06-21T09:20:58.075+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Ancestry Check Function</title><summary type='text'>This function will check if an object inherits from the past in class name. Submitted by Erik Toft.///////////////////////////////////////////////////////////////////////// // // Global service function: f_is_a // // Purpose: Allows a program to check the ancestry of any //          object to ensure that it is derived from an //          expected ancestor, therefore having an //          expected</summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/7101777318898402910/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=7101777318898402910&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7101777318898402910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7101777318898402910'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/ancestry-check-function.html' title='Ancestry Check Function'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4991093838455058346</id><published>2008-06-21T09:19:00.000+07:00</published><updated>2008-06-21T09:20:05.290+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Listview Custom Sort in powerbuilder</title><summary type='text'>PBDelta uses a variety of controls for the UI and in the File Selection window I use the Treeview and Listview objects. The combination gives an explorer style navigation for selecting files. I used the out of the box sort for the list view columns, however two of the columns where not "string" data but a size and a date column, when the out of the box sort was used it sorted them as string not </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/4991093838455058346/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=4991093838455058346&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4991093838455058346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4991093838455058346'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/listview-custom-sort-in-powerbuilder.html' title='Listview Custom Sort in powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-215705575125114078</id><published>2008-06-20T09:45:00.000+07:00</published><updated>2008-06-20T09:48:30.703+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Get Executable Path and Name</title><summary type='text'>PurposeTo get the executable name and path for the current applicationHow To UseI personally usually call this call in a custom application object which gets created when the application starts up. It may, however, be called virtually anywhere either as a global function or object function.CodePlease note that the following external function call must be defined for the function to work.External </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/215705575125114078/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=215705575125114078&amp;isPopup=true' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/215705575125114078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/215705575125114078'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/get-executable-path-and-name.html' title='Get Executable Path and Name'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7442350796045876844</id><published>2008-06-20T09:44:00.000+07:00</published><updated>2008-06-20T09:45:27.494+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Datawindow timer event</title><summary type='text'>PurposeIt's quite possible to add a timer to a datawindow, it's just not very well documented! This page tells you how to do it.How to do itStartingCreate a new Datawindow control, declare a new event within this object and call it whatever you like (I personally use ue_timer). Map this event to the pbm_timer event id. You've just created a timer event for your datawindow control.Setting the </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/7442350796045876844/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=7442350796045876844&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7442350796045876844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7442350796045876844'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/datawindow-timer-event.html' title='Datawindow timer event'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1460742795817766987</id><published>2008-06-19T09:50:00.001+07:00</published><updated>2008-06-19T09:50:46.551+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Shutdown Window with no Prompts</title><summary type='text'>When a serious error is encountered, it is sometimes necessary to close the window. Unless youare careful, two problems can occur when closing the window:   1. The user will be prompted to save outstanding changes.   2. Some further logic might execute after the window closes causes a serious application error.The window function f_Shutdown() avoids the two problems and it is easy for developers </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/1460742795817766987/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=1460742795817766987&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1460742795817766987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1460742795817766987'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/shutdown-window-with-no-prompts.html' title='Shutdown Window with no Prompts'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-5559086974329570799</id><published>2008-06-19T09:49:00.000+07:00</published><updated>2008-06-19T09:50:11.526+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerscript'/><title type='text'>Replacement for pfc_u_tv's of_FindItem</title><summary type='text'>The following function was written to stand in place for pfc_u_tv's of_FindItem function. At least in 16-bit environments (not sure of 32-bit), PFC's of_FindItem gets a stack overflow and GPFs when it has to search more than 50 tree items. This function avoids the problem by searching the tree items in a loop instead of recursively. The parameters are the same as of_FindItem, except the parameter</summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/5559086974329570799/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=5559086974329570799&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5559086974329570799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/5559086974329570799'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/replacement-for-pfcutvs-offinditem.html' title='Replacement for pfc_u_tv&apos;s of_FindItem'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7554372967596007709</id><published>2008-06-18T09:32:00.001+07:00</published><updated>2008-06-18T09:32:56.927+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Message Handling in a PFC DataWindow</title><summary type='text'>A general purpose DataWindow message function can provide two important capabilities:    * Suppress Messages on CloseQuery: when closing a window, it is desirable to suppress the display of error messages and allow PFC to display a suitable generic message in its CloseQuery logic. Since PFC invokes AcceptText() on any updateable DataWindows in CloseQuery, ItemChanged logic from various </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/7554372967596007709/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=7554372967596007709&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7554372967596007709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7554372967596007709'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/message-handling-in-pfc-datawindow.html' title='Message Handling in a PFC DataWindow'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1479206182558988361</id><published>2008-06-18T09:30:00.000+07:00</published><updated>2008-06-18T09:32:08.006+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerbuilder'/><title type='text'>Making PFC Help Easily Accessible</title><summary type='text'>To make the PFC Help easily accessible, customize the PowerBuilder Toolbar, as follows:On PowerBuilder toolbar, choose right-mouse, "Customize..."Choose "Custom Toolbar" radio buttonSelect a toolbar icon (to represent PFC Help) from top list and drag it to bottom list.Specify the following toolbar details:    Command Line: WINHELP C:\PWRS\PB5\SYS\PBPFC050.HLP               or WINHELP C:\PROGRAM </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/1479206182558988361/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=1479206182558988361&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1479206182558988361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1479206182558988361'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/making-pfc-help-easily-accessible.html' title='Making PFC Help Easily Accessible'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-7470709916512785332</id><published>2008-06-17T09:47:00.001+07:00</published><updated>2008-06-17T09:48:00.172+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Avoiding "Double" Error Messages in DW Validation</title><summary type='text'>A common problem when setting up validation logic in ItemChanged is that two message getdisplayed. First, the intended message in ItemChanged and then a default PowerBuilder message:"Item '' does not pass validation test". One simple solution to avoid this problem is tohave descendents set a flag (ib_SuppressMsg) in the ItemChanged event, when they've alreadydisplayed an error message.  In </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/7470709916512785332/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=7470709916512785332&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7470709916512785332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/7470709916512785332'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/avoiding-double-error-messages-in-dw.html' title='Avoiding &quot;Double&quot; Error Messages in DW Validation'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-6413975578714902494</id><published>2008-06-17T09:45:00.000+07:00</published><updated>2008-06-17T09:47:23.816+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Powerbuilder General Routine to Validate DDDW Input</title><summary type='text'>When working with enterable Drop down DataWindows (DDDWs), a common requirement is tovalidate the data entered into the DDDW. In addition, it is frequently necessary to get anothervalue from the DDDW (e.g. user enters a code which has to be validated and if the code is validyou need to get the corresponding description from the DDDW). The function below serves boththose purposes and it is </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/6413975578714902494/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=6413975578714902494&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6413975578714902494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/6413975578714902494'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/powerbuilder-general-routine-to.html' title='Powerbuilder General Routine to Validate DDDW Input'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-1496914947022772443</id><published>2008-06-16T10:18:00.001+07:00</published><updated>2008-06-16T10:18:28.869+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Making Grids DW's Look "Nice" in Powerbuilder</title><summary type='text'>When using a grid on the non-editable list datawindow, there are a few ugly-looking side-effects that you might want to avoid.1. If you put the mouse on a "cell" on a grid, PB defaults to turning the colour of that field black and changing the row focus (and selecting the row if you are using a row selection facility). If you don't want this cell blackening (i.e. you don't want to cut/paste </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/1496914947022772443/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=1496914947022772443&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1496914947022772443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/1496914947022772443'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/making-grids-dws-look-nice-in.html' title='Making Grids DW&apos;s Look &quot;Nice&quot; in Powerbuilder'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5949006623885328573.post-4625089818660166503</id><published>2008-06-16T10:17:00.001+07:00</published><updated>2008-06-16T10:17:46.214+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datawindow'/><title type='text'>Making "GroupBoxes" inside a DataWindow (pre-PB6)</title><summary type='text'>Prior to PowerBuilder 6, DataWindows did not have groupboxes as windows did. Here's how to make a "pretend" groupbox on your DW that works pretty well:1. Paint your columns that you're going to group onto the DW.2. Choose the recentangle (or box) on the DW Painter. Give the box a TRANSPARENT fill to reduce problems associated with determining whether the rectangle or the fields are "in front".3. </summary><link rel='replies' type='application/atom+xml' href='http://belajar-powerbuilder.blogspot.com/feeds/4625089818660166503/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5949006623885328573&amp;postID=4625089818660166503&amp;isPopup=true' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4625089818660166503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5949006623885328573/posts/default/4625089818660166503'/><link rel='alternate' type='text/html' href='http://belajar-powerbuilder.blogspot.com/2008/06/making-groupboxes-inside-datawindow-pre.html' title='Making &quot;GroupBoxes&quot; inside a DataWindow (pre-PB6)'/><author><name>virtue</name><uri>http://www.blogger.com/profile/05516052908690533503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
