ASE Client

A freeware SQL client for Sybase Adaptive Server Enterprise and SQL Anywhere databases

About ASE Client

I developed the first version of ASE Client 2004 at the administration course for Adaptive Server Enterprise at Sybase sweden. Since I was fluent in SQL Anywhere I finished the exercises very fast, and PowerJ was installed at the lab computers. So I just for fun started to develop a client that let you browse around objects in an ASE database. Back at work we used Sybase ASE for a CRM system, and I needed to poke around the tables and procedures to figure out how everything worked. Those times ISQL crashed often and SQL Advantage was very slow retrieving lots of data. I started to use ASE Client as companion to the Sybase tools. I also expanded it to work with SQL Anywhere databases.

Many years has passed by since. Sybase tools and others are immensely much better now. I thought I would ditch ASE Client. It no longer has any edge. It's archaic software, still developed with PowerJ in java 1.2. But I like to use it. It's extremely lightweight and still fast. So I will manitain it and even add features for the Sybase databases I currently use. Sadly I no longer have an ASE so ASE Client currently is tested with SQL Anywhere 12 and 16.

ASE Client shows you sysobjects, and if they are procedures, tables or views it displays the parameter or column info or the data if you de-select "Show cols". DDL can be displayed. You can also write and execute sql, but ASE Client is mostly meant as a companion to a normal SQL client. WHen I work I use Sybase Central, ISQL and ASE Client in parallel. You can load and save SQL queries and history. Search results can be saved as tab-separated spreadsheet compatible files.

ASE Client will discover if it's connected with an ASE or ASA and adapt itself. These databases are pretty different though they are a bit compatible. Important note: When you create an ASA database you need to create the sysobjects and systables views. This is default so if don't uncheck the checkboxes things will be fine. ASE Client won't work without them. And you HAVE to be an administrator. ASE Client is a pure java application. It should run on any platform supporting JDK 1.5 or later. Always use the latest java. Since ASE Client is using awt components (java utilizing the operating systems ui components) it might not look very slick, but it will work pretty fast.

ASE Client is freeware, but not open source since it relies on PowerJ libraries. Read license.txt, ReadMe_jconn3.jar.txt and ReadMe.txt in the zip-archive before using it. For windows users, there's a bat-file starting it. Users on other platforms will easily convert it to a script suitable for them.

Version information

2014-11-25 Version 2.94b: The message window was automatically cleared now and then. I decided this is very annoying and removed it. I added a button to manually clear the message window. Previously that function was anly in the edit menu and key combination ctrl-m. To download.

2014-11-24 The archaic client rise again with version 2.94: I have now fixed the problems with SAP-Sybase SQL Anywhere 16. It also works better with version 12.

ASEClient 2.94

However I no longer run an Adaptive Server Enterprise, so I have no clue if ASEClient works with ASE.
There are some new functions. Previously some DDL was written in the message window. Not a very clever idea to clutter that with error messages. Now there is a nice orange button that activates if DDL is available for a selected system object. Press the button and the DDL is shown in the editor associated with .sql files. ASEClient DDL button The same function is in the edit menu as well as a function to copy DDL to clipboard.

ASEClient DDL button

I recommend Notepad++ as a quick way to open the sql files. However if .sql is associated with a huge development environment, there is a new setting that makes DDL open in the .txt associated editor.

ASEClient DDL button

Behind the scenes ASEClient use the sp_helptext and sa_get_table_definition procedures. What comes out of those is what you get. No frills added. ASE Client is still coded in java 1.2 in Sybase PowerJ 3.6.1. I don't have the time to move it to a modern environment. ASEClient is only tested in windows with the latest jre available at the time of writing. To download.

2014-08-26 Trouble: I have now finally installed SAP-Sybase SQL Anywhere 16. (If you wonder where version 13, 14 and 15 of this database went, those numbers are unlucky in important markets lol.) Unfortunately, clicking on a certain sysobject type (TEXT) makes ASE Client crash. Embarrassingly the exception isn't caught anywhere so the program hangs unceremoniously. I also need to investigate how some new datatypes display in the grid. I still intend to keep ASE Client operational just for fun, so I will fix these issues. However, at the moment I am extremely busy, so I can't promise when it will be fixed. If you upgrade a version 12 database to 16 ASE Client will probably still work.

