问题标签 [4d-database]

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 回答
66 浏览

4d-database - 如何在动态 4D 形式的表单对象变量的“事件”属性内链接字符串数组中的事件后,在代码中捕获事件?

从 4D 对象的 4D 二进制形式(传统 4D 形式)的方法中很容易捕获事件,但在 json 动态形式中没有找到任何线索。

我已经尝试了一些 4D 命令(CALL FORM、CALL WORKER 或 POST OUTSIDE CALL),并在我处理该项目方法内部事件的循环内的新进程中并排安装表单的项目方法。但无法绕过它。此外,我在 kb 或 4D 博客或任何地方都找不到任何解决方案/示例。

因此,任何示例或数据库模板都会更有帮助。

0 投票
1 回答
146 浏览

4d-database - 无法使用 4D 更改默认主页

我正在尝试按照本教程从 4d 服务器网络开始。 http://doc.4d.com/4Dv16/4D/16/Serveur-Web.200-3246839.fe.html

我禁用了默认主页index.html(甚至删除了WebFolder文件夹中的实际文件),然后在 On Web Connection 方法中添加了这几行

但是当我转到localhost:8080/时,我仍然得到 4d 默认页面, 然后我发现该方法甚至没有被调用,除非我在 url 中添加一些东西(比如 localhost:8080/something)

0 投票
1 回答
86 浏览

4d-database - 如何以编程方式拒绝 4d v17 上的新连接?

是否有类似于WEB STOP SERVERSTOP SQL SERVER但拒绝我的 4d 服务器上的新连接的命令?

0 投票
1 回答
119 浏览

4d-database - HTTP Get 命令在 (GSM/WCDMA) 加密狗网络中不起作用。执行时给出 HTTP 服务器无法访问的错误

4DV16R6 HTTP Get 命令在 (GSM/WCDMA) 加密狗网络中不起作用,但它在以太网/Wifi 网络上平稳运行。在加密狗网络中,执行 HTTP Get 命令时会出现“HTTP server unreachable”错误。

我还在同一个(加密狗网络)中测试了 4DV16R6 的 IC TCP/IP 命令(即 TCP_Open,TCP_Send,...) - 它工作正常。

另外,我还有机会在 4DV17 到最新的 R2 版本上进行测试——同样的问题(HTTP 服务器无法访问错误)。但在 4DV15 或所有以下版本中 - 它工作正常。

似乎从 4DV16 开始,一些升级一定是导致它的问题......?

除此之外,我尝试在执行 HTTP Get 命令时进行数据包嗅探——奇怪的是,在将任何数据包发送到目标之前会出现问题。服务器,即甚至没有数据包发送请求,但弹出错误消息“HTTP 服务器无法访问”。

有人可以弄清楚发生了什么吗?

为了测试,我使用了简单的 HTTP Get 代码:

C_TEXT(URLPic_t) URLPic_t:="http://www.4d.com/sites/all/themes/dimention/images/home/logo4D.jpg" ARRAY TEXT(HeaderNames_at;0) ARRAY TEXT(HeaderValues_at;0) C_PICTURE( Pic_i) $httpResponse:=HTTP Get(URLPic_t;Pic_i;HeaderNames_at;HeaderValues_at)

更新:让我解释一下我对此的一些研究,以便帮助大家了解正在发生的事情。

我还在各种网络(比如以太网、WiFi 甚至移动热点)上对此进行了测试。HTTP Get 在所有这些网络上都可以正常工作,因为它们都有自己的物理(mac)地址。但是(GSM/WCDMS)加密狗网络中的问题是它没有任何物理(mac)地址,因为这是一个基于蜂窝的设备(调制解调器),而不是它有一个 IMEI 号码。像任何其他电话或调制解调器一样。

所以我的假设是 HTTP Get 命令在基于蜂窝的设备网络上失败(或在上述非蜂窝设备上正常工作)。

我想知道是否有人可以在任何基于蜂窝的设备网络上尝试此操作并查看结果。

此外,从 PC 的热点使用手机的网络(作为 WIFI)与您使用可以成功运行的直接 WIFI 网络的情况完全相同。由于 PC 使用启用了其 WIFI 接口(具有物理 MAC 地址)来传输数据包,因此也可以正常工作。

虽然这只是我发现的一个假设,但可能是导致此问题的其他原因(不确定)?

我希望现在这将提供一些关于我面对来自 4Dv16 和更高版本的任何 HTTP 客户端命令(比如 HTTP Get 或 HTTP 请求)的真实场景的一些细节。

0 投票
1 回答
153 浏览

ssl-certificate - 4D SSL 客户端证书

我试图找到一种将客户端 ssl 证书集成到 4d 服务器的方法,以便将 SOAP 调用发送到 Web 服务。到目前为止,我只遇到过关于服务器端 ssl 证书教程的教程。4D服务器版本为16.3。

0 投票
1 回答
170 浏览

wakanda - 无法通过 Wakanda 4D Mobile 连接到 4D 服务器

我有一个启用 4D Mobile 的 v16 数据库: 在此处输入图像描述

我有 4D 移动许可证: 在此处输入图像描述

网络服务器正在运行,并且“Total HTTP Hits”计数器在 4D 移动连接尝试失败期间递增: 在此处输入图像描述

