> Sorry all: > > Solved: PEBKAC/PICNIC problem as usual. > > I assigned a variable that hadn't been initialised as a stringlist to > the connection's Params property. > > On with the next problem... > > thanks, > jb > Progress & help requested from the experts.
32 bit works, 64 bit doesn't: 32 bit: The custom Firebird exception stuff as well as embedded Firebird works well on my version of fpc 2.4.1 32 bit on Windows: ...snip output... *** Insert number 5 again. This shold fail because of the unique index. *** We should get a generic database error. Debug: 16-6-2010 15:38:50: SaveNumber: going to add parameters for insert query Debug: 16-6-2010 15:38:50: Database error running insert query. Database error message: : Execute : -violation of PRIMARY or UNIQUE KEY constraint "NUMBERUNIQUE" on table "NUMBERS "; Database error code: 335544665 ...snip output... *** Now test our custom Firebird exception by trying to insert 13: Debug: 16-6-2010 15:12:21: SaveNumber: going to add parameters for insert query Debug: 16-6-2010 15:12:21: Database error running insert query. Database error message: : Execute : -exception 1 -EXCNOT13 -No, not 13, I can't handle that! -At trigger 'TRIGCHECK13' line: 7, col: 28; Database error code: 335544517 Debug: 16-6-2010 15:12:21: Parameters were: BINGONUMBER: *13* Debug: 16-6-2010 15:12:21: Rolling back transaction. ...snip output... Uploaded this to bitbucket as fbembedtest16June_15.10.zip http://bitbucket.org/jb/flocate/issue/5/cant-get-embedded-firebird-to-work 64 bit: 1. The code seems to hang somewhere. Do I have to fiddle with integers or longints or whatever they're called? 2. The database error handling that was working in 32 bit is erroneous here (control-c hit - see output below - instead of Database error running insert query. ) Seems like the database layer isn't passing on error messages but something is just dumping a generic error. (My exception handling code distinguishes between database and other errors). Compiled using 64 bit fpc: Free Pascal Compiler version 2.4.1 [2010/06/06] for x86_64 Recompiled all .pp files. Now the program seems to hang in the middle of adding parameters or when executing the query, possibly somewhere in FInsertQuery.Params.ParamByName('BINGONUMBER').AsInteger := BingoNumber; try FInsertQuery.ExecSQL; Output: Debug: 16-6-2010 15:32:49: Starting database setup: Debug: 16-6-2010 15:32:49: SetUp: Connecting to database: Debug: 16-6-2010 15:32:49: DB/Setup/Going to start transaction. Debug: 16-6-2010 15:32:49: Getting query =============================================================== fbembedtest: information. Test program for firebird 2.1 embedded database and custom stored procedures. Please see fbembedtest_readme.TXT for details on setting up database etc. Freeware but no warranties, express or implied. For full copyright and license, please see the source code. =============================================================== Debug: 16-6-2010 15:32:49: Application started. *** First, clear any existing numbers out of database: Debug: 16-6-2010 15:32:49: ClearData: going to run query DELETE FROM NUMBERS; *** Insert number 5. This should work: Debug: 16-6-2010 15:32:49: SaveNumber: going to add parameters for insert query Debug: 16-6-2010 15:32:49: SaveNumber: insert query code done. *** Insert number 5 again. This should fail because of the unique index. *** We should get a generic database error. Debug: 16-6-2010 15:32:49: SaveNumber: going to add parameters for insert query Debug: 16-6-2010 15:32:49: Error running insert query. Technical details: Control-C hit Debug: 16-6-2010 15:32:49: Parameters were: BINGONUMBER: *5* Debug: 16-6-2010 15:32:49: SaveNumber: insert query code done. *** Now test our custom Firebird exception by trying to insert 13: Debug: 16-6-2010 15:32:49: SaveNumber: going to add parameters for insert query Uploaded to bitbucket as well. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal