zoukankan      html  css  js  c++  java
  • 转帖:使用BDC连接MySql可能遇到的问题

    原址:使用BDC连接MySql可能遇到的问题

    这两天帮一个朋友调试使用BDC(Business Data Catalog)来连接MySql中的数据,发现不少需要特别注意的地方。在使用BDC连接时,MySql和MS Sql Server的区别还是很大的。
    我的朋友在服务器上是使用的MyODBC这个Driver。对于LobSystemInstance的定义,基本类似:
    <LobSystemInstance Name="MySQL_Lob">
          <Properties>
            <Property Name="rdbconnection Driver" Type="System.String">{MySQL ODBC 3.51 Driver}</Property>
            <Property Name="rdbconnection server" Type="System.String">MySQL服务器名称</Property>
            <Property Name="rdbconnection database" Type="System.String">MySQL Database名称</Property>
            <Property Name="rdbconnection user" Type="System.String">root</Property>
            <Property Name="rdbconnection password" Type="System.String">123456</Property>
            <Property Name="rdbconnection option" Type="System.String">3</Property>
            <Property Name="RdbConnection Trusted_Connection" Type="System.String">true</Property>
            <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">Odbc</Property>
            <Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">PassThrough</Property>
          </Properties>
    </LobSystemInstance>
    不同的Database Driver,其Connection String是不同的。所以如果你使用的并非MyODBC Driver,那么LobSystemInstance的写法会有不同。
    由于我对MySQL并不熟悉,所以在写Entity的Method的时候,又遇到不少问题。其中之一是SQL语句的Parameter的问题。对于MS SqlServer,我们可以使用类似“@ParameterName”的格式来定义SQL语句中的参数。但是,这对于MySQL并不一定有效。使用不同的Database Driver去连接MySQL,对于参数,都有不同的定义方法。我搜索了一下MyODBC的文档,发现它不支持命名参数,而直接使用“?”来代表参数,然后按照顺序来添加参数的值。
    所以,在写Entity Method的SQL查询语句时,如果其中有参数,就只能写成类似:
    Select CustomerID, CustomerName, ContactName from Customers where CustomerID = ?

    通过这个例子,可以看出bdc能连接的数据远远多于sdk中的编辑器提供的类型。

  • 相关阅读:
    mysql 递归查询sql语句的实现
    Windows安装MySQL-5.6.13免安装版配置方法
    URL中的特殊字符处理
    Java序列化与反序列化
    url特殊字符转义及解决方法
    CentOs Mysql主从复制与读写分离
    java 转义特殊字符
    List列表中根据某一个字段,进行去重
    Spring定时任务的几种实现Quartz Timer task
    文件操作
  • 原文地址:https://www.cnblogs.com/LifelongLearning/p/1318528.html
Copyright © 2011-2022 走看看