Sybase Business Intelligence Solutions - Database Management, Data Warehousing Software, Mobile Enterprise Applications and Messaging
  Worldwide [change] Contact Us  |  MySybase  |   |  Shopping Cart - Buy Sybase Application Servers & Wireless Applications  
CATEGORIES
ARCHIVES
Sybase Blog Center
Sybase Blog Center

Calling all Sybase DBA's

We would like to extend an invite to join our new free community... The Sybase DBA Development Program...

(More...)


JD Mullin
R&D Manager for Advantage Database Server
http://jdmullin.blogspot.com/

J.D. Was Here

J.D. Was Here

A blog about Advantage Database Server and Software Engineering.

The Need for Feeds

I'm an RSS addict. I love reading technical blogs, and I seriously think my thought processes and career would be on a different track if it were not for the great content I have been exposed to over the last few years of blog reading. Not only has it helped me solve technical issues, but it almost always provokes thoughts and ideas on how I can improve our product, our teamwork, and our development processes.

With that said, something scary has been happening lately; Google Reader has had very few new posts for me to read. A lot of this has to do with my addiction at home to firin...

(More..)

Posted by JD Mullin on Sun, 02 Nov 2008 22:19:57 -0600
External Blog: jdmullin.blogspot.com//

Visual Studio /nosplash Option

Sara's latest Visual Studio 2005 tip about the /nosplash option is really cool. I didn't expect it to improve startup performance as much as it did. I was amazed at how much faster Visual Studio fires up now.

...

(More..)

Posted by JD Mullin on Wed, 29 Oct 2008 09:43:49 -0500
External Blog: jdmullin.blogspot.com//

SWFox: Retrofitting Client Server Access

I'm not much of a "live" blogger, but I thought I would post my raw notes from the first session I attended today; Retrofitting Client/Server access, by Toni Feltman. It was a good class, and one I attended in order to learn the obstacles Visual FoxPro developers face when moving to client/server, and how Advantage can better address these concerns. It was nice to see a handful of pain points mentioned when migrating to other servers that do not exist when using Advantage.

These are my raw notes and observations:

RETROFITING CLIENT SERVER
Toni M. Feltman - F1 T...

(More..)

Posted by JD Mullin on Fri, 17 Oct 2008 15:49:18 -0500
External Blog: jdmullin.blogspot.com//

Southwest Fox 2008

I will be attending Southwest Fox 2008 this week with a few colleagues. If you will also be in Mesa be sure to stop by our booth in the exhibit area and say hi. In addition to product demos and answering Advantage questions, we will also be raffling off a Magellan GPS towards the end of the conference.

There will be two Advantage-specific sessions at Southwest Fox this year. There will be a vendor session presented by one of our Systems Consultants, Chris Franz

(More..)

Posted by JD Mullin on Mon, 13 Oct 2008 15:27:55 -0500
External Blog: jdmullin.blogspot.com//

Solid State Drives

This is a guest post by Mark Wilkins, a Senior Software Engineer on the Advantage R&D team.

Solid State Drives
Solid solid state drives (SSDs) present a new storage option that is becoming increasingly economically viable. Our colleagues from the SQL Anywhere team had mentioned that they had done some testing with solid state drives. Our own team was having an informal brainstorming session one day, and we were speculating about how these drives will affect the performance and characteristics of Advantage Database Server. Be...

(More..)

Posted by JD Mullin on Fri, 10 Oct 2008 14:44:55 -0500
External Blog: jdmullin.blogspot.com//

Online Poll about Advantage Licensing

Please take a moment to visit my base page at http://jdmullin.blogspot.com and answer the survey question in the top right portion of the page.

The question:
If the Advantage server valcode changed to be a license file (as opposed to a 5 digit valcode), but provided more self-service options and license management via the web, would you consider this a positve or negative change?

This file would be a few hundred bytes. It would be slightly harder to ma...

(More..)

Posted by JD Mullin on Tue, 07 Oct 2008 15:22:13 -0500
External Blog: jdmullin.blogspot.com//