I have to say SQL Anywhere 16 is spectacularly good. Nothing revolutionary, but the worlds best, feature rich and easy to use relational database just got even better. In my opinion, 80% of the cases you need a relational database SQL Anywhere is the best and most cost effective solution.

2013-09-05 Resurrection announcement: ASE Client had it's golden age in the late middle of the last decade when it actually beat other tools in some aspects and thus was a very usable complement. Since then Sybase own tools have improved immensely. This summer I decided to end the development of ASE Client. I hadn't done anything for years and it had stopped working with java 1.7 due to some clever threading that obviously was not particularly clever in the long run. (Note to self: If Herbert Schildt writes "Don't do it" - then don't do it ;-) Having to port the whole project to a modern IDE felt tedious since ASE Client is heavily built on the PowerJ libraries. But I got PowerJ 3.6 to work pretty good under 64 bit Windows 8. It's quite troublesome moving the graphic components but otherwise it crashes much less often than under Windows XP. And I wanted to keep using ASE Client myself. For nostalgic reasons admittedly, but it's nice I can add functionality if I need on a whim. So: I have decided ASE Client will live on. I won't have much time to improve it, but features will be added occasionally.

So here is the first new version in 3 years:

Last version 2.92 upploaded 2013-09-09. To download.


Version 2.92 uploaded 2013-09-09:

New functions and some rework for ASA.
  • ASE Client used to use the ASE compatibility views for ASA. The views named dbo.sys... This facilitated using roughly the same code for ASE and ASA. For SQL Anywhere 12 (ASA 12) this seems somewhat problematic. I can't replicate the problems I encountered displaying the demo database for databases I create myself. But I have rewritten parts of it to use the SYS.SYS... views instead.
  • When a Grid is selected (not a single grid cell), tab, new row and carriage return characters is now replaced by a space for texttype fields when copying or displaying in external programs. This is mainly to keep things in the correct column for spreadsheets.
  • Text sent to the messages window is now wrapped.
  • Sysobjects can now be searched for owner too. Both name and owner fields adds a wildcard after the text. You can insert all other wildcards as you wish.
  • Parameters for selcted stored procedures are now displayed for ASA too. The entire sql for the stored procedure is now also avaliable in a the Sysobjects proc_defn column. Easier to copy than from the messages window.
  • To do: Same as previous version. Also triggers that have no name are not displayed well.

Version 2.91 uploaded 2013-09-05:

Resurrection version with some handy new functions.
  • ASE Client now works in java 1.7. This also fixed the bug disconnecting and reconnecting ASA databases.
  • A very simple word wrap with settable length is now here for the sql window. Just press the wrap button. This is useable when pasting in or opening SQL from other tools. Default length is 124, unless it's set as parameter at startup. Depending on OS a different length might be required. I am pondering what to do with the messages window that really needs wrapping.
  • The tiny little messages window always sucked. For windows users there is now a function in the file menu: "View messages in text editor (Windows only)". This is also reachable from the "View Msg Ext" button.
  • "Copy text from selected component" now includes the column labels when the component is a grid. Note that for the lower grid (displaying columns/parameters or a resultset) the grid only stores 2000 rows. Not the entire result set from the database. To get an entire large resultset, use "Save search result to xls file" in the file menu.
  • For all components the information can now be immediately viewed in either an external text editor or a spreadsheet. Click on a component and the choose one of the "View text from selected component in external... (Windows only)" functions in the Edit menu. Note that every component works. This function creates temporary files in your temp folder. Files will be deleted if the jvm exits normally. Should the jvm crash ASE Client removes the temporary files next startup. Note that this functionality depends on that .txt and .xls is associated with relevant software. I have verified it works as well with open office calc as excel.
  • The "Abort button" is gone. It used the threading that caused problems.
  • To do: Open the entire resultset in external spreadsheet without having to save it first. A better message window if I can think something up.

Version 2.86 uploaded 2010-09-13:

Long needed update.
  • New "Save As" for sql file. And the open and save works as all other software. Less confusing. Why didn't I do this before?
  • Bigger window lets you see more. Provided you have a big screen. Unfortunately ASE Client is not resizeable. Buy a bigger screen ;)
  • Sysobject rowcount is now disabled default. Enable it if you want in settings. Having it on wasn't a good idea if you work in a database with really huge tables.
  • The "Dummy button": You have ASE Client open, and wants to edit the table in another tool. Beeep. User dba locks the table for editing. Just click the Dummy button and ASE Client executes "Select 1 From Dummy" releasing the table. You asked for it. You got it. Typing is tedious :)

