Nip DATA Logo  


Advanced SQL Editor

a cross-platform data-aware SQL editor

The SQL Editor is a multi-platform, multi-database, 'connected' editor. It allows a developer to edit and submit threaded SQL statements to the rdbms.


powerful editing features
    print, cut, copy, paste, undo, redo, indent, unindent
    search, search & replace, go to line
    code completion
    syntax highlighting
    optional line numbering
    Windows XP
    UNIX and variants such as; Mac OSX, Linux
    MS SQL
    Gupta SQLBase
    any ODBC enabled client
    connect/disconnect from any ODBC source
    quick-click catalog information
        table columns
        table indexes
        table primary key
        table foreign keys
        table row id columns
        procedure I/O columns
        supported data types
    submit all SQL or just selected
    threaded queries (non blocking interface )
    sql bindings (allow large objects to be inserted easly )
integrated ODBC configuration
full UNICODE enabled
integrated message log

: Features may vary between operating systems.


ODBC Sub-System
The SQL Editor requires a functional ODBC sub-system. All MS Windows platforms have an ODBC sub-system by default. However; UNIX operating systems do not, typically, have an ODBC sub-system by default (although this is starting to change). Fortunately; UNIX users can install the free, Open Source, ODBC sub-system from the unixODBC Project or iODBC Project . Mac OSX Users must be using v10.5 (Leopard) or better.

ODBC Drivers

You must have an appropriate ODBC driver for the data source with which you wish to work. Refer to the data source documentation for information on obtaining, installing and configuring your ODBC driver.


SQL Editor is an advanced and powerful application. The user interface contains three views; 1) the editor, 2) the results, and 3) the messages. See figure 1.

figure 1

   The three main sections are augmented by; a menu, a set of toolbars, and a status bar. The toolbar locations and the geometry of the main window is saved when the application is closed and restored the next time the application is invoked. The status bar shows useful information about the current state of the; connection (if any), result set, and editing. The statusbar fields for edit Line and edit INS/OVR can be clicked to gain access to the goto line action and the OVR/INS toggle action.
   Each query submited to the rdbms is executed in its own thread. This makes the editor non blocking when time consuming queries are executed. Long running queries can be canceled at any time. This depends on the odbc driver implementation.
    Statements are executed in a transactional manner. The data in not automaticaly commited, untill the commit/rollback button is not executed. This adds the posiblity to just commit (save ) the data to the rdbms after extra checking has been performed.

figure 2


Typical Interaction

A viable ODBC Data Source Name (DSN) does not have to exist before invoking the SQL Editor and editing your SQL but one must be created before connecting to the data source and executing your SQL. A DSN should be created according to the documentation which comes with your ODBC sub-system. Using the integrated ODBC configuration tool it can be created a DSN.

SQL is created or loaded from a file. The SQL can be edited and, if a connection exists, it can be executed. The quick-click toolbar can be used to show data source catalog information to aid in the creation of the SQL.

Messages in the message section of the user interface can be used to determine the root of any problems with the user requests. For example; any syntax errors will show up in the messages.

The SQL editor provides a history for all executed statetemets. Results, from executing the SQL, can be found in the results section of the user interface. The results be exported to a files in different formats. Large binary or text objects can be manipulated from the result set using the buttons "TEXT" or "BINARY"


Binding variables

Large objects can be inserted very easily using the binding variables. The variable you want to bind must contain a name having word ":" Exemples: :name. :type