MyCATApache / Mycat-Server

GNU General Public License v2.0
9.51k stars 3.85k forks source link

通过C# 访问 mycat,后端数据库为sqlserver 出现如下问题 #702

Open low901028 opened 8 years ago

low901028 commented 8 years ago

1、使用mycat2.0出现如下错误信息 (SingleNodeHandler.java:222) -execute sql err : errno:156 关键字 'proc' 附近有语法错误。 con:JDBCConnection [id=1,autocommit=true,pool=org.opencloudb.jdbc.JDBCDatasource@1e2cd17, schema=BaseCardDB, dbType=SQLSERVER, oldSchema=BaseCardDB, packetId=1, txIsolation=0, running=false, borrowed=true, host=localhost, port=1433, con=ConnectionID:1, respHandler=SingleNodeHandler [node=dn1{SELECT name, type FROM mysql.proc WHERE Db='BaseCardDB'}, packetId=1], attachement=dn1{SELECT name, type FROM mysql.proc WHERE Db='BaseCardDB'}, headerOutputed=false, modifiedSQLExecuted=false, startTime=1451988956867, lastTime=1451988986495, isSpark=false, processor=org.opencloudb.net.NIOProcessor@106c9fa] frontend host:127.0.0.1/51387/sa 2、使用mycat1.5出现如下错误信息 (SingleNodeHandler.java:222) -execute sql err : errno:195 'NOW' 不是可以识别的 内置函数名称。 con:JDBCConnection [id=1,autocommit=true,pool=org.opencloudb.jdbc.JDBCDatasource@1e2cd17, schema=BaseCardDB, dbType=SQLSERVER, oldSchema=BaseCardDB, packetId=8, txIsolation=0, running=false, borrowed=true, host=localhost, port=1433, con=ConnectionID:1, respHandler=SingleNodeHandler [node=dn1{SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())}, packetId=1], attachement=dn1{SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())}, headerOutputed=false, modifiedSQLExecuted=false, startTime=1451988956867, lastTime=1451989174342, isSpark=false, processor=org.opencloudb.net.NIOProcessor@106c9fa] frontend host:127.0.0.1/51609/sa

yuyanqiuqiu commented 8 years ago

哥们,我给你发了邮件,能否抽空回复下?

magicdoom commented 8 years ago

这2个语句是mysql特有 sqlserver的话需要拦截一下给的返回结果来支持 欢迎提交pr来支持

idefa commented 8 years ago

errno:195 'NOW' 不是可以识别的 内置函数名称。 errno:195 'curtime' 不是可以识别的 内置函数名称。

有没有其他数据库的示例或者测试代码。

cometomysz commented 7 years ago

如果是用mycat1.6 你不能直接用mysql的client驱动连接mycat,需要用一个专门的连接包。叫Pomelo.Data.MyCat 你百度一下它,下载下来自己编译,C#连接一下mycat,但是我用了它之后,报另外一个错,是 curtime 函数,在sqlserver中不存在的。 所以我认为是mycat有一个地方配置错了有识到我是的DB是sqlserver.

viking-wf commented 6 years ago

C#+mycat+sqlserver 报错:execute sql err : errno:195 'curtime' 不是可以识别的 内置函数名称, 搞不懂了,头有点晕。部分配置(url=jdbc:sqlserver://xx.xx.xx.xx :1433 ,dbhost 配置dbType="SQLServer" dbDriver="jdbc")

lookingDreams commented 6 years ago

多年后的我 也遇到了同样的问题 很残忍啊 我的不是解决问题的方法 分享到博客园了 有兴趣的可以看一下 https://www.cnblogs.com/codedreams/p/9234069.html 后期有解决方案的大神 一定要 提出解决思路啊

caihaicheng commented 6 years ago

谁解决了,告诉下怎么处理。