The really annoying bug that you have to restart ASE Client after disconnecting a Anywhere db will be fixed shortly.

What do you want to see in ASE Client? I don't have much time, but good ideas will be implemented! My email is on the contact page.

Version 2.83 uploaded 2009-01-27:

Very minor changes.
  • News in the settings menu: When I started to use the "Insert all sysobject columns" introduced in V 2.81 i quickly realized I most often want columns in colid order. So this is now the default setting. If you want columns ordered by column name as previously, just check the new "Order Columns/Parameters by name" setting. Yes it works for procedure parameters as well.
  • "Insert all sysobject columns" now also puts the columns in the system clipboard. ASE Client is intended as a helper for your other tools, and I often want the columns elswhere. Just paste them in!

Note: If you want column names with datatype (alas not exactly specified), click in the drop down list in the SQL box. Then select "Copy text from selected component" or press control-g. This will deliver all rows in the drop down choice to the clipboard. Neat, eh?

Lol.. when looking at the settings menu I realize I still haven't adapted ASE Client for Microsoft SQL server. It might happen some day.. if I get any spare time. Let's see.. maybe for SQL Server 2014 ;-)

Version 2.81 uploaded 2008-12-19:

A few minor new things.
  • New function in the edit menu: "Insert all sysobject columns". How often aren't you selecting all columns except a few ones... and have the tedious task of writing all those column names? Before in this program you could add one column at a time with the droplist, but that was tedious too. Now you can add all and delete the ones you don't want.
  • "Insert sysobject select" in the edit menu no longer erases all other text in the sql window. Gee was that annoying? Yes.

I haven't had time to run much Anywhere 11 from ASEClient yet, but there probably are adjustments that needs to be made. I'll migrate things to 11 soon, and will find out.

Send an email and tell me what functions you want in ASE Client!

Version 2.80 uploaded 2007-10-08:

Bug correction for Sybase SQL Anywhere.
  • The "Name LIKE:" search in sysobjects did not work when connected to SQL Anywhere. This is now corrected.

Version 2.79 uploaded 2007-08-31:

Now also working with Sybase SQL Anywhere (popularly called "ASA"), and upgraded to use jConnect 6.05.
  • Now Sybase SQL Server Anywhere 9 and later is also supported. ASE Client adapts itself automatically when you connect.
  • JDBC used is upgraded to jConnect 6.05. This is free but has to be downloaded from for licensing reason.
  • Bigger window shows nore info - but needs better screen resolution. You'll need something like 1200x900.
  • Slightly more pedagogic layout and coloring. Perhaps.
  • More ctrl-key shortcuts for faster working.
If you downloaded any of the versions 2.77-2.78, replace it with this bug corrected version.

Version 2.71 uploaded 2007-04-01:

Version for ASE 15.X. Lot's of improvements.
  • Previous versions did not work very well with ASE 15. The issues I noted this far are now corrected. I will try to maintain compatibility with 12.5.X, but I won't be able to test this since I'm no longer running any 12.5.
  • Go (CTRL-G) now executes only the selected sql, if anything is selected in the sql textfield.
  • Parameters are now displayed for stored procedures if the "Show columns (sysobj)" checkbox is checked.
  • sp_helptext output (the code that was used to create the object) for sysobjects is now displayed in the messages box. This makes me yet again discover that the textfields in ASE Client really needs wordwrap. It will happen sometime.
  • Sysobject rowcount can now be disabled in the settings menu. Thr rowcount might take too long time if you browse around very big tables.
  • Selecting a statement from the sql history does no longer overwwrite information in the sql textarea. Now the statement fetched from history is placed at the top row and previously existing text is pushed downwards.

