|
|
urSQL Utility
The urSQL Utility is a
developer-oriented SQL tool designed to provide easy access to SQL data. This program
was originally designed as a replacement for Microsoft's sql_w program used for accessing
MSSQL 6.5 databases. The urSQL Utility
was extended to provide access to other popular databases as well -- primarily including
MySQL and Paradox.
My Contribution(s)
I designed and developed this utility.
- Idea
- Initial Design
- Prototyping
- Design Documentation
- Coding
- User Documenation
- Website design
Accomplishments, Challenges, & Notes
This application provided many obstacles and challenges throughout the
product lifecycle.
Data Access
In order to be a useful tool, the urSQL Utility was designed to support
connection to different databases. This requires that a different set of
routines is run depending on the database being accessed. The user selects
an alias or server name, enters a username and password, and connects to the
database. The application must figure out what type of database it is
connecting to, and initialize the proper routines in order to get a list of
available databases, tables, and columns.
An early version of the urSQL Utility was first available in mid-1998 and it
allowed access to MSSQL 6.5 and Paradox databases. Since the utility was mostly
used to retrieve data from MSSQL databases, it became necessary to provide
MSSQL 7.x support. This required a re-working of the underlying data-access
architecture. Fortunately, the original design was flexible enough to make
this change to MSSQL 7.x relatively painless (converted TDatabase and TQueries
to use ADO architecture instead of BDE).
Microsoft SQL DMO/OLE
In order to achieve a very specific desired result, I decided to interface
with the Microsoft SQL Server Distributed Management Objects. This slows
the performace slightly, but provides a way to directly communicate with and
access the MSSQL Server -- for example, one functionality that uses the
DMO architecture is the Build Script function which allows
a user to build the CREATE TABLE script for any table in the current database.
Installation/Setup
The application was primarily used internally by myself and a few of my
colleagues. As word spread about the usefulnes of this utility, it became
necessary to develop an installation and configuration program. Due to the
nature of the program and the myriad of DLLs, OCXs, and supporting files
required, this proved somewhat tricky. Different versions of Windows have
different applications and thus different versions of required DLLs exist.
Existing files must be checked for version info before installation copies
the file.
Feedback
In the spring of 1999, I began adding support for a database system called
MySQL. I was involved in designing and
developing a data-driven dynamic website that used a MySQL back-end. After
adding MySQL support to the urSQL Utility, demand for the utility began to
sky-rocket. My website began getting hundreds of hits per month for this
little-known, completely unadvertised, SQL utility. As the user-base grew,
previously unknown issues began to arise. Since the users of this utility
were scattered around the globe, I developed an internal feedback
system that allows users to automatically send critical program data
when asking a question or reporting a problem. This proved to be both a
phenomenal excercise and a great troubleshooting tool.
Help System
Instead of a Windows-based help system, I chose to develop a custom HTML-based
help system using an Active-X HTML control. I customized this control to allow
me to write psuedo HTML code to control my program. Again, this was a great
learning experience, as well as a very cool feature. A user can click a
hypertext HTML link within the help system and access program functionality.
|
|