Using the DEFAULT keyword in INSERT Statements

Did you know you can use the keyword DEFAULT when inserting rows via SQL? This can be handy if your table has a read-only field, an autoinc for example, and you don't want to specify a field list when inserting a row. You can use this:

CREATE TABLE tester ( id autoinc, name char(20) );
INSERT INTO tester VALUES ( DEFAULT, 'whomever' );


instead of having to specify a field list like this:

CREATE TABLE tester ( id autoinc, name char(20) );
INSERT INTO tester ( name ) VALUES ( 'whomever' );

(More..)

Posted by JD Mullin on Fri, 03 Oct 2008 15:35:41 -0500
External Blog: jdmullin.blogspot.com//

Delphi 2009 Component Palette Categories

In Delphi 2009 the new default behavior for the tool palette is to start with all categories collapsed.



I don't like that behav...

(More..)

Posted by JD Mullin on Tue, 30 Sep 2008 15:30:07 -0500
External Blog: jdmullin.blogspot.com//

Tips When Porting a Delphi Application to Delphi 2009

Over the past few months I have been keeping notes as I port some components and applications to Delphi 2009, specifically for the purpose of gaining unicode support. While my project is nowhere near complete, I wanted to post some tips.

If you are considering porting to Delphi 2009 the CodeGear Developer Network has lots of great documentation describing the new unicode VCL and some unicode basics. This post is simply meant to supliment that information with issues I have encountered and is sprinkled with a few Advantage...

(More..)

Posted by JD Mullin on Wed, 17 Sep 2008 09:51:45 -0500
External Blog: jdmullin.blogspot.com//

Delphi 2009 Conditional Defines

I wasn't going to blog about this, but for the past few months every time I have used Delphi 2009 I have been tricked by this and it's very frustrating.

When you open the project options and head to the familiar "Directories and Conditionals" section be careful. Note it is now under the "Resource Compiler" tree item and does not have anything to do with the old directories and conditionals setting:

(More..)

Posted by JD Mullin on Fri, 12 Sep 2008 16:10:35 -0500
External Blog: jdmullin.blogspot.com//

Provide Feedback and Vote on Future Features

We have launched a new feedback web page at http://feedback.AdvantageDatabase.com

The site allows you to submit feedback, vote on existing feedback, track the progress of your suggestions and generally provides a single interface for providing feedback to the Advantage team.

We have seeded the site with some of our choices for future features. Check out the site and vote on these features or submit your own new feature requests. If you have submitted feedback in the past but don't see it on t...

(More..)

Posted by JD Mullin on Thu, 04 Sep 2008 15:09:40 -0500
External Blog: jdmullin.blogspot.com//

Updating Static Cursors - Part 2

As I promised in my original post about updating static cursors, here is a screencast demonstrating the technique(9 minute screencast).

I also made a few minor changes to the view and trigger code in the original post, as I noticed I updated the wrong table inside the trigger in the original post. :)

I'll apologize to those with smaller screens in advance fo...

(More..)

Posted by JD Mullin on Wed, 03 Sep 2008 10:19:45 -0500
External Blog: jdmullin.blogspot.com//

Do you have a favorite Help authoring software?

I'm in the process of evaluating help authoring software and was curious if any readers have a favorite I have not yet considered.

My core requirements are as follows:

  • Imports either WinHelp or HTML Help 1.x file format
  • Files are stored uncompressed as either XML or HTML
  • Compiles to HTML Help 1.x, Help 2 (Visual Studio), and WebHelp
  • Supports automated builds (command line compilations)
So far I have evaluated:
  • EC Software's Help and Manual
  • Innovasys HelpStudio
  • MadCap Software'...

    (More..)

    Posted by JD Mullin on Thu, 04 Sep 2008 11:34:35 -0500
    External Blog: jdmullin.blogspot.com//

Delphi Insert vs Append Performance

For well over 10 years I have thought that the only difference between the Delphi TDataSet.Insert method and TDataSet.Append was where the record appeared in data aware controls before it was actually posted.

