zoukankan      html  css  js  c++  java
  • 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); 

    使用  FbConnectionStringBuilder 生成的标准连接字符串:  user id=SYSDBA;character set=UTF8;dialect=3;server type=Default;initial catalog=a;password=1234;data source=localhost 

    1             FbConnectionStringBuilder connBuilder = new FbConnectionStringBuilder();
    2             connBuilder.DataSource = "localhost";
    3             connBuilder.UserID = "SYSDBA";
    4             connBuilder.Password = "1234";
    5             connBuilder.Database = "a";
    6             connBuilder.ServerType = FbServerType.Default;
    7             connBuilder.Charset = "UTF8";
    8             connBuilder.Dialect = 3;
    9             connectionString = connBuilder.ConnectionString;

     默认配置:

    1     connBuilder.DataSource = "localhost";
    2     connBuilder.UserID = "sysdba";
    3     connBuilder.Password = "1234";
    4     connBuilder.Database = "a";
    5     connBuilder.Charset = "utf8";
  • 相关阅读:
    canvas 画一个钟表
    .net防止写文件线程冲突
    .net中params以前没关注过的一个现象
    dom属性和特性
    数组常用方法
    新手配置vux
    改变placeholder的字体颜色大小
    设置cookie,删除cookie,读取cookie
    css 画三角形
    audio元素和video元素在ios和andriod中无法自动播放
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/9263693.html
Copyright © 2011-2022 走看看