我可以通过在该机器上运行的 4D Mobile 连接到其他 V16 数据库。

我正在使用有效的用户名和密码: 在此处输入图像描述

我的 ~/Documents/Wakanda/license/license.key 中有 Wakanda 2.6 的有效许可证(这必须是真的,因为这个 Wakanda 可以连接到其他 V16 数据库)

我错过了什么,或者我可以做些什么来了解错误发生的原因?我检查了 4D 服务器网络日志 (CLF) 和 Wakanda 解决方案日志,其中显示:

2018-10-30 13:24:08 [wakanda.PlannerTool4] INFO - Users and groups directory opened 2018-10-30 13:24:09 [wakanda.PlannerTool4.backend.dbmg] ERROR - [1595] The "Inventory" remote datastore class cannot be created locally, task #775 2018-10-30 13:24:09 [wakanda.PlannerTool4.backend.dbmg] ERROR - [1024] Cannot open structure of database backend, task #775 2018-10-30 13:24:09 [wakanda.PlannerTool4.backend.iasv] ERROR - [1035] Cannot open the datastore, task #775 2018-10-30 13:24:09 [wakanda.PlannerTool4.backend] WARN - "backend" project opened with errors 2018-10-30 13:24:09 [wakanda.PlannerTool4.iasv] ERROR - [1013] Cannot open 'backend' project, task #775 2018-10-30 13:24:09 [wakanda.PlannerTool4.backend] INFO - "backend" project closed 2018-10-30 13:24:09 [wakanda.PlannerTool4] WARN - "PlannerTool4" solution opened with errors 2018-10-30 13:24:09 [wakanda.PlannerTool4] INFO - "PlannerTool4" solution closed

编辑:Web 身份验证、Web 连接和 4D 移动身份验证的数据库方法都不存在。并不是说它们是空白的,我知道这可能是一个问题。它们还没有被创建。

0 投票
2 回答
126 浏览

wakanda - 4D 中 __STAMP 列的目的是什么?

有两列是 __KEY 和 __STAMP 由 4D 使用。__KEY 是主键。

想了解 __STAMP 列在 4D 中的用法和行为吗?

0 投票
1 回答
563 浏览

powershell - 64 位 PowerShell 调用 32 位 DLL

在 Windows 10 计算机上,我使用 PowerShell 脚本从第 4 维 (4D) 数据库调用 QuickBooks。该脚本调用QBXMLRP2.dll32 位 COM 对象与 QuickBooks 2019 对话。据我了解,如果您使用 64 位版本的 PowerShell 调用 32 位 dll,它将失败,反之亦然。但是,根据我使用的是 32 位还是 64 位版本的 4D,我会得到不同的结果。这对我来说毫无意义。这是我的测试结果:

关于为什么 64 位版本的 PowerShell/32 位 dll 与 32 位版本的 4D 一起工作的任何想法?我真正想要的是让它与 64 位版本的 4D 和 PowerShell 一起工作。

回答问题...这就是我正在做的事情。4D 首先创建一个.ps1脚本文件并将其保存到磁盘,然后在外部进程中启动 PowerShell。例如,这将启动 64 位 PowerShell(Windows 10)并且 PowerShell 将执行之前保存的脚本:

PowerShell 脚本如下所示:

据我了解,一旦 PowerShell 启动,4D 就不存在了。4D 不与 dll 交互。都是 PowerShell/dll (COM)/QuickBooks。

0 投票
1 回答
256 浏览

odbc - 如何通过 ODBC 从 SQL Server 更新 4D 记录?

我在 4D Server 中运行了一个 4D 数据库,并运行了 4D Sql Server。在另一台 Windows 机器上,我为它设置了一个 ODBC 数据源。在第二台机器上,在 SQL Server Management Studio 中,我使用该 ODBC 数据源创建了一个链接服务器。我可以使用 OPENQUERY 通过该链接服务器成功查询 4D 记录,但我无法更新或删除那些相同的 4D 记录。

这将输出预期的 4D 数据:

SELECT * FROM OPENQUERY([4DTest2], 'SELECT UserID, FirstName, LastName FROM [Users] WHERE UserID = 23990')

这会出现错误:

UPDATE OPENQUERY([4DTest2], 'SELECT UserID, FirstName, LastName FROM [Users] WHERE UserID = 23990') SET FirstName = 'Doug'

错误是:

链接服务器“4DTest2”的 OLE DB 提供程序“MSDASQL”返回消息“数据提供程序或其他服务返回 E_FAIL 状态。”。消息 7343,级别 16,状态 4,第 2 行链接服务器“4DTest2”的 OLE DB 提供程序“MSDASQL”无法更新表“[MSDASQL]”。

0 投票
1 回答
174 浏览

4d-database - 在 4D Write Pro (4D v17 R5) 中以编程方式设置文本样式

我正在尝试在同样以编程方式创建的 4D Write Pro 文档中以编程方式设置两种文本样式,但最后一个样式集是整个文档唯一假定的样式。

我创建了一个新的 4D Write Pro 文档 (wpDoc),为整个文档创建了一个范围 ($range),并使用“WP Set Attributes”来格式化文本。

它应该看起来像:

名称:样本公司名称

但它显示如下:

名称(纯文本):示例公司名称(纯文本)