For most cases that is true. In fact if you look at the Delphi documentation you will find the method descriptions are almost identical and they both include the following:

"After the new record is applied back to the database server, its physical location is database-specific. For indexed tables, the index is updated with the new record information." ...

(More..)

Posted by JD Mullin on Wed, 20 Aug 2008 18:06:00 -0500
External Blog: jdmullin.blogspot.com//

Updating Static Cursors

Ever been happy because you normalized some tables, wrote a query that was way faster than it was before, only to find out later you now have to re-architect a portion of your application? Yep, your fancy join is way faster, but that simple grid interface that used to be a live cursor is now static, and users can't just update it directly anymore.

In version 7.1 (2004) support for triggers on views was added to Advantage. I'd like to take a quick look ...

(More..)

Posted by JD Mullin on Wed, 17 Sep 2008 11:01:32 -0500
External Blog: jdmullin.blogspot.com//

API Documentation Searches with Firefox

I stumbled on something today that might be of use if you use Firefox and were not already aware of it.

I accidentally typed a Windows API name into the firefox destination edit box, instead of into my google toolbar edit box.

Normally I would expect the browser to either try to load "http://www.CreateFile.com" or to perform a web search for "CreateFile". I was surprised when I was immediately greeted with the MSDN documentation for the CreateFile API. No intermediate search and an extra click on the search results, which is my usual routine.

...

(More..)

Posted by JD Mullin on Tue, 05 Aug 2008 08:54:11 -0500
External Blog: jdmullin.blogspot.com//

ARC: Did You Know #4

Did you know you can execute a portion of an SQL script buffer in the ARC SQL Utility?

Many new users are not aware that you can can highlight a specific section of a script and just execute that selection.

(More..)

Posted by JD Mullin on Wed, 16 Jul 2008 09:00:33 -0500
External Blog: jdmullin.blogspot.com//

Advantage Training

Warning:Marketing content below! I strive to provide mostly technical content in this blog, but this post is purely trying to let you know about a training opportunity. It's technical training, so I hope you will let this slide... :)

I can tell from my web and RSS stats that I have picked up quite a few Visual FoxPro readers. The Getting Started with Visual Foxpro and Advantage post remains one of my most popular. If you are interested in learning more...

(More..)

Posted by JD Mullin on Mon, 28 Jul 2008 13:35:42 -0500
External Blog: jdmullin.blogspot.com//

Decoding winmail.dat files

I don't have a Microsoft e-mail client, and every once in a while I get an e-mail with a single winmail.dat attachment.

I use a simple utility I thought some readers might find useful called WMDecode to extract the attachments. It's simple and has worked on every winmail.dat file I have used it on.

There is a free version with a timeout, or you can buy a perpetual license for 10 dollars.

...

(More..)

Posted by JD Mullin on Thu, 03 Jul 2008 09:56:14 -0500
External Blog: jdmullin.blogspot.com//

Nitpicks Matter

I mentioned in a previous post that nitpicks matter. This is the main premise of Joel Spolsky's book User Interface Design for Programmers, which while simplistic in the realm of UI design, is very fun and easy to read and significantly influenced my redesign of the Adva...

(More..)

Posted by JD Mullin on Wed, 02 Jul 2008 14:46:30 -0500
External Blog: jdmullin.blogspot.com//

ARC: Did You Know #3

Did you know you can "bootstrap" a debug session in ARC? You don't have to have any breakpoints set to start debugging. Simply clicking "step over" (F10) or "step in" (F11) will start a debug session and stop on the first line in the script.

This is a handy way to get ARC to quickly jump to the source code of a procedure or trigger you want to edit. For example, in this video I use this functionality to quickly jump into a procedure, edit it, and then verify my changes.

(More..)

Posted by JD Mullin on Tue, 01 Jul 2008 17:57:46 -0500
External Blog: jdmullin.blogspot.com//

Automatic Application Updates

By now all of you 9.0 users should have received your first automatic update of ARC - Advantage Data Architect v9.0.0.1. I thought I would take a few posts and discuss how we implemented our automatic updates.


