Foxhound is the better* Database Monitor for SQL Anywhere.
*better: More thorough, more relevant, more effective.
...more Alerts, more All Clears, more details, more control in your hands.
|
[Home] | [About Breck] |
Last modified: February 14, 2000
mail to: bcarter@bcarter.com
A Rudimentary Execution Profiler | An execution profiler helps find where all the time is being spent in an application program. This article discusses exection profilers in general and presents the code for one that works with PowerBuilder. First in a series of 3 articles. | May 1, 1996 |
A Simple Data Dictionary | How to create a code-free data dictionary with ERwin, two dictionary tables and a single DataWindow. | August 8, 1996 |
About Breck Carter | Background and contact information for Breck Carter. | February 13, 2000 |
Accidental Polymorphism | How to get the Clipboard() function to work properly in a DataWindow script. | February 5, 1997 |
Always Define A Primary Key | Tip 77.11 - Always Define A Primary Key | February 12, 1998 |
An Open Letter To Steve Benfield | An open letter to Steve Benfield about the PowerBuilder Developers Journal. | August 11, 1998 |
Array Functions | How to use the any data type to code a PowerBuilder 5 function that returns an array. | July 10, 1996 |
Auto-Incrementing DataWindows | How to use SQL Anywhere 5's new default AutoIncrement feature together with PowerBuilder 5's Identity Column facility. | September 4, 1996 |
Avoid The Polymorph Table | Why codes and descriptions should be placed in separate tables rather than gathered into a combined code table. | June 11, 1996 |
Be Reasonable With The Indexes | Tip 77.21 - Be Reasonable With The Indexes | February 12, 1998 |
Better Column Names | Defining readable names for computed column and field names. | May 14, 1996 |
Beware Of Slow DDL | Tip 77.30 - Beware Of Slow DDL | February 12, 1998 |
Beware The Shallow Copy | Avoid memory leaks and other errors by understanding how PowerBuilder object variable assignments are actually implemented. | July 16, 1996 |
Can SQL Anywhere Handle Your Load? | Tip 77.1 - Can SQL Anywhere Handle Your Load? | February 12, 1998 |
Casting BLObs | Using the Watcom SQL cast() function to convert a long binary column to string format for easy retrieval in a PowerBuilder DataWindow. | April 30, 1996 |
Code For A Simple Data Dictionary | How to download the exported code for the dictionary DataWindow and the SQL for creating the dictionary tables. | August 12, 1996 |
Code For Prompt Before Printing | Download the code for f_prompt_before_printing. | August 15, 1996 |
Consider An Explicit Primary Key Index | Tip 77.15 - Consider An Explicit Primary Key Index | February 12, 1998 |
Counting With CumulativeSum() | Using the DataWindow CumulativeSum() function instead of count() to solve difficult counting problems. | May 16, 1996 |
Create Indexes | Tip 77.9 - Create Indexes | February 12, 1998 |
Date Arithmetic in PowerBuilder! | Using functions like day() and RelativeDate() to solve problems like calculating the last date in a given month. | May 30, 1996 |
Deal With Disk Fragmentation | Tip 77.31 - Deal With Disk Fragmentation | February 12, 1998 |
Dealing With Hierarchies | Use a denormalized hiearchy table to simplify queries involving fishhook relationships. | May 31, 1996 |
Deep Copies With AutoInstantiate | How to implement deep copying of non-visual user objects with the new AutoInstantiate property in PowerBuilder 5. | July 17, 1996 |
Default Timestamp | How to use SQL Anywhere 5's new timestamp default to implement a higher level of consistency checking. | June 27, 1996 |
DELETE FROM FROM | How to qualify a SQL delete with a where clause involving more than one table. | June 24, 1996 |
Describing Evaluate | How to call Describe() and Evaluate() to compare columns on different rows in a computed field expression. | July 23, 1996 |
Diagnose Problems With Runtime Properties | Tip 77.26 - Diagnose Problems With Runtime Properties | February 12, 1998 |
Distinct Sums | How to suppress repeating values from computed field expressions as well as the display. | June 25, 1996 |
eDict: An HTML-Based Data Dictionary | An offer to participate in alpha testing. | August 5, 1998 |
Encapsulated DataWindow Searching | A standard SingleLineEdit user object for searching-and-scrolling a DataWindow while the user types is described. | May 9, 1996 |
Eschewing Annoyance | How to get rid of the "Specify Retrieval Arguments" dialog box when using a DropDownDataWindow that expects a retrieval argument. | January 1, 1997 |
Evaluating LookupDisplay | How to call DataWindow functions like LookupDisplay from PowerScript. | August 9, 1996 |
Evaluating Validations | Calling Describe() and Evaluate() to check user input without calling AcceptText(). | June 12, 1996 |
Exists Versus Count(*) | Use if exists instead of count(*) to determine if any rows exist. | May 23, 1996 |
Find Blocked Connections With System Functions | Tip 77.27 - Find Blocked Connections With System Functions | February 12, 1998 |
Flat Files In SQL | Some techniques for loading and scanning data from flat text files into SQL Anywhere tables. | October 18, 1996 |
Forensic Programming | First published in the March 1995 issue of Pinnacle Publishing's PowerSource magazine, this tip talks about the maintenance and enhancement of PowerBuilder programs. | December 3, 1997 |
Format 5 Dynamic SQL | How to code dynamic SQL using SQL Anywhere 5's new Execute Immediate statement. | July 25, 1996 |
From SQL Anywhere To SQL Server | Tip 79: Quick Reference Notes - Converting From Sybase SQL Anywhere 5.5 To Sybase Adaptive Server Enterprise 11.5 - a work-in-progress | October 16, 1998 |
Generate Surrogate Keys | The code for f_get_next_surrogate_id which uses the surrogate_id table to generate artificial primary key values. | October 6, 1997 |
Getting Started with NetImpact Dynamo | NetImpact Dynamo lets you code web server-based database programs in a JavaScript-like language called Dynamo Script. By combining server-side Dynamo Script, client-side JavaScript and HTML code in the same web page you can automate many of the mundane tasks required in the creation of interactive web sites. And your whole web site can be stored in a single database to make administration, publishing, backup and recovery much easier. | November 21, 1997 |
Getting Started With Powersoft and Sybase News Groups | Tip 87: Getting Started With Powersoft and Sybase News Groups - How to get free advice and customer support via the internet, and how to avoid getting into trouble on the newsgroups. | March 24, 1999 |
Group By Peril | How summarization can hide huge errors in SQL selects. | June 7, 1996 |
Hiding The MDI Window List | How to suppress the standard list of open sheets. | July 12, 1996 |
Importing Text Files | How to use an ODBC text driver to retrieve data from a fixed-format text file. | September 3, 1996 |
Independent Contractor Questionnaire | How does Revenue Canada determine if I'm an employee or an independent contractor when I work as a subcontractor in the computer field? | October 7, 1997 |
Intelligent Versus Surrogate Keys | Deciding whether to use business columns or artificially generated values as primary keys. | October 6, 1997 |
Interrupt Processing With SET ROWCOUNT | Tip 77.34 - Interrupt Processing With SET ROWCOUNT | February 12, 1998 |
Java In The Database (2) - Nested Object Columns | Tip 82: Java In The Database (2) - Nested Object Columns: Can a Java object with nested Java objects be stored in a table? | November 26, 1998 |
Java In The Database (3) - Object Indexes | Tip 83: Java In The Database (3) - Object Indexes: Can Java objects be indexed? | November 30, 1998 |
Java In The Database (4) - JDBC and jConnect | Tip 84: Java In The Database (4) - JDBC and jConnect: Can Java code do Adaptive Server Anywhere database I/O from a client? | December 2, 1998 |
Java In The Database (5) - Cross-Server Database I/O | Tip 85: Java In The Database (5) - Cross-Server Database I/O: Can Java code running in one database connect to a different database? | December 3, 1998 |
Java In The Database - Getting Started with ASA 6 | Tip 81: Java In The Database - Getting Started With Sybase Adaptive Server Anywhere Version 6 | November 24, 1998 |
Java In The Database - OSUG | Tip 86: Java In The Database - Breck Carter's presentation to the Ontario Sybase User Group on February 24, 1999 | February 25, 1999 |
L. A. Diary: Powersoft Conference '98 | Breck's experiences at the 1998 Powersoft Conference in Los Angeles, August 8 to 13. | August 16, 1998 |
Learn To Read The Plan | Tip 77.3 - Learn To Read The Plan | February 12, 1998 |
Limit Result Sets With SET ROWCOUNT | Tip 77.33 - Limit Result Sets With SET ROWCOUNT | February 12, 1998 |
Local Session Locks | Allowing the user to open multiple instances of the same MDI sheet while preventing the same data from being changed in two different sheets. | June 20, 1996 |
Monitor Client And Server With DBWatch | Tip 77.36 - Monitor Client And Server With DBWatch | February 12, 1998 |
Moving The Unmovable | Moving a signature line to the bottom of the last page by alternative methods involving the summary and footer bands. | December 23, 1996 |
Multi-Key DropDownDataWindows | How to filter a DDDW to include values that apply to the current row without causing the display value on other rows to change, and how to create a single DDDW that affects two data columns on the master DataWindow. | July 19, 1996 |
N-Up Computed Fields | How to code computed field expressions in N-Up DataWindows. | June 26, 1996 |
Not Enough Rows? | Dealing with outer joins that don't return all the rows expected. | May 22, 1996 |
Optimizing SQL | Tips and techniques for optimizing SQL commands. | May 15, 1996 |
ORCA Symptoms And Solutions | Where to find documentation and a wrapper DLL for the Open Repository CASE API (ORCA), and how to deal with some problems testing ORCA applications. | July 3, 1997 |
Pattern Matching With SQL | How to use the new SQL Anywhere 5 PatIndex() and SQL Batch facilities to find and modify search strings embedded within character columns. | July 15, 1996 |
PBDebug and DebugOutFile | How to get a program execution trace in the PowerBuilder 5 development environment. | September 5, 1996 |
Pick The Right Time To Create An Index | Tip 77.22 - Pick The Right Time To Create An Index | February 12, 1998 |
Pointer Arithmetic in PowerBuilder! | Use pointer arithmetic and the string ( long, "address" ) function to find DOS environment variables. | May 29, 1996 |
Pre-Loading DataWindows | Using a hidden main window or a DataStore to pre-load large result sets to improve overall performance. | June 20, 1996 |
Profiler Code | The actual PowerBuilder code for implementing a rudimentary execution profiler including enhancements. Last of 3 articles. | May 7, 1996 |
Profiler Feedback | A suggestion for improving the PowerBuilder execution profiler by automatically including script name and line number in the profile report. Second of 3 articles. | May 3, 1996 |
Prompt Before Printing | How to create your own DataWindow print prompt window that works with HP Laserjet printers. | August 14, 1996 |
Put Different Data On Different Drives | Tip 77.35 - Put Different Data On Different Drives | February 12, 1998 |
QuickTips | Debugging and other tips and techniques for PowerBuilder applications. | January 5, 1997 |
Refreshing DataWindows | How to use SQL Anywhere 5's new default timestamp feature when writing code to determine if a DataWindow needs to be refreshed. | July 26, 1996 |
Replace OR With UNION | Tip 77.20 - Replace OR With UNION | February 12, 1998 |
Replication Overview | This is the text of a presentation to the November 25, 1997 meeting of the Toronto PowerBuilder User Group. It is an excerpt from Replication Step-By-Step - A Detailed Demonstration Of Publish Subscribe Replication Using Sybase SQL Anywhere With MESSAGE TYPE "FILE". | November 26, 1997 |
Replication Step By Step | Tip 78 - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Conclusion | Tip 78 - Conclusion - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Force Consistency Via SYNCHRONIZE SUBSCRIPTION | Tip 78 - Section Four: Force Consistency Via SYNCHRONIZE SUBSCRIPTION - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Introduction | Tip 78 - Introduction - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Replicate Changes Among The Databases | Tip 78 - Section Three: Replicate Changes Among The Databases - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Send Commands Via PASSTHROUGH | Tip 78 - Section Five: Send Commands Via PASSTHROUGH - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Set Up The Consolidated Database | Tip 78 - Section One: Set Up The Consolidated Database - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Replication Step By Step - Set Up The Remote Database | Tip 78 - Section Two: Set Up The Remote Database - Replication Step By Step - A detailed demonstration of publish subscribe replication using Sybase SQL Anywhere with MESSAGE TYPE "FILE" | February 23, 1998 |
Resume | Breck Carter is an independent consultant with over 20 years of experience building Management Information Systems. | November 26, 1997 |
Run ISQL In Batch Mode | Tip 77.4 - Run ISQL In Batch Mode | February 12, 1998 |
Save As RTF | How to use a RichTextEdit control to save DataWindow data in RTF format. | July 24, 1996 |
Scroll-While-You-Type Program Code | Program code for u_sle_find, enhanced to handle numeric, date, time and DateTime columns as well as strings (PowerBuilder 5 and 6.5 versions now available, with support for DataWindow data type "long"). | November 17, 1998 |
ScrollToFirstRowOnPage | How to get row highlighting to move to the new row on a freeform DataWindow when the vertical scrollbar is used. | February 14, 1997 |
SQL Server Performance Tips | Tip 80: Quick Tips about performance in Adaptive Server Enterprise. | October 28, 1998 |
Switching NT Printers | How to switch between several printers without using the PrintSetup() dialog box. | September 6, 1996 |
Sybase Adaptive Server Anywhere Default Values | Tip 88: Sybase Adaptive Server Anywhere Default Values - The power of DEFAULT goes beyond INSERT. Some values are automatically changed when a row is updated, and you can use DEFAULT TIMESTAMP and DEFAULT LAST USER to avoid writing some kinds of triggers. | September 29, 1999 |
Sybase SQL Anywhere 5.5 System Tables | Tip 89: Sybase SQL Anywhere 5.5 System Tables - A look at the system catalog via HTML, and an introduction to the eDict Data Dictionary program. | May 3, 1999 |
Sybase SQL Anywhere Performance Tips & Techniques | Tip 77 - 38 chapters, 14,000 words, all about tuning Sybase SQL Anywhere. | February 12, 1998 |
Sybase SQL Anywhere Performance Tips & Techniques - A Final Word | Tip 77 - A Final Word | February 12, 1998 |
Sybase SQL Anywhere Performance Tips & Techniques - Introduction | Tip 77 - Introduction to Sybase SQL Anywhere Performance Tips & Techniques | February 12, 1998 |
Sybase SQL Anywhere Performance Tips & Techniques - Overview | Tip 77 - An extended "Table of Contents." | February 12, 1998 |
The ConnectOption DBParm Parameter | Using the new ODBC ConnectOption DBParm parameter to suppress the dialog box that appears when the something goes wrong with a connect statement. | December 9, 1996 |
The DataWindow As Pipeline | How to get control over database transfers by using a DataWindow instead of a Pipeline. | December 11, 1996 |
The Dreaded Meta-Tilde (I) | First of a two-part series on coding special characters in DataWindow expressions. | June 13, 1996 |
The Dreaded Meta-Tilde (II) | Second of a two-part series on coding special characters in DataWindow expressions | June 14, 1996 |
The Prime Directive: Increase The Cache | Tip 77.5 - The Prime Directive: Increase The Cache | February 12, 1998 |
The Tip With No Name (Banish NULLs!) | Why you should banish NULLs from your applications. | May 21, 1996 |
Think Sets | Tip 77.8 - Think Sets | February 12, 1998 |
Timeless Dates | Dealing with the fact that the Watcom SQL date datatype includes a component for time. | May 6, 1996 |
To Check Or Not To Check (Error Codes) | A discussion of error checking and diagnosis in PowerBuilder applications. | April 29, 1996 |
Too Many Rows? | When the result set is suddenly overwhelming it's probably an accidental cartesian product. | May 27, 1996 |
Tracking The Elusive DWObject | How to find out about PowerBuilder 5's new DWObject type and how to use it. | July 11, 1996 |
Tracking The Elusive DWObject II | According to Powersoft, DWObject variables should be explicitly destroyed after they are referenced in scripts. | July 18, 1996 |
Transaction Management With Sybase | Take control of transaction management by setting AutoCommit = true and issuing your own Sybase BEGIN TRANSACTION commands. | May 28, 1996 |
Trust Your Keys | Tip 77.12 - Trust Your Keys | February 12, 1998 |
Tuning PowerScript - A Case Study | How eliminating Format 4 dynamic SQL made one application run ten times faster. | July 22, 1996 |
Understand ASC And DESC | Tip 77.14 - Understand ASC And DESC | February 12, 1998 |
Understand DEFAULT AUTOINCREMENT | Tip 77.28 - Understand DEFAULT AUTOINCREMENT | February 12, 1998 |
Understand Index Column Placement | Tip 77.10 - Understand Index Column Placement | February 12, 1998 |
Understand Primary Key Column Placement | Tip 77.13 - Understand Primary Key Column Placement | February 12, 1998 |
Use -x To Limit Protocols | Tip 77.37 - Use -x To Limit Protocols | February 12, 1998 |
Use A Large Page Size | Tip 77.6 - Use A Large Page Size | February 12, 1998 |
Use A Log File | Tip 77.7 - Use A Log File | February 12, 1998 |
Use EXISTS Instead Of COUNT(*) | Tip 77.18 - Use EXISTS Instead Of COUNT(*) | February 12, 1998 |
Use Indexes for Max() and Min() | Tip 77.16 - Use Indexes for Max() and Min() | February 12, 1998 |
Use LIKE 'xx%' | Tip 77.17 - Use LIKE 'xx%' | February 12, 1998 |
Use Stored Procedures And Triggers | Tip 77.32 - Use Stored Procedures And Triggers | February 12, 1998 |
Use TCP/IP | Tip 77.38 - Use TCP/IP | February 12, 1998 |
Use The Latest Version | Tip 77.2 - Use The Latest Version | February 12, 1998 |
Use The NT Performance Monitor | Tip 77.25 - Use The NT Performance Monitor | February 12, 1998 |
Use The SQL Central Performance Monitor | Tip 77.24 - Use The SQL Central Performance Monitor | February 12, 1998 |
Use UNION ALL | Tip 77.19 - Use UNION ALL | February 12, 1998 |
User Defined Event Arguments | How to define your own arguments when using Declare - User Events. | August 13, 1996 |
User-Defined SQL Functions | Using the Sybase SQL Anywhere 5 user defined function feature to create new scalar SQL functions. | May 2, 1996 |
Wait_For_Commit | Solving problems with referential integrity by deferring checks until the next commit via Sybase SQL Anywhere 5's wait_for_commit feature. | May 17, 1996 |
Watch Out For Correlated Subqueries | Tip 77.29 - Watch Out For Correlated Subqueries | February 12, 1998 |
Watch Out For Wide Indexes | Tip 77.23 - Watch Out For Wide Indexes | February 12, 1998 |
Watcom 'Rithmetic | Dealing with precision problems in SQL expressions. | June 6, 1996 |
Waving Dead Chickens | Solving row focus highlighting problems in PowerBuilder 3, 4 and 5. | July 8, 1996 |
WINHELP.EXE Parameters | How to make WINHELP.EXE jump to a specific Help topic by specifying a command line parameter. | June 21, 1996 |
Y2K Disaster: Good News, Bad News | How the Y2K "bug" affected consultants and contract programmers in early 1999. | March 12, 1999 |
[Home] |