README.user.embedded 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. -----------------------------------------------------------
  2. Firebird 3.0 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 local connection
  19. to a database file path without a server name.
  20. The database file can be accessed by multiple client
  21. programs. The database consistency in this case is
  22. guaranteed internally (by the shared lock table).
  23. The embedded server acts as a true local server for a single
  24. client accessing databases on a local machine. It can also
  25. act as a remote gateway that redirects all network calls to
  26. other hosts, just as the regular client library does.
  27. 2.3. Authentication and security
  28. The security database (namely security2.fdb) is not used
  29. in the embedded server and hence is not required. Any
  30. user is able to attach to any database. Since both
  31. the server and the client run in the same address space,
  32. the security becomes just an agreement between both
  33. sides which can be easily compromised.
  34. But note that SQL privileges are still checked.
  35. 2.4. Compatibility
  36. You may run any number of applications with the embedded
  37. server without any conflicts. Having IB/FB server running
  38. is not a problem either.
  39. 3. USAGE
  40. Just copy fbembed.dll, icudt30.dll, icuin30.dll and
  41. icuuc30.dll into the directory with your application.
  42. Then rename fbembed.dll to either fbclient.dll or
  43. gds32.dll depending on your database connectivity software.
  44. Then start your application and it will use the embedded
  45. server as a client library and will be able to access
  46. local datasases. You should also copy firebird.msg and
  47. firebird.conf (if necessary) to the same directory.
  48. If external libraries are required for your application,
  49. then you should have them separately. Most probably, it
  50. will be INTL support (fbintl.dll and fbintl.conf) or UDF
  51. libraries. To be able to use them, you should place them
  52. into the directory tree which emulates the Firebird server
  53. one, i.e. has subdirectories like /intl or /udf:
  54. c:\my_app\app.exe
  55. c:\my_app\gds32.dll
  56. c:\my_app\ib_util.dll
  57. c:\my_app\icudt30.dll
  58. c:\my_app\icuin30.dll
  59. c:\my_app\icuuc30.dll
  60. c:\my_app\firebird.conf
  61. c:\my_app\firebird.msg
  62. c:\my_app\intl\fbintl.dll
  63. c:\my_app\intl\fbintl.conf
  64. c:\my_app\udf\fbudf.dll
  65. If you want to place the Firebird files (excluding the
  66. renamed fbembed.dll) in another directory, you need to
  67. modify your firebird.conf and set RootDirectory to the
  68. Firebird directory tree. Example:
  69. c:\my_app\app.exe
  70. c:\my_app\gds32.dll
  71. c:\my_app\ib_util.dll
  72. c:\my_app\icudt30.dll
  73. c:\my_app\icuin30.dll
  74. c:\my_app\icuuc30.dll
  75. c:\my_app\firebird.conf
  76. d:\fb\firebird.msg
  77. d:\fb\intl\fbintl.dll
  78. c:\fb\intl\fbintl.conf
  79. d:\fb\udf\fbudf.dll
  80. firebird.conf:
  81. RootDirectory = d:\fb