[DB-SIG] Python vs Delphi; MS SQL Server vs. Anything

Brian Dorsey brian at kempf.com
Fri Sep 26 15:58:02 EDT 2003


Gail, 

In addition to David's excellent recommendations, I'd like to add the adodbapi module. It is only usable on windows, but it makes it very easy to connect to SQL Server from python. I use it regularly.

http://adodbapi.sourceforge.net/

Take care,
-Brian

On Fri, Sep 26, 2003 at 10:41:56AM -0700, David Rushby wrote:
> --- Gail Yano <gy at carderockcapital.com> wrote:
> > I have been struggling with re-writing some DOS Paradox DB programs
> > using Delphi and MS SQL.  My boss wants me to investigate switching
> > to Python.  I can't seem to find anything about MS SQL on the Python
> > website [understandably].
> 
> I think the Python Sybase module also supports MS SQL to some extent (I
> have no direct experience with the Sybase module, so I could be wrong):
> http://www.object-craft.com.au/projects/sybase/
> 
> If not, you could access MS SQL via mxODBC, but it's commercial:
> http://www.egenix.com/files/python/mxODBC.html
> 
> A third alternative would be to use Microsoft's ADO library via COM. 
> This would only work if your client program doesn't need to run on
> anything but Windows.  To access COM from Python, see:
> http://starship.python.net/crew/mhammond/win32/Downloads.html
> 
> > I'm open to suggestions as to starting over with Python...
> 
> What kind of user interface do the Paradox programs have?  What kind
> are  the replacements intended to have?  I suspect you'll find GUI
> construction more difficult in Python than in Delphi, because of
> Delphi's refined IDE.  For a graphical form builder, you might try Boa
> Constructor (but YMMV as to its level of maturity and stability):
> http://boa-constructor.sourceforge.net/
> 
> Alternatively, PythonCard is touted as an easy GUI toolkit to program
> directly:
> http://pythoncard.sourceforge.net/
> 
> > ... and if so, what database to use.
> > 
> > PS:  I'm an end-user who happens to program a little.
> 
> MS SQL is a nice database engine, but it's restrictively licensed. 
> There's a somewhat freely redistributable embedded version called MSDE,
> but it has a bunch of limitations as compared to full-blown MS SQL
> Server:
> http://msdn.microsoft.com/vstudio/downloads/addins/msde/default.aspx
> 
> ---
> 
> As an alternative, how about Firebird (an open source descendant of
> Borland's Interbase)?
> http://firebirdsql.org/
> 
> Firebird suits your situation well because:
> a) Although it has a broad feature set (far broader than MySQL), it's
> easy to use only those features that you need and ignore the rest (it's
> similar to Python in this regard).
> 
> b) It can operate in embedded or standalone server mode.  "Embedded
> mode" means that the Firebird engine runs as a library in the same
> process with Python, so you don't have to maintain an external server
> process.  This is primarily useful to simplify distribution and
> installation, or for deployment on operating systems that support
> background services poorly, such as Win9x.  If multiple programs are to
> access the same database concurrently, use the server mode instead.
> 
> c) It runs well on Windows, unlike PostgreSQL.
> 
> d) Refined and free Firebird administration GUIs are available for
> Windows.
> 
> e) It has feature-complete and reasonably well documented Python
> support via the kinterbasdb module:
> http://kinterbasdb.sourceforge.net
> 
> f) It's covered by a permissive Mozilla-style license, rather than a
> restrictive license like that of MSDE or MySQL.  MySQL is only free
> under two circumstances:
>   1) You release your MySQL-based application under an open source
> license.
>   2) You "never distribute (internally or externally) the MySQL
> Software in any way".  Unlike the GPL, which applies only to in-process
> code and, furthermore, allows intra-company "internal distribution"
> without releasing the altered code, the MySQL license applies to any
> program in your organization that accesses the MySQL server, whether
> in-process or across a network, and requires a license for "internal
> distribution".
>   "Internal [intra-company] distribution" of a piece of software could
> be interpreted to mean almost anything; it's a wide open ambiguity in
> the MySQL license.  You can read my own interpretation of it here:
>   http://listserv.sap.com/pipermail/sapdb.general/2003-May/015583.html
> or a MySQL employee's interpretation here:
>   http://listserv.sap.com/pipermail/sapdb.general/2003-May/015478.html
> 
> ---
> 
> Yet another alternative is SQLite (http://sqlite.org/), an admirably
> compact database engine with a decent feature set and a good Python
> module, but no standalone server mode of operation.
> 
> ---
> 
> Disclaimer:  I'm biased towards Firebird because I'm deeply involved in
> the Python driver, kinterbasdb.  I'm not a zealot, though, and I "eat
> my own dogfood", which should make my biased commentary less suspect.
> 
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Shopping - with improved product search
> http://shopping.yahoo.com
> 
> _______________________________________________
> DB-SIG maillist  -  DB-SIG at python.org
> http://mail.python.org/mailman/listinfo/db-sig



More information about the DB-SIG mailing list