开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用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 = ?

但是Entity中Parameter的定义,仍然可以按与命名参数一模一样的写法即可。




本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/280796,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
HQL的使用
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式
48 0
mysqldump的简单使用
背景 需要搞mysql数据同步,从一台服务器把数据库同步到另外一台服务器上,如果折腾过的话,就知道有个这玩意--mysqldump,其实就是mysql自带的一个命令而已 操作步骤 1. 认识mysqldump 一般都是mysql安装目录/bin/下,命令也简单可以通过mysqldump --help 查看下 2.
694 0
VC++ 6.0的使用——编译,连接,运行
     寒假开始看C++了,先翻了翻目录,然后看了看第一章的概述,里面有程序员的入门程序——hello word。但是在用VC ++ 这个开发环境时,却有点儿不知道怎么下手,而且书上讲了C++语言的各种内容,却没讲一种开发环境的使用,这个,是要我纸上谈兵吗?~~呵呵~~      先来看一个Hello的编写。
757 0
在WIN32 DLL中使用MFC库遇到的问题
今天写了一个DLL,DLL中用到的一个类里用到的MSXML的COM组件,所以在DLL中要包含afx.h头文件,也就不可避免的要用到MFC的类库了,但在编译时出现了错误:mfcs42d.lib(dllmodul.obj) : error LNK2005:_DllMain@12 already defined in NetDriverConfig.obj, 在http://topic.csdn.net/t/20010911/10/281452.html 处的贴子里找到了以下回答,试了一个原来是文件里定义的对象与mfcs42d.lib有冲突,加了命名空间后问题解决。
1058 0
+关注
20377
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载