(More..)

Posted by JD Mullin on Tue, 01 Jul 2008 14:01:46 -0500
External Blog: jdmullin.blogspot.com//

The How-To Geek

I need to post a link to the How-To Geek blog.

If you don't already subscribe I highly recommend this feed. I've learned about lots of cool utilities and shortcuts that increase my productivity every day.

The most recent post that caught my attention was this post about Jing. From the Jing website: "The concept of Jing ...

(More..)

Posted by JD Mullin on Wed, 28 May 2008 22:16:09 -0500
External Blog: jdmullin.blogspot.com//

Chris's Blog

For those of you who do not monitor the Advantage newsgroups, Chris (one of our Sales Engineers/System Consultants) announced a few weeks back he started blogging about Advantage.

I made a note at that time to post a link to his blog, but just now got around to cleaning up my inbox at home and remembering the post. Looks like he's been busy writing since then, so be sure to check it out at http://advantageevangelist.blogspot.com/

(More..)

Posted by JD Mullin on Wed, 28 May 2008 22:04:58 -0500
External Blog: jdmullin.blogspot.com//

Use Visual FoxPro and Visual Studio - and Share Your Existing DBFs

I put together a short screencast (10 minutes) showing how Advantage can share Visual FoxPro DBF tables with Visual Studio. This provides a variety of alternatives when migrating existing applications to client/server.

In the screencast I demo a Visual FoxPro application using Advantage sharing data with a Visual Studio application using Advantage (not earth shattering news, I know). I then move on to show something I do think is worth some consideration; A Visual FoxPro appl...

(More..)

Posted by JD Mullin on Thu, 15 May 2008 01:10:08 -0500
External Blog: jdmullin.blogspot.com//


Chris Franz
Systems Consultant
http://advantageevangelist.blogspot.com/

Views from an Advantage Evangelist

Views from an Advantage Evangelist

My perspective on Advantage Database Server and other programming topics.

Tip #12 –SQL Syntax Highlighting Options

The  SQL Utility automatically highlights your SQL syntax just like many other code editors. You can customize the various highlighting options to suit your own preferences. You reach the SQL Utility options by choosing SQL->Options… (the SQL menu is visible when the SQL Utility window is open).

ARC SQL Properties (More..)

Posted by Chris Franz on Tue, 18 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #11 – Displaying Line Numbers in SQL Utility

There are many options for customizing the SQL Utility in ARC which can be viewed by selecting SQL->Options (the SQL menu is visible when the SQL Utility is open). In order to display line numbers you must make two changes. First select the Line numbers in gutter option under General Options. Then select Visible gutter to display the gutter in the text editor area.

(More..)

Posted by Chris Franz on Mon, 17 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #10 – Printing Table Schema

ARC Print Menu ARC 8.0 introduced two new table schema printing templates. These templates print either a simple or detailed view of the table schema. Table schema printing options are found on the Schema menu shown on the left.

The default ...

(More..)

Posted by Chris Franz on Fri, 14 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #9 – Saving Table Schema Information

Back in 2007 I wrote a tech-tip about Schema Templates, which was a new feature added to ARC 8. This allows developers to save the schema of a table into a file which can be loaded into the table designer when creating a new table. The schema template contains all of the information about the table including the field descriptions, constraints, default values, validation expressions and indexes. This can be very useful if you are creating sev...

(More..)

Posted by Chris Franz on Thu, 13 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #8 – ARC User Interface Options

Both ARC version 8 and 9 have several options for modifying the user interface. You can change some of the elements of the user interface by selecting Tools->ARC Settings, then click on the User Interface tab.

ARC_UISettings

(More..)

Posted by Chris Franz on Wed, 12 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #7 – ARC Connection Default Values

You can configure the default values for creating new connections in Advantage Data Architect (ARC). This makes creating connections a bit easier since you will always get the connection configuration you want. For instance, I almost always use Remote server (Local is the default) and blank passwords for my example databases. By changing the defaults I always get these settings when creating a connection to a data dictionary.

