Subject | Re: [firebird-support] Embedded Server Problem |
---|---|
Author | Nando Dessena |
Post date | 2005-07-14T04:41:58Z |
Walter,
W> To run it with the embedded server, I put a copy of the Delphi exe file on
W> the USB drive in F:\SpedDemo, along with a copy of fbembed.dll 1.5.2.4731
W> renamed to gds32.dll.
Just a note: since you are using IBO, which supports fbembed.dll, I
find it sloppy on your part to rename it to gds32.dll. Just modify
your application so that it uses the correct library name. The ability
to rename the file to gds32.dll is a last resort for those that cannot
do without it. You can.
W> Also as detailed in Helen's book, page 18, I have copied firebird.conf into
W> F:\SpedDemo\fb and aliases.conf into F:\SpedDemo, Firebird.msg into
W> F:\SpedDemo\fb also fbintl.dll and fbudf.dll in their own subdirectories..
W> Firebird.conf contains the line "RootDirectory = F:\SpedDemo\fb"
I can't see how your application can possibly know that firebird.conf
is located under the fb subfolder since the only place this
information is recorded into is firebird.conf itself! ;-)
Have a look at README_embedded.txt to know what your options are about
where to place the files). I don't know where the example shown in The
Firebird Book comes from, but it looks like a typo.
Furthermore, personally, I wouldn't use RootDirectory because there's
no guarantee that the USB stick will get the F:\ volume name in all
cases. You can:
a) move firebird.conf up one level.
or
b) set the FIREBIRD environment variable at your program startup
(before the client library is loaded, which means in the
initialization section of one unit that is initialized before
IB_Constants).
In both cases, delete the RootDirectory key from firebird.conf.
I don't know if this solves your problem but it needs to be fixed
anyway.
W> When I run the main app using the embedded server two other TIBOQuerys open
W> OK, but when I open a TIBOQuery with the SQL
W> "select ISD, offname, DCODE from state where dcode like '%000' order by 1"
W> I get the EAccessViolation with message 'Access violation at address
W> 00E4B6ED in module 'gds32.dll'. Read of address 00000000'.
Can you show what are the other two queries that are opened without
errors?
Are you using a special character set in your database?
W> arithmetic exception, numeric overflow, or string truncation
W> Implementation of text subtype 21 not located.
Are you sure your database is in good shape anyway? Try gfix and gbak,
just to be on the safe side.
Ciao
--
Nando Dessena
http://www.flamerobin.org
======================================================
I support Firebird, I am a Firebird Foundation member!
Join today at http://www.firebirdsql.org/ff/foundation
======================================================
W> To run it with the embedded server, I put a copy of the Delphi exe file on
W> the USB drive in F:\SpedDemo, along with a copy of fbembed.dll 1.5.2.4731
W> renamed to gds32.dll.
Just a note: since you are using IBO, which supports fbembed.dll, I
find it sloppy on your part to rename it to gds32.dll. Just modify
your application so that it uses the correct library name. The ability
to rename the file to gds32.dll is a last resort for those that cannot
do without it. You can.
W> Also as detailed in Helen's book, page 18, I have copied firebird.conf into
W> F:\SpedDemo\fb and aliases.conf into F:\SpedDemo, Firebird.msg into
W> F:\SpedDemo\fb also fbintl.dll and fbudf.dll in their own subdirectories..
W> Firebird.conf contains the line "RootDirectory = F:\SpedDemo\fb"
I can't see how your application can possibly know that firebird.conf
is located under the fb subfolder since the only place this
information is recorded into is firebird.conf itself! ;-)
Have a look at README_embedded.txt to know what your options are about
where to place the files). I don't know where the example shown in The
Firebird Book comes from, but it looks like a typo.
Furthermore, personally, I wouldn't use RootDirectory because there's
no guarantee that the USB stick will get the F:\ volume name in all
cases. You can:
a) move firebird.conf up one level.
or
b) set the FIREBIRD environment variable at your program startup
(before the client library is loaded, which means in the
initialization section of one unit that is initialized before
IB_Constants).
In both cases, delete the RootDirectory key from firebird.conf.
I don't know if this solves your problem but it needs to be fixed
anyway.
W> When I run the main app using the embedded server two other TIBOQuerys open
W> OK, but when I open a TIBOQuery with the SQL
W> "select ISD, offname, DCODE from state where dcode like '%000' order by 1"
W> I get the EAccessViolation with message 'Access violation at address
W> 00E4B6ED in module 'gds32.dll'. Read of address 00000000'.
Can you show what are the other two queries that are opened without
errors?
Are you using a special character set in your database?
W> arithmetic exception, numeric overflow, or string truncation
W> Implementation of text subtype 21 not located.
Are you sure your database is in good shape anyway? Try gfix and gbak,
just to be on the safe side.
Ciao
--
Nando Dessena
http://www.flamerobin.org
======================================================
I support Firebird, I am a Firebird Foundation member!
Join today at http://www.firebirdsql.org/ff/foundation
======================================================