问题标签 [otl]

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 投票
0 回答
195 浏览

multithreading - 使用 Omnithread 库在 For 循环中创建 NewTask

我正在编写一个检测 USB 插入并将插入的驱动器保存到 StringList 的程序。现在我想为 StringList 的每个内容创建一个 NewTask 或 Background Worker,立即启动它们并等待所有任务使用 OmniThread 库完成。

这是我的代码片段

使用 Delphi XE7 和 OmniThread 库 v3.04。

0 投票
1 回答
1270 浏览

oracle - 使用 Change Notification 接口时,ORA-24912: Listener 线程失败。出现监听失败错误?

当我尝试通过以下网站运行演示程序以验证 Oracle 更改通知的接口是否正确时:http otl_subscriber: //otl.sourceforge.net/otl4_ex585.htm

我得到如下错误:

ORA-24912: 侦听器线程失败。试听失败!

并且在我搜索谷歌之后,我得到:“客户端需要重新启动。 ”但我不知道需要重新启动哪个客户端?Oracle SQL Developer 或任何其他客户端?

我几乎从不修改演示程序,如果我将片段评论如下:

该程序运行良好,我可以插入或删除表。

从程序一开始,我就了解到“所需的‘变更通知’权限可以通过 DBA 的‘grant change notification to scott’来设置。”

到目前为止,我还没有 DBA 权限,请问 ORA-24912 的 bug 是否与 DBA 权限有关?

0 投票
1 回答
287 浏览

binding - OTL4.0 otl_stream 绑定问题

我有一个关于使用 otl_stream 绑定变量的问题。无论我如何绑定,使用索引或命名顺序/命名都不会影响正在更新的列。它似乎总是顺序的。

可以看到在otl_streamcolumn-names 中已经切换了。然而 postgres 数据库显示两个插入产生相同的结果。

  1. 操作系统:Windows
  2. OTL:4.0
  3. 视觉工作室 2013。
  4. 平台:x64
  5. ODBC:PostgreSQL ANSI(x64) 9.03.04.00

有任何想法吗?亲切的问候 Auke-Dirk

0 投票
1 回答
410 浏览

c++ - C++ OTL 看不到外部数据库更改

我有一个使用 OTLv4 连接到数据库的 C++ 程序。一切正常。我既可以将数据插入数据库,也可以从数据库中读取数据。

但是,如果我从另一个程序更改数据库中的数据,那么这不会反映在我的 C++ 程序中。例如,如果我使用 MySQL 工作台删除一个条目,C++ 程序仍然会看到该条目。我看到的数据是程序第一次登录数据库时出现的数据。

如果我每次进行查询时注销并登录,那么我将获得当前值,但这似乎不是很有效。类似地,如果我从 C++ 程序运行将修改数据库的查询,那么程序将开始查看当前值,直到该点为止。

对我来说,这感觉像是某种过度激进的缓存,但我不知道它在 OTL 中是如何工作的,除了可能我一无所知的流池之外,没有看到任何提及缓存。

我没有做任何花哨的事情。OTL 使用以下参数编译:

代码看起来像这样:

有什么我错过的,我需要做的一些配置吗?关闭某种缓存?也许我真的每次都需要登录和注销?

0 投票
0 回答
293 浏览

c++ - 使用 otl 崩溃更新数据库 blob

我正在编写一个简单的应用程序来纠正存储在数据库中的二进制 blob 中的某个字节。我使用 OTL 将我的 C++ 程序连接到数据库。读取数据和操作工作正常,但是当我想将它写回数据库时,程序就死了。

编码:

例如,我在 Sourceforge 进行了间谍活动。

我创建了一个获取数据的 otl_long_string。然后我创建一个 otl_stream 并将 SQL 语句和数据库连接放在一起。我使用 otl_lob_stream 将二进制数据提供给 otl_stream。将 blob 数据流式传输到 otl_stream 工作正常。但是当我将 id 交给流时,进程就会终止。

这是杀手级指令:

这是我交出的一个简单的 int 变量。效果很搞笑:进程并没有完全死掉,只是当前方法下面的调用栈没了。这是语句之前的调用堆栈:

