问题标签 [tdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
362 浏览

mysql - 在 windows starpack 下包含 tdbc::mysql&tdbc::postgres 的 dll 的最佳方法是什么?

软件包 tdbc::mysql 和 tdbc::postgresql 需要 DLL libmysql.dll 和 libpq.dll 在 PATH 中。将此 dll 包含到单个 starpack 中的最佳方法是什么?

现在我正在使用以下 pkgIndex.tcl:

但这看起来非常难看。

我试图找到一种方法将必要的库复制到解释器用来加载 dll 的临时文件夹中。但是通过检查 Tcl 源代码,发现临时目录的名称是不可能用于脚本的。

更新:目前,我决定使用 twapi 来确定 Tcl 解释器使用的临时文件夹的名称。我得到以下代码:

但是程序退出后删除临时文件仍然存在问题。我只看到一个解决方案:在程序开始时扫描文件夹$::env(TEMP)并尝试删除所有名为TCLXXXXXXXX.

0 投票
1 回答
95 浏览

linux - 加载 libtdbcmysql1.0.0.so 失败

我正在load libtdbcmysql1.0.0.so使用 tcl 脚本(linux),这给出了错误:

无法加载文件“libmysql.so.15”

我认为libmysql.so.15可能是一个依赖库libtdbcmysql1.0.0.so,所以我检查了使用

但是这个命令给出了以下输出:

正如我们所看到的,它没有提到任何关于libmysql.so.15.

任何人都可以请解释这里发生了什么?以及如何解决这个错误?

0 投票
1 回答
566 浏览

database - TCL tdbc 命令行参数

我正在尝试使用命令行参数连接到数据库,但是在执行“2”时我得到了无效的命令名“2”

我已经搜索了很多,找不到任何解决方案......这是我的代码

编辑:

尝试在第一个 db allrows 行运行修改后的代码时出现错误:

这是错误:

我真的不知道 tcl,这只是一个在拥挤的情况下的一次性项目!感谢所有的帮助!

0 投票
1 回答
497 浏览

package - Package not found tdbc::mysql... 如何安装?

当我编译上面的代码时,它给出了错误:

我安装了 tcl8.6-tdbc-mysql 但它不起作用。可以做什么?我正在使用 Ubuntu 15.04 和 Tcl8.6。

0 投票
1 回答
416 浏览

tcl - tcl tdbc::odbc 包并将参数传递给查询

这是我第一次尝试使用 tdbc 包(ODBC 连接),但我不知道如何将参数传递到查询中。这是代码:

这是有效的。但是,我想将“3-b”传递给查询。所以我尝试了:

但这给了我一个错误([Microsoft][ODBC SQL Server Driver]String data, right truncation)或类似的东西。我尝试了不同的格式,但没有任何效果。我究竟做错了什么?

(根据格伦的回答,我也试过:

同样的错误([1][Microsoft][ODBC SQL Server Driver]字符串数据,右截断)

但这是有效的。

我还必须补充一点,tclodbc 包在这里工作得很好。请参阅下面的代码

在 tclodbc 包中工作正常,但类似的代码在 tdbc 包中失败。

——苏雷什

0 投票
1 回答
357 浏览

sql-server - 在 Win x64 上通过 MS SQL 使用 Tcl 和 tdbc

几年来,我们一直在使用 tclodbc 包对 MS SQL Server 运行查询。现在我们必须切换到 x64 进程并且 tclodbc 不会加载,因为没有 x64 版本。

我们开始寻找替代方案并尝试了 tdbc,但我们遇到了作为参数传递的字符字段的问题。我创建了一个包含 2 个整数列和 2 个 varchar 列(50 和 100 长)的测试表。

我正在尝试插入记录并发生以下情况: 1. 如果我插入仅提供 2 个整数参数的记录,一切正常 - 插入 5 条记录(请参见下面的代码)。2. 如果我插入仅提供 1 个字符参数的记录 1 条记录被插入,然后脚本失败并出现以下错误:“[Microsoft][ODBC Driver 11 for SQL Server]String data, right truncation” 3. 如果我传递了两个字符参数或整数参数和字符参数然后没有插入任何内容 - 我得到与上面相同的错误。

我没有测试任何其他数据类型,但看起来字符参数有问题(我也尝试了 nvarchar 和 char 类型列)。

这是我的代码:

我对 SQL Server 的 ODBC Driver 13 进行了同样的尝试——结果都相同。

0 投票
0 回答
130 浏览

oracle - tdbc::odbc 从包含负整数的表中返回正整数

我发现 tcl tdbc::odbc 有一些奇怪的地方。

从表中检索结果时,其字段定义为 number(5,0),并且在 Oracle 中值为负数,返回的数字是正数。

SQLPLUS、SQL DEVELOPER 和使用 Julia ODBC 包(使用相同的 unixODBC 驱动程序和 dsn 定义),正确返回负值,但只有 tcl tdbc::odbc 包返回正值为负值

我试过这个测试。

在 Oracle 中创建表

插入值

然后从 SQLPLUS 查询,一切都正确返回。

来自 Julia 使用具有相同 DSN 定义的 ODBC,也是正确的。

然后从 Tcl 查询,可以看到 NUMBER5 表返回错误的结果

注意,如果我这样调用查询,那么结果是正确的

这是一个错误,还是我错误地调用了该函数。

0 投票
1 回答
116 浏览

ubuntu - 无法在 mint 上构建 tdbc 1.0.6

在使用 ubuntu 12.04 5 年多之后,我终于更新了我古老笔记本电脑上的操作系统。

据我所知,Ubuntu 不再支持 32 位系统,所以我安装了 mint。我有大量的 Tcl 脚本,过去一直依赖 ActiveTcl,但它们似乎不再提供包含电池的发行版,所以我下载并构建了 tcl8.7a1 和 tk8.7a1,它们已安装在 /选择/tcl8.7a1。

我想继续使用的一个脚本失败了can't find package tdbc::mysql,所以我正在尝试构建 tdbc 包(后面是 tdbc::mysql 和 tdbc::sqlite3)。我首先在 core.tcl.tk/tdbc 克隆化石存储库。

然而,

失败了

我看了看configure,看不到在错误发生的地方设置的符号正在其他任何地方使用,所以我只是注释掉了错误行和其他一些。

这允许configure命令完成,并且我能够make没有错误,但是make install失败了,因为它找不到 install.sh - 也许这些变量在某处使用:-)。

我应该怎么做才能绕过configure错误?

0 投票
2 回答
48 浏览

matrix - Create Matrix from tdbc::odbc $resultset allrows -as lists

I have a result set that I am returning from a result set. I am wanting to turn that into a matrix object to perform in memory lookups on the data. I have never used Matrix and am stuck on getting it to work. Can anyone provide an example?

0 投票
0 回答
63 浏览

tcl - 使用 TDBC 检索与 ResultSetMetaData (JDBC) 相当的内容

使用 JDBC (Java) 始终提供有关查询结果的大量信息。这有时很重要,即知道是否显示列左对齐(字符串)或右对齐(数字)的结果。

TDBC(Tcl 数据库连接)似乎缺乏这种能力。虽然在 Tcl 中确实“一切都是字符串”,但有时需要知道某物是数字、日期、字符串还是结果列具有的任何类型的数据类型。

向数据库询问现有表或视图的列类型很容易,但是具有计算列的单个查询可以提供预先未知类型的值。一个简单的例子是SELECT current_timestamp;- 没有可以要求数据类型的表。

我本来想添加标签“TDBC”,但这是不可能的:

创建新标签“tdbc”需要至少 1500 个信誉。从现有的标签列表中尝试一些东西。