Note: You must restart ARC for the new connection settings to take effect.

You can also specify ot...

(More..)

Posted by Chris Franz on Tue, 11 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #6 – Updating Advantage Data Architect

ARC 9.0 Help MenuAdvantage Data Architect (ARC) has a automatic update feature included in version 9.0. ARC will automatically check for updates each time it is shut down. You can manually check for updates by selecting “Check for Updates. . .” from the H...

(More..)

Posted by Chris Franz on Mon, 10 Nov 2008 14:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

An Advantage Video

Sybase has been posting several promotional videos to YouTube over the past year. This week they posted a video about Advantage done by the European Advantage Team. I thought you might like to take a look.

(More..)

Posted by Chris Franz on Sat, 08 Nov 2008 14:13:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #5 – Bypassing the Advantage Discovery Process

When an Advantage client connects to the server it goes through a series of steps to discover the Advantage server. These steps are generally executed very quickly and the server is found and a connection is made. However, if you get the dreaded 6420 or (More..)

Posted by Chris Franz on Fri, 07 Nov 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #4 – Advantage Command Line Switches

Advantage configuration parameters can be set using the Advantage Configuration Utility, by modifying the registry (Windows) or configuration file (Linux and Netware) or using command line switches. These switches can be very useful if you need to start Advantage with a particular configuration for testing. The settings you specify will not be persisted, therefore, starting the service without the switches will revert to the configured settings.

Since Advantage for Windows runs as a service you must run Advantage as an executable to use these switches. This is done by specifying th...

(More..)

Posted by Chris Franz on Thu, 06 Nov 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #3 – Testing with Different Server Versions

There are times when you need to test with several versions of Advantage prior to a release or when re-creating a customer issue. Advantage works just fine in a virtual environment which is a great way to simulate different environments with less effort.

However, there are times when you may simply want to compare functionality or performance without having to go to a virtual environment. Or you want to use the same hardware to te...

(More..)

Posted by Chris Franz on Wed, 05 Nov 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #2 – Miscellaneous Server Settings

The Advantage Configuration Utility provides an easy interface for configuring your Advantage Server. One of the rarely used tabs is Misc. Settings. There are four options on this tab which can provide some useful functionality.

Advantage Configuration Utility (More..)

Posted by Chris Franz on Tue, 04 Nov 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Tip #1 – Get the Serial Number and Valcode for Your Advantage Server

Advantage Database Server ships with a utility called adsver.exe which is installed in the server directory (C:\Program Files\Advantage 9.0\Server by default for version 9.0). This command line utility retrieves the Serial Number, Validation Code and Replication code from the server.

To use the utility open a command prompt and switch to the directory where the Advantage server is installed. Type in the following command: adsver ads.exe. This will read the license information from the server executable and return the data. Your output will look something like the screenshot below.<...

(More..)

Posted by Chris Franz on Mon, 03 Nov 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

A Month of Tips

So I set an auspicious goal for November, I am going to publish an Advantage related tip every weekday. This should add up to 20 tips. These tips will fit into one of three categories for this first run. They are:

FAQs – October 2008

Clipper IP Libraries

Advantage provides support for IP communication from Clipper with a helper application called ADSDOSIP. This provides a bridge between the Clipper application and Advantage so there is a performance degradation when using it. However, it can be used to extend the life of your clipper applications in a TCP/IP only environment.

ADSDOSIP and its associated libraries; axipbcom.lib, axipcomm.lib and axipxcom.lib are included in the (More..)

Posted by Chris Franz on Fri, 31 Oct 2008 13:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

Adding a Custom Search Engine to Google Chrome

Edgar Sherman, one of our senior technical support representatives, who manages the Advantage DevZone told me about how he added the DevZone search to Google Chrome. Chrome allows for custom searches to be added to its “one box for everything” functionality. Whenever you start typing in the address bar Chrome provides “helpful” information including search options.

(More..)

Posted by Chris Franz on Wed, 29 Oct 2008 23:00:00 +0000
External Blog: advantageevangelist.blogspot.com/

