README.user.embedded 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. -----------------------------------------------------------
  2. Firebird 1.5.2 Embedded Server notes
  3. -----------------------------------------------------------
  4. 1. GENERIC INFORMATION
  5. The embedded server is a fully functional server linked
  6. as a dynamic library (fbembed.dll). It has exactly the
  7. same features as the usual server and exports the
  8. standard Firebird API entrypoints.
  9. 2. ISSUES AND LIMITATIONS
  10. 2.1. Registry
  11. The Firebird registry entries are ignored. The root
  12. directory of the embedded server is the directory of
  13. its binary file (library).
  14. 2.2. Database access
  15. Client access can be only via the local protocol,
  16. i.e. NOT a TCP/IP connection string that includes
  17. the server name "localhost" or IP address 127.0.0.1.
  18. The embedded server supports only the IPServer "local
  19. connect" to a database file path without a server name.
  20. The client must have exclusive access to the database file.
  21. The embedded server acts as a true local server for a single
  22. client accessing databases on a local machine. It can also
  23. act as a remote gateway that redirects all network calls to
  24. other hosts, just as the regular client library
  25. does.
  26. 2.3. Authentication and security
  27. The security database (namely security.fdb) is not used
  28. in the embedded server and hence is not required. Any
  29. user is able to attach to any database. Since both
  30. the server and the client run in the same address space,
  31. the security becomes just an agreement between both
  32. sides which can be easily compromised.
  33. But note that SQL privileges are still checked.
  34. 2.4. Compatibility
  35. You may run any number of applications with the embedded
  36. server without any conflicts. Having IB/FB server running
  37. is not a problem either.
  38. But you should be aware that you cannot access single
  39. database from a number of the embedded servers
  40. simultaneously, because they have SuperServer architecture
  41. and hence exclusively lock attached databases.
  42. 3. USAGE
  43. Just copy fbembed.dll into the directory with your
  44. application. Then rename it to either fbclient.dll or
  45. gds32.dll depending on your database connectivity software.
  46. Then start your application and it will use the embedded
  47. server as a client library and will be able to access
  48. local datasases. You should also copy firebird.msg and
  49. firebird.conf (if necessary) to the same directory.
  50. If external libraries are required for your application,
  51. then you should have them separately. Most probably, it
  52. will be INTL support (fbintl.dll) or UDF libraries. To
  53. be able to use them, you should place them into the
  54. directory tree which emulates the Firebird server one,
  55. i.e. has subdirectories like /intl or /udf:
  56. c:\my_app\app.exe
  57. c:\my_app\gds32.dll
  58. c:\my_app\ib_util.dll
  59. c:\my_app\firebird.conf
  60. c:\my_app\firebird.msg
  61. c:\my_app\intl\fbintl.dll
  62. c:\my_app\udf\fbudf.dll
  63. If you want to place the Firebird files (excluding the
  64. renamed fbembed.dll) in another directory, you need to
  65. modify your firebird.conf and set RootDirectory to the
  66. Firebird directory tree. Example:
  67. c:\my_app\app.exe
  68. c:\my_app\gds32.dll
  69. c:\my_app\ib_util.dll
  70. c:\my_app\firebird.conf
  71. d:\fb\firebird.msg
  72. d:\fb\intl\fbintl.dll
  73. d:\fb\udf\fbudf.dll
  74. firebird.conf:
  75. RootDirectory = d:\fb