这是指令的完整堆栈:

我试图调试otl。似乎 otl 发现它已获得所有必需的参数并开始运行。在那一刻,它崩溃了。

我使用的环境:
- OTL 4.0
- CentOS Linux,内核 3.10.0-327.22.2.el7.x86_64
- gcc-Version 4.8.5
- Oracle 11g

有人有想法吗?

0 投票
1 回答
470 浏览

c++ - 如何在除 main.cpp 之外的其他文件中包含 OTL 标头?

我在我的项目中使用 OTL。以下代码按预期工作:

但是当我在我的项目中添加另一个类时,比如说测试类,它已经#include "../OTLtest/otlv4.h" 包含在内。Visual Studio 2015 不会生成该项目。

如果我#include "../OTLtest/otlv4.h"TestOTL.cpp文件中删除该项目运行良好。

问题

我应该在 main.cpp 之外的文件中包含 OTL 标头吗?
如果我应该,那我该怎么做?

0 投票
0 回答
747 浏览

sql-server - 使用表类型参数调用存储过程

如何调用将表类型作为 OTL 参数的存储过程?

这是我的数据库的样子:

我试图用 C++ 编写代码,但我不确定如何创建列表参数或指定列表类型

更新:OTL Skuchin 的审计员在一封私人电子邮件中告诉我这是不可能的。“OTL 不支持这些。您可以做的最好的事情是通过常规插入将一堆行插入临时表/表变量中,并在您的 SP 中从中读取”

0 投票
0 回答
867 浏览

c++ - 在c ++中使用otl执行oracle存储过程

我有一个非常简单的存储过程,如下所示:

我使用下面的 sqlplus 执行它:

这是完美执行并在控制台上打印值。

现在使用 otl 我想调用这个存储过程。下面是功能。

我面临的问题是我没有得到这个 cout 打印正确的值。它的印刷垃圾。

任何人都可以帮我找出我在这里做的错误的事情。

0 投票
2 回答
184 浏览

c++ - 无法解析符号 otl_connect(otl_connect 类不包括)

我一直在尝试使用 OTL_ODBC 连接到 mysql。我在我的 Visual Studio 2010 项目中包含了 OTL 头文件 (otlv4.h),但是当我尝试使用时otl_connect,它显示错误“无法解析符号 otl_connect”,并且otl_connect该类显示为红色:

在此处输入图像描述

我可以知道我在哪里做错了吗?

0 投票
2 回答
179 浏览

c++ - C ++写入mongo,字符串字段在聚合管道中不起作用

** 快速总结:C++ 应用程序使用 OTL4 从 SQL 服务器加载数据,使用 mongocxx bulk_write 写入 Mongo,字符串似乎以某种方式被破坏,因此它们在聚合管道中不起作用(但在其他情况下看起来很好)。**

我有一个简单的 Mongo 集合,当我投影多个字段时,它似乎与聚合管道的行为不符。这是一个简单的文档,没有嵌套,字段只是双精度和字符串。

前 2 个查询按预期工作:

但是随后组合不会按预期返回两个字段。

它似乎特定于 ParametersId 字段,例如,如果我选择 2 个其他字段就可以了。

出于某种原因,当我包含 ParametersId 字段时,管道中的所有地狱都崩溃了:

数据库版本和数据:

更新:引用字段名称没有区别。我在 mongo.exe 命令行中输入了以上所有内容,但我在 C++ 应用程序中看到了相同的行为,但管道稍微复杂一些(投影所有字段以保证顺序)。

同一个应用程序实际上是首先创建数据 - 有谁知道可能出错的地方吗?全部使用 mongocxx 库。

** 更新 **

原来我对字符串的处理出了点问题。没有数据中的字符串字段,一切都很好。因此,不知何故,我已经弄坏了我的字符串,即使它们在其他方面看起来和行为正确,但它们不能很好地与聚合管道配合使用。我正在使用 mongocxx::collection.bulk_write 编写标准 std::strings,这些标准是通过 OTL4 标头从 sql server 加载的。当它们在内部存储时,中间有一个 strncpy_s 。我似乎无法创建一个简单的可重现示例。