And Now This Special Report . . .

Instead of writing a technical article I thought I would cheat a bit on my posting and put up some links that I have found interesting. I admit that I probably read way too many blogs, however, most are technology related so they apply to my work. That’s my story and I’m sticking to it.

I really like Jeff Atwood’s Coding Horror. He provides a great mix of good content coupled with a self deprecating and humorous tone. His post today is one of the reasons I enjoy his blog so much, check out (More..)

Posted by Chris Franz on Fri, 24 Oct 2008 22:44:00 +0000
External Blog: advantageevangelist.blogspot.com/

Referential Integrity and Domain Tables

In my last posting about constraints I discussed field and table level properties. Another way to implement constraints is the use of Referential Integrity. Referential integrity (RI) enforces primary key and foreign key relationships within the database. These RI rules are mo...

(More..)

Posted by Chris Franz on Wed, 22 Oct 2008 22:16:00 +0000
External Blog: advantageevangelist.blogspot.com/

Field and Table Constraints

When tables are added to a data dictionary a host of additional features are available (see the comparison below). Part of these additional properties are constraints which include Minimum, Maximum and Null Valid on fields. You can also specify a table level constraint using an expression.

Free Table Properties (More..)

Posted by Chris Franz on Mon, 20 Oct 2008 23:34:00 +0000
External Blog: advantageevangelist.blogspot.com/

Wrapping up Southwest Fox

SWFox_Booth We spent the last four days at Southwest Fox in ...

(More..)

Posted by Chris Franz on Sun, 19 Oct 2008 18:09:00 +0000
External Blog: advantageevangelist.blogspot.com/

A New FoxPro ScreenCast

Screencast - Converting a FoxPro DBC While attending the Southwest Fox Conference I was able to finish up a screencast on converting a DBC. It ha...

(More..)

Posted by Chris Franz on Fri, 17 Oct 2008 19:11:00 +0000
External Blog: advantageevangelist.blogspot.com/

FoxPro Grab Bag

This week is my FoxPro week. I will be at Southwest Fox in Mesa Arizona this week. We will be talking to FoxPro developers about how Advantage can help them. I am really excited about the show since I enjoyed it last year. The FoxPro community is very strong and full of great people.

Speaking of the FoxPro community Doug Henning will be doing a session on Advantage during the Southwest Fox conference. He posted a short (3.5 min) video about using Advantage full text search from Visual FoxPro. You can get the video (More..)

Posted by Chris Franz on Mon, 13 Oct 2008 18:50:00 +0000
External Blog: advantageevangelist.blogspot.com/

Speaking at VSLive!

VSLive_Vegas I will be speaking at VSLive! in Las Vegas on Tuesday October 14th. I will be doing two presentations on the Entity Framework Model. The description...

(More..)

Posted by Chris Franz on Fri, 10 Oct 2008 15:21:00 +0000
External Blog: advantageevangelist.blogspot.com/

Using the SQL Execution Plan

If you have identified some SQL statements which are slow or unoptimized you can use the SQL Execution Plan tool in Advantage Data Architect (ARC) to obtain more information about it. Identifying these queries can sometimes be problematic but you can use SQL Logging to help identify many of them. You can also count on your QA department, ...

(More..)

Posted by Chris Franz on Wed, 08 Oct 2008 23:14:00 +0000
External Blog: advantageevangelist.blogspot.com/

Using Query Logging

Advantage 8 included a feature for logging all queries run on the server. This can be a very useful tool for seeing what queries are being run and identifying unoptimized or slow queries. Query logging is enabled using a system procedure called sp_EnableQueryLogging which has five parameters.

The first is the name of the table to log to, second a flag to truncate existing data, third flag for logging only u...

(More..)

Posted by Chris Franz on Mon, 06 Oct 2008 23:30:00 +0000
External Blog: advantageevangelist.blogspot.com/


The individuals who post here work at Sybase. The opinions expressed here are their own and do not necessarily reflect the views of the company.