问题标签 [faircom-db-sql]

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 投票
1 回答
716 浏览

php - FairCom c-tree ODBC 连接 - PHP

我在 Windows ODBC 中配置了一个用户 DSN:

我总是收到这个错误:

想知道用 PHP 连接到该数据库的正确方法是什么。谢谢!

0 投票
0 回答
341 浏览

odbc - 将数据从 FairCom c-tree 数据库 (ODBC) 导出到 MS Excel 时出错

我正在尝试使用 FairCom c-tree 数据库的 ODBC 驱动程序将数据从旧的 .dat 文件传输到 MS Excel。数据已传输到 Excel,但在导入之前,我收到了两条警告消息,似乎部分数据丢失了。

有谁知道我收到消息的原因:

"SCHEMAFieldLength: field length for column #81 is 120, which is larger than record buffer. Using length 93 instead."

在那之后:

"WARNING! Field not found for key segment(2, 4, 1). Possible DODA problem. Check alignment.

我已经尝试了 ODBC 驱动程序的所有选项。可能是数据库损坏或我遗漏了什么?

0 投票
1 回答
68 浏览

mysql - 根据 table1 结果的条件从单行连接 2 个或 3 个表创建多个结果?

首先让我说是的,这是一种存储数据的可怕方式,其次,这不是我的错 :) 我正在尝试与第 3 方数据库集成以提取存储在 3 个表中的信息,这确实应该已经在两个 AND 中存储,其中表 2 具有多对一关系。既然不是这样,我有一个难题要分享。

表一包含可以存储多个值的行。每行都有codeid1- codeid20。这些列可能包含一个值或 0(它们从不null)。它们也有一个对应的codetype1-codetype20将是 0 或 1。

如果codetype1等于 0,我们转到表 2 并description从匹配项中进行选择table1.codeid1=table2.id。如果codetype1等于 1,我们现在必须查看 table3 并找到位置table1.codeid1=table3.id,然后匹配table3.table2id=table2.id并返回描述。

下面是数据结构:

我要寻找的结果如下所示:

昨晚我开始与某人合作,但我错过了未集成 table3 的情况的部分复杂性。就像我说的,有趣的谜题......这给了我前两张桌子之间的关系,但我不确定如何在第三张桌子上工作。

数据库是通过ODBC连接的Faircom C-Tree DB,一般兼容Mysql语句,包括UNION、WITH、INTERSECT、EXISTS、JOIN……没有PIVOT功能。

https://docs.faircom.com/doc/sqlref/sqlref.pdf

0 投票
0 回答
165 浏览

c# - 从没有 ForEach 循环的相邻单元格获取 DataTable 值?

我正在解决这个问题:根据 table1 结果的条件,从连接 2 个或 3 个表的单行创建多个结果?虽然我希望我能接受Strawberry's建议,但我不能,所以我现在尝试在 C# 中而不是通过 DB 做更多事情,但也试图聪明地了解我使用了多少 CPU。

对于规模,table1 可能有 50,000 条记录,codetype其中包含必须评估的 20 个字段,然后才能匹配到 table2,它有大约 2,000 行,或者 table3,它可能有 200,000 行。为了避免敲击数据库,我将在内存中存储可能的内容,尽可能按日期限制结果,但我想避免每 20 个代码类型匹配有 2,000 个 foreach 循环。

首先,我从 table2 获得所需的结果,并将它们加载到 C# DataTable 中,存储为名为的变量descriptionLookup

表 3 为lookupTable

做一个简单的(不显示所有周围的代码,只是相关的):

然后我将其分配给调用该函数的变量。现在我必须处理table1:

使用 foreach 行,我需要评估每个 codetype 列是否为 1 或 0。当 codetype=1 时,我需要获取关联的 codeid,然后从我保存在内存中的数据中查找descriptionLookuptable2id是匹配idinlookuptable然后使用它来查找 table2 中关联字段的描述。

如果 codetype 为 0,我只需要匹配codeidtable2 中的相关描述字段。

我正在研究如何布局,我能想到的只有:

我没有尝试运行上面的代码,所以那里可能有一两个问题,但它得到了使用foreach (var row3 in idLookup). 另一种方法似乎是进行数据库查询,但这似乎比仅仅遍历内存中的内容更密集,但似乎有一种更好的方法让我错过了如何获取idtable2id不使用 foreach。

为了使它成为历史上最长的问题:) 这是我到目前为止的 SQL:

只要没有任何codetype具有 1 的记录,这将非常有效,否则将跳过该记录。可能不会有任何一行都codeid / codetype被填满,也不会出现codetype全盘为 1 以匹配此查询的逆查询的情况。

0 投票
2 回答
478 浏览

tosca - 需要用于 Tosca 自动化工具的 Ctree Faircom 连接字符串

我们正在尝试在 Tosca 和 ctree faircom 数据库之间建立连接,但无法建立连接。

收到以下错误消息:

'无法使用“连接字符串建立连接:DRIVER=CTREE ODBC Driver;UID=admin;PWD=ADMIN;Database=ctreeSQL;Host=local host;Service=6597;

Ctree 版本:10.3.1

0 投票
1 回答
79 浏览

mysql - 用于选择字段名称的循环?

我有一个令人讨厌的、令人讨厌的数据布局,我不得不使用它。我终于得到了一个使用 C# 的工作查询和一个 for 循环,一遍又一遍地执行相同的查询,但调整了哪些字段被调用,但现在我想知道是否可以使用 while 循环来做到这一点。我收到一个错误,我不确定是因为我使用 Faircom / C-tree 作为数据库,还是我的查询有问题。我通常是 Mysql 用户。

该表有 20 个我关心并希望提取到 csv 列表中的字段。它们是 codetype1-codetype20,我希望它像value1, value2, value3...现在这样我一次将它们全部取回。麻烦的是 codetype1 依赖于另一个字段来确定我去哪里查找该代码的信息,这就是 case 语句的原因。

我从来没有使用过while循环,虽然我有点理解我应该选择它来进入某些东西,我是否需要创建一个临时表,或者它可以全部存储在内存中直到循环结束并返回.

值得一提的是,当您将 SELECT 替换为@index连接格式时,整个 SELECT 查询都可以在 C# 中工作" . index . "

0 投票
1 回答
37 浏览

mysql - 子数学标准时选择父记录

我试图将用户返回的结果限制为“最近”的结果,但在用户有父母的情况下,我还需要返回父母。

http://sqlfiddle.com/#!9/91db19

在这种情况下,我想返回 Alan、John 和 Bill,但不返回 Jerry,因为 Jerry 在times表中没有记录,他也不是有记录的人的父母。我对如何处理卡尔犹豫不决,我不介意为他获得结果,但我不需要它们。

我正在用数十万条记录过滤成千上万的用户times,因此性能很重要。一般来说,我有大约 3000 个唯一 id 来自times可能是一个id,或者一个parent_id

以上是我正在尝试做的一个精简示例,完整的示例包括更多连接和案例语句,但一般来说,上面的示例应该是我们使用的,但这里是我正在使用的查询示例(完整查询将近 100 行):

此示例适用于 Faircom C-Tree 数据库,但我还需要在 Sybase、MySql 和 Pervasive 中实现类似的解决方案,因此只是想了解我应该做什么才能获得最佳性能。

基本上我需要做的是以某种方式让RIGHT JOIN用户也包括父母。