Okay, SQL vs Jet -- another favorite topic.
First, understand that Microsoft likes to name their products using generic terms. For example, calling a database "Access" and their OS "Windows" leads to sentences such as:
"Microsoft SQL Server" is an example of this. SQL Server is an database product from Microsoft. It is similar to other "big iron" database engines like Oracle.
SQL stands for Structured Query Language. SQL is an ISO standard computer language used to perform operations on a database. Jet, SQL Server, and Oracle, are all "SQL compliant", meaning they use SQL to access their database.
They are too numerous to list :-). There is a white paper on this topic on the MS site. Their summary is:
Needless to say, MS would rather people use SQL Server. Jet is free; SQL Server is not. The white paper is somewhat amusing in that most of it says that SQL Server is superior to Jet, but then goes on to say that Jet is the default database for Office 2000. One would think that if SQL were so great, it would be the standard.
The reason, quite simply, is the "ease of use" point. Election administrators are not in general known for their database administration prowess. This has so far been paramount.
GEMS is written in my office.
Also, GEMS is written in C++ using the Microsoft Foundation Classes (MFC). MFC in turn uses ODBC (mentioned last mail) to communicate with the database using SQL.
GEMS requires a database engine of some kind that can speak ODBC. Some of those engines, like SQL Server, require a separate server process to run (sometimes on a network). Others, like Jet, are just a library that is linked with the application directly. In other words, it is a part of GEMS (you might consider that embedded -- I don't know).
We had at one point a long time ago (NEXTSTEP/Apogee days) considered writing our own database engine. We dropped that idea when we moved to Window NT since Jet is free.
That depends on your definition of "better".
I think so, but that is one man's opinion, and subject to change. We have recently demonstrated that Jet can handle King County. Whether that means "any of the tasks we [ever] throw at it" is a matter for debate.
There are non-technical reasons (ie marketing reasons) to support SQL Server however. I suspect we will have to add support eventually whether or not it is a good idea.
The main reason for not supporting SQL doesn't have to do with any particular difficulty in doing it. The main reason is that keeping all accounts on one database platform means everyone shares the same problems (and solutions). If only one county runs SQL Server, they will almost certainly have problems our support staff is not familiar with, or worse are not found until election night. If we move everyone to SQL Server, then everyone must pay the "ease of use" penalty, even though SQL offers nothing to our current accounts.