Author: Mark Boylan
Date: 18:40:54 03/03/06
Go up one level in this thread
On March 03, 2006 at 21:12:20, Dann Corbit wrote: > >SQL is language independent. You can use whatever database engine you like. > >Some possibilities for the SQL geeky: >DB/2 (not sure if there is a free version or not) >SQL*Server (there is a free limited version) >Oracle (there is a free 2GB limited version) >PostgreSQL (free) >Firebird (free) > >Some possibilities for a canned version (come in C form and compile anywhere): >SQLite (free, public domain license): >http://www.sqlite.org/ > >For the 'object' crowd: >FastDB (free, berkeley license): >http://www.garret.ru/~knizhnik/fastdb.html > >It does not have to be a relational database. Foxpro or the like would work via >standards based connections like ODBC or OLEDB or .NET provider. > >There are lots of other database systems as well. > >I would use ODBC or JDBC or OLEDB or some other standards based connection. If >you do that, then the database literally does not matter. > >It would be easy to choose some stock format (like SQLite) and make a canned >version that you just bolt on and use. Dann, I understand that SQL is language independent. But I don't understand the logistics. A chess engine is usually just a small single executable file that you can download and run. I'm trying to imagine myself as a first time chess engine user, downloading Fruit 4.0 (just an example) and having to install PostgreSQL! (just another example) Maybe it wouldn't be so bad installing PostgreSQL for Arena or the Shredder interface, but would every engine have to have a big installer that checked for a database installation? The next question would be, how do you share books? If I wanted to create a book for my engine (that's a laugh) or just email a book to you, what would be the format? Maybe just a bunch of insert statements? insert into position (fen, eval) values ("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", 0); And I realize that there are APIs to talk to databases, (that's what I was suggesting when I said I wouldn't want to include the psql headers and link to their libs) but it doesn't answer the question about chess engines being responsible for checking the proper installation of a database server. The only other SQL solution that I could think of is an embedded SQL database. Embedded databases sidestep all of the problems with true database servers (like Oracle, SQLServer & PostgreSQL) for single user systems. But embedded databases generally only work from within a single implementation language. Lots of them exist for Java. HSQLDB, Cloudscape, Derby, Daffodil... But off the top of my head I can't think of a single embedded C or C++ SQL database. So, assuming that your engine is in C, what do you do? Write a complex installation program that installs MySQL server on the user's machine?
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.