• 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";
  • 相关阅读:
    NOIP前咕咕 : BZOJ3172: [Tjoi2013]单词
    BZOJ4350: 括号序列再战猪猪侠【区间DP】
    Codeforces 983B. XOR-pyramid【区间DP】
    POJ1651 Multiplication Puzzle【区间DP】
    LOJ10131. 「一本通 4.4 例 2」暗的连锁【树上差分】
    UOJ22. 【UR #1】外星人【DP】【思维】
    BZOJ5125: [Lydsy1712月赛]小Q的书架【决策单调性优化DP】【BIT】【莫队】【分治】
    Codeforces 868F. Yet Another Minimization Problem【决策单调性优化DP】【分治】【莫队】
    BZOJ1835: [ZJOI2010]base 基站选址【线段树优化DP】
    Codeforces 165 E. Compatible Numbers【子集前缀和】
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/9263693.html
Copyright © 2020-2023  润新知