Version 2.67 uploaded 2006-11-08:

Attempt for older ASE compatibility.
  • The queries that investigates the systables are changed to a syntax I hope is more compatible with older ASE versions.

Version 2.65 uploaded 2006-10-30:

Enter the abort button.
  • The query open is now threaded, which made the "abort query" button possible. The error messages are improved. The WR button is for a future function and currently disabled.

Version 2.55 uploaded 2006-04-18:

Goodbye memory leak.
  • For some obnoxious reason throwing away the powerj query objects without closing them consumed memory that wasn't recovered with garbage collection. We certainly don't want to wait for a closing query object... that's why I just threw it away. Enter the first thread in ASE Client. Now used queryobjects are nicely closed in the background.

Version 2.54 uploaded 2006-04-18:

No duplicates in history.
  • When the same sql is executetd several times, only one copy is stored in history (it's moved first in the history). Now... why on earth haven't I thought of this before... ;)

New version 2.53 uploaded 2006-03-23:

Bug in history corrected.
  • Now what is supposed to end up in the sql history drop list is added there.

New version 2.52 uploaded 2005-12-08:

New functions, moved functions and bug corrections.
  • Choice component for columns: A choice under the SQL text area shows the columns and datatypes for the selected sysobject (if it has columns). If you select a choice item the column name will be pasted in to the current position in the SQL text area with blanks before and after. This simplifies writing sql if you don't remember the column names.
  • Name button: This inserts the name of the last selected system object in the SQL text area, with blanks before and after.
  • Menue item Edit->Insert current date ('YYYY-MM-DD'): Inserts current system date in the SQL text area with blanks before and after. Sorry... Date format cannot yet be changed. If I find time I'll ask the system and adapt automatically, or at least make the format changeable. But for now it's a fixed format.
  • The Refresh result button: Has moved and become the tiny "Ref" button above navigation buttons to the right for SQL result grid.
  • Clear messages button: This not so important button has disappeared. The function is now available as a menue item "Clear messages" in the edit menue.
  • Clear history button: This has moved to a tine "Clear" button to the left of the History choice.
I really need to write some help documentation now

New version 2.51 uploaded 2005-12-06:

New cool functionality.
  • Name LIKE textfield: This provides search capability in the sysobjects grid. Wildcard % is added so if you write "ct" you get a condition name LIKE 'ct%' governing what's displayed. This makes life easier if there's lots of sysobjects and you have an idea of the name of the object you are looking for. You can add more wildcards as you like. Return or focus lost gives a new sysobjects search.
  • More resultsets button: Stored procedures often generate several resultsets. ASE Client isn't really the tool of choice for stored procedures, but now you can display the next result set by clicking the yellow More resultsets button. Issues: No, there's no way to go back other than executing the procedure again. And the button is currently enabled even if there isn't another result set available. It's disabled only when it has failed fetching the next result set. These issues might be improved in the future. I just haven't got time at the moment.

New version 2.50 uploaded 2005-11-15:

Bug corrections.
  • Important bug corrections cure the crash on program exit. Do upgrade. The new settings menu contains a non finished way to use ASE Client with a MS SQL Server 200X database. The items are disabled for now. I'm not sure if this will be finished, there seems to be a difference in the sysobjects "type" column that has to be handled.

New version 2.47 uploaded 2005-11-03:

New export function.
  • New function "Export sysobjects to xls" stores the searchresult displayed in the sysobjects grid to a tab separated file.

New version 2.46 uploaded 2005-11-02:

The bug corrections from version 2.45c and a new copy function.
  • The new function "Copy text from selected component (Ctrl-P)" in the edit menu is pretty cool. It copies text to system clipboard from any selected component that can display text dynamically. The main thing you want to copy is probably the information in the grids (sysobjects and result). If a cell is selected, all text in that cell is copied. If no cell is selected (click on the rownumbers to deselect) all info from the grid is sent to clipboard tab-separated. This means you can paste it directly in to cells in Excel and most other spreadsheets. Only rows stored in the grid is included. The sysobjects grid stores all rows. However the SQL result grid stores only 2000 rows, more rows are displayed dynamically. Use the "Save searchresult to xls" if you want all rows in the searchresult. For a choice all items are copied. To copy the list of databases, click on the databases choice and then use this function. The message label and all textfields can of cause also be copied. This function copies all text in a component. If you want to copy only selected characters in a text field, use the OS standard copy function. For windows it's Ctrl-C.

New version 2.45 uploaded 2005-10-25:

Some additions
  • Since this is a java client it previously needed singlequotes (') when writing strings in the SQL text area. Now you can use doublequotes ("). These will be replaced by singlequotes when the SQL is run.
  • More readable memory notation in the title bar.
  • Shortcuts for connect and disconnect.

I also wanted to add a shutdown hook to disconnect nicely from the database if the java engine unexpectedly shuts down. But PowerJ 3.6 doesn't want to compile using the JDK 1.5. Well, someday I may fix that. Or set up the project to be recompiled outside PowerJ.

New version 2.44 uploaded 2005-10-24:

Vastly improved version
  • If you press enter in text fields something useful happens. Enter in UserID jumps to password. Enter in password starts connect. Enter in the SQL text area does only a linebreak.
  • Sybase old trusty query object took a lot of time closing big resultsets. Now this program just throws away the query object for sql results and creates a new one. Not an elegant solution, but the program runs much faster. I trust the garbage collection ;)
  • Row limit for result does no longer use the query objects row limit. It just does set rowcount behind the scenes. This works much better. Enter here jumps to the sql text area. However, note that set rowcount is performed on each database when you select it with the "Databases" choice. If you write a select statement in the SQL area specifying databasename..tablename where databasename is a database you haven't selected yet with the "Databases" choice, no row limit will be set in this database.
  • New function "Open saved xls file" in the Archive menu. This is a windows-ish function that won't work in operating systems other than Win NT, 2000, XP, 2003 and probably all future versions. The last result set saved with the "Save searchresult to xls file" is opened with the program associated with ".xls" in the operating system. If you want this to work with your OS.. send me mail!
  • Now the program correctly handles cases where no sysobjects are displayed. For example the sybsecurity database generally does not have user objects. The sql result grid is now cleared if this happens.
  • The bat-file now has parameters for memory reservation. You only need to use this if you want to handle big resultsets. You should edit these to what's suitable for your system. Without this you might get the annoying out of memory exception. I don't know why the sun JRE doesn't grow enough automatically on a computer with huge RAM - which a modern computer generally is equipped with. Consult the help for your JRE. Sun unfortunately says they might change the syntax without notice.
  • ASE Client now displays memory in the title bar, and a new function in the file menu allows the user to suggest garbage collection.
  • At last, keyboard shortcuts for most functions. Look in the menues.

New version 2.41 uploaded 2004-11-30: Now the "row limit" parameter works! Another change is that filenames are remembered when you save sql and history files. Scroll down to download the new version!

Current issues

Beware of displaying columns containing blobs like the data type "image" ASE Client will gladly try to load blobs in the result grid, and since blobs generally contain a lot of data this may require considerable time.

Stored procedures now works, but the output is often in several resultsets. You have to click the yellow button "More resultsets" to step through each result set. Alas, there's no way to step back yet. Other tools like Jsql or SQL Advantage are better suited for stored procedures.
I am considering making updates of the result set possible when you alter directly in the sql result cells - if I find time someday.

Download ASE Client

Get button  Download latest version of ASE Client (around 1 MB .zip archive)

More information and other tools

Sybase, Adaptive Server Enterprise, SQL Anywhere and some other products mentioned above are registered trademarks for Sybase a SAP company

Make sure you surf this site from the index page!