鱼C论坛

 找回密码
 立即注册
查看: 2808|回复: 2

sql驱动的问题,发送sql报错。

[复制链接]
发表于 2017-6-13 22:42:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序遇到了一点问题。环境delphi xe8 有64位支持  mysql5.1-32位,windows7 64位系统,因为高版本的mysql连接不上delphi只能使用5.1的,然后今天在测试客户端发送sql到服务器时弹出错误如下图所示。

找不到路径

找不到路径

意思我找不到dbxmys.dll在系统内的路径(百度翻译)。然后我尝试把xe8的bin目录和bin64下的dbxmys复制到System32和SysWOW64并测试,依旧不行,有时还会报错驱动错误。然后我把xe8的bin64的64位dbxmys复制到bin里覆盖掉32位的,切换尝试后发现;如果bin内使用32位的dbxmys.dll则会报错:找不到dbxmys.dll在系统内的路径。如果是64位的则会报错:驱动错误。
xe8的bin文件夹同级目录,以及项目的目录都复制过去了尝试过了,无法解决问题。
驱动错误的报错和使用高版本的mysql是一样的,会在一开始测试数据库的时候就失败,而使用32位的能测试通过,但在客户端发送sql的时候会报错。
下图这是驱动错误。

驱动错误

驱动错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-14 19:59:54 | 显示全部楼层
本帖最后由 失落之杖 于 2017-6-14 20:07 编辑

问题已经解决,昨晚搞了半天,实在无法理解其中的逻辑,只能肯定有一个是对的,而且大概率是32位的,因为32位报错的范围要比64位的小,也就是说32位的dll其实位置是正确的,但是因为其他原因才报错。然后今天完了下游戏放松一下。在吃晚饭时想起整个流程,发现可能是一开始纠结于高版本mysql的时候乱调导致的,而其中给我印象最深的一个调整是服务端的32位和64位模式。我想这个非常有可能是问题所在。 QQ截图20170614194931.png
在调整为32位之后再开启客户端测试,发现可以读取到数据库数据了。
当然客户端也必须是32模式不然会报错下图
QQ截图20170614195649.png
改为32位后成功读取数据库信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-15 06:08:37 | 显示全部楼层
执行sql时出现问题cannot perform this operation on an open dataset
SELECT * FROM visit_log;可以执行,但把*修改为具体的字段名则报错。
尝试修改下图的位置
delphi1.JPG
图中标记的地方在建立服务器时用于测试打开了true并填写了具体的sql:SELECT * FROM visit_log;。
将其去掉关闭能解决以上问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 06:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表