首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tdbc:mysql“allrow”和“准备”语句分段错误在10.5.11以上的mariadb-libs上

tdbc:mysql“allrow”和“准备”语句分段错误在10.5.11以上的mariadb-libs上
EN

Stack Overflow用户
提问于 2022-09-04 03:59:57
回答 2查看 124关注 0票数 0

我的问题是:

tdbcmyslq版本1.1.3只适用于mariadb和mariadb-客户端,在更高版本的mariadb、allrows、准备语句时才能执行分段错误。

我的代码:

代码语言:javascript
复制
package require tdbc::mysql
namespace import ::tdbc::mysql::*
connection create db -host 127.0.0.1 -port 3306 -passwd mypass -user root -database mydb

#working on all configs
db evaldirect "select product_id from product_to_category where category_id=555"

#seg fault  on mariadb-libs above 10.5.11
db allrows  { select * from category_description }
db prepare  { select * from category_description }

这段代码在最新的Arch linux发行版上以及带有mariadb和mariadb 10.6.9的最新Alpine服务器上都存在分段错误。如果我把mariadb-libs降级到10.5.11的话,效果会很好。

请您可以测试这个,如果它的错误,bugreport它,或告诉我如何安装。

Upd:

我已经找到该去哪里了

https://core.tcl-lang.org/tdbcmysql/tktview?name=79e85de788

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-05 18:26:15

Bug应该在tdbc::mysql 1.1.5中修复。

解决办法是在安装MySQL客户机库的同时安装MariaDB客户端库。在基于Debian的系统上,

代码语言:javascript
复制
sudo apt install libmysqlclient21

就能做到。

这不应该干扰MariaDB客户端库,并且tdbc::mysql在MySQL客户机上对MariaDB服务器运行良好(否则我会更早地注意到这个问题!)

票数 1
EN

Stack Overflow用户

发布于 2022-09-07 04:57:54

我在stackoverflow中发布了一个问题,后来在comp.lang.tcl中发布,最后在tdbc::mysql中打开了一张票子

Win32 - tdbc 1.1.2 - tcl/tk 8.6.11 你好,测试这个脚本(当然,参数不是真实的):

代码语言:javascript
复制
package require tdbc::mysql
tdbc::mysql::connection create test_conn -user test_admin -passwd \  
test_passw -db test -host www.test.com -port 3306
set consulta "SELECT * FROM entes"
set sentencia [test_conn prepare $consulta ]
$sentencia foreach row {
    puts $row 
}
$sentencia close
test_conn close

我明白了 退出代码: 3221225477,但是,使用以下代码 test_conn值直接$consulta 我得到了正确的名单。 在测试了几个版本的libmariadb.dll之后,我可以确认只有3.1.17工作,3.2.7和3.3.1都失败了。

后来,我测试了一个“固定”的1.1.4版本,但这两种版本对我都不起作用。

在用我卑微的C专业知识调试了这个问题之后,我被跟踪到了这一行:

代码语言:javascript
复制
if (Tcl_GetCommandInfo(interp, "::tcl::build-info", &info)) {

作为命令tcl::build添加在tcl 8.7之后。

尽管如此,我在其他票证上发表了一条评论

我的8.6.xx测试失败了,但是这似乎是8.7中新特性造成的。我无法确认,因为所有的Win32二进制发行版都是8.6.xx

我希望有人能够在tdbc::mysql中检查并修复这个问题。

干杯,

亚历杭德罗

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73596701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档