Contact Info
 e: jurban@urbanresearch.com
 v: 612.250.4257
 f: 612.378.7017

 Basic Information
 Profile/Summary
 Employers/Clients
 Education
 Apps/Languages/Etc

 Projects
 urSQL Utility
 Client/Server System
 Perl Scripts
 MySQL Projects
 HTML/Web Projects
 Setup/Install Projects
 vssfind

Please note that the information contained on this website is intended as supplementary information regarding my experience. This is not intended to be a comprehensive list.
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.


$Document: http://www.jurban.com/resume/ursql.php
$Version: 1.12
$Released: 07-Jan-2003
$Revsion: 2-foxtrot