Firebird DatabaseAccess WireCrypt DB2Provider

目前最新的Firebird版本是:3.0.3

使用过程的一些必经问题,嵌入式的模式就不再说了。

在使用标准Server版时,第一个要考虑的就是数据库文件的存放位置,默认配置放在windows/system32下,很可能需要改为指定的位置:例如安装目录的db子目录下。

1 DatabaseAccess = Restrict db

第二个需要注意的就是,表的命名最好使用全大写,这样在写sql时,不用关心大小写问题,即便写的是小写,也没问题;这一点和Postgresql正好相反。

第三个就是连接字符串,和标准的稍微有点区别,正确的是: uid=SYSDBA;Password=1234;database=wms;server=192.168.0.119;Dialect=3;ServerType=0; 注意这里的Password不能被pwd替换,其他几个可以。ServerType=0是服务器版,1是嵌入式版。

第四个还是要修改服务器配置文件,使客户端和服务器保持一致的加密等级,在文件 firebird.conf ,修改为 WireCrypt = Enabled ,否则会报错 Incompatible wire encryption levels requested on client and server 。

然后,如果用到轻量级的ORM,如Influendata,可以从nuget上下载 FirebirdSql.Data.FirebirdClient ,会在配置文件自动添加 DbProviderFactories 节点。

1   <system.data>
2     <DbProviderFactories>
3       <remove invariant="MySql.Data.MySqlClient" />
4       <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
5     
6       <remove invariant="FirebirdSql.Data.FirebirdClient" />
7       <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
8     </DbProviderFactories>
9   </system.data>

在定义DbContext上下文时,并没有提供firebird的驱动,可以使用 DB2Provider 替代: return new DbContext().ConnectionString(connstr, new DB2Provider(), FirebirdSql.Data.FirebirdClient.FirebirdClientFactory.Instance); 

猜你喜欢

转载自www.cnblogs.com/jonney-wang/p/9263693.html