使用BDC串連MySql可能遇到的問題

來源:互聯網
上載者:User

這兩天幫一個朋友調試使用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 = ?

但是Entity中Parameter的定義,仍然可以按與具名引數一模一樣的寫法即可。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.