问题标签 [datasnap]

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 投票
4 回答
4227 浏览

jquery - 如何使用 JQuery 读取 JSON 结果中的 Fields:{} 内容?

我对整个 JSON 和 JQuery 很陌生,我正在尝试读取来自 Delphi datasnap 的 JSON 结构,例如:

如何使用 JQuery 阅读它,更具体地说是 Fields:{...} 内容?

编辑 :

这是我试图做的功能

0 投票
2 回答
2075 浏览

json - 将 JSON 对象插入数据库

我正在 Delphi XE2 中构建 DataSnap 服务器,但我无法找出将客户端发送给我的 JSON 对象插入数据库的最佳方法。

这是我收到的对象的格式:

我找到的解决方案是以下代码

之后,我会将我的查询组件制成一个 JSON 对象并返回给我的客户端,但问题是,这将是一个包含密集表的大型应用程序,因此每次我想插入一些东西时都会执行“SELECT *”不理想。做这个的最好方式是什么?

0 投票
0 回答
371 浏览

delphi - Delphi XE Datasnap:动态加载 DSServerModule 时缺少服务器方法

我有 Datasnap Server (DBX),它在启动时扫描目录,加载 BPL(包含 DSServerModules),然后注册它们以使它们可以从远程使用。

对于使用原始类型(例如整数、字符串等)的函数和过程,这一切都很好,但是从客户端我看不到任何具有“结构化”变量的方法。

例如,我尝试添加一个返回TJSONValue的函数(正如我在示例中看到的那样),但该方法对客户端不可见。

奇怪的是,如果将 DSServerModule 静态添加到项目中,则相同的功能可用(并且有效)。

任何猜测?

我没有附加任何代码,因为它是一个相当大的项目的一部分。如果需要,我会提供一个小例子。

干杯,米尔科

0 投票
1 回答
693 浏览

objective-c - RAD XE2 DataSnap - 在 iOS 的 Objective-C 中调用方法

我在 Delphi 中编写了一个 DataSnap 服务器,现在正在用 Objective-C 编写一个 iPhone 客户端应用程序来使用它的数据。我只是通过调用一个简单的方法来返回一个字符串开始简单 - 见代码:

“ReverseString”方法应该返回文本“eybdooG”,但它只是返回空白,而且我在 DataSnap 服务器端看不到任何连接活动——就好像根本没有调用该方法一样。有趣的是,如果我没有设置 DSRESTConnection 的 UserName 和 Password 属性,那么它会尝试连接到服务器并且我可以看到活动,但是连接失败并显示“401:未经授权”,因为我的 DataSnap 服务器需要用户凭据。

是否有人使用 Objective-C 成功连接到 DataSnap 服务器,无论是否使用用户凭据?

抱歉,如果我错过了一些明显的东西,只使用 Xcode 2 天,所以仍然找到了我的脚。

0 投票
1 回答
1001 浏览

delphi - 如何将大文件从 RadPHP 服务器发送到 Delphi XE datasnap 服务器

将大型(<50MB)文件从 PHP 服务器(用 RADPHP 编写)发送到 Delphi Datasnap 服务器(Delphi XE)的最佳方法是什么。由于连接问题,我更喜欢使用 HTTP(S),但这对我来说是新领域。

PHP 服务器接受用户浏览器上传的文件 OK 并可以对其进行编码(base_64)。但是a)将它放入一个字符串中,这不是处理它的最佳方式b)DataSnap服务器在接收到字符串时崩溃,并出现“超过最大行长”

Datasnap 服务器有 4 个组件 - TDSServer、TDSServerClass、TDSHTTPService 和 TDSAuthenticationManager。RADPHP 服务器使用一个 DSRestConnection 组件。

0 投票
4 回答
2273 浏览

delphi - 在等待 DataSnap 时更新客户端 UI

TSQLConnection我在 Delphi XE2 中创建了一个 MDI Delphi 应用程序,它通过组件 ( driver = datasnap)连接到 DataSnap 服务器。在设计时右键单击TSQLConnection可让我生成 DataSnap 客户端类 (ProxyMethods)。

我的目标是在客户端有一个经过的时钟 [0:00],它显示 DataSnap 请求需要多长时间才能提供服务,每 1 秒更新一次。我尝试过但不起作用的两种方法是:

方法#1

TTimer在执行 ProxyMethod 时使用1 秒间隔更新经过的时间时钟。我在调用 ProxyMethod 之前启用了计时器。当 ProxyMethod 运行时,OnTimer事件不会触发——代码中的断点永远不会被命中。

方法#2

与方法 #1 相同,除了计时器是TJvThreadTimer. 当 ProxyMethod 运行时,该OnTimer事件会触发,但OnTimer直到 ProxyMethod 完成后代码才会执行​​。这很明显,因为OnEvent在 ProxyMethod 完成后,代码中的断点会迅速连续命中——就像OnTimer事件都已在主 VCL 线程中排队一样。

此外,在运行缓慢的 ProxyMethod 时单击客户端应用程序上的任意位置会使应用程序看起来被挂起(标题栏中出现“未响应”)。

我认为最好的解决方案是将 ProxyMethods 的执行移至单独的线程。但是,必须有一个现有的解决方案——因为相关的挂起应用程序问题似乎是一个常见的投诉。我只是找不到解决方案。

任何建议表示赞赏。否则,我将辞职,将 ProxyMethod 执行移到单独的线程中。

0 投票
2 回答
351 浏览

string - 以零开头的 Datasnap 字符串参数被修剪为零

我的 DataSnap 服务器中有一个由 GET 请求触发并接收单个字符串参数的过程,但每当客户端发送由任意数量的零后跟任意数量的数字(即 01、002、0047、等),不知何故前导零被切断,我也需要这些。

我一直在努力调试 Delphi,试图找出发生这种情况的位置,以及它是否发生在服务器端,但我没有遇到任何事情。有任何想法吗?

0 投票
3 回答
29501 浏览

sql - Delphi:访问 JSON 数组中的 JSON 对象

我有一个 JSON 对象,我们将其命名为 jObject,如下所示:

如您所见,它包含两对,其中一对是在这种情况下具有三个对象的数组(对象的数量是动态的)具有多个“键:值”(这些不会变化,始终是相同的 5 个字段),我想将其插入到 SQL 数据库中,“键”是列,“值”是字段。问题是,我如何单独访问每个对象?

代码方面,我所做的是通过将包含该数组的对放入 jPair 中来提取它

然后捕获数组

(另外,作为奖励,当我评估 jArray.Size 时,结果是 6226004。什么?)

0 投票
0 回答
416 浏览

delphi - 通过 3G 调用 DataSnap 服务的 HTTP“错误请求”错误

我刚刚发现一个错误,当将一个特别大的字符串作为参数传递给该方法时,我的 DataSnap 客户端正在接收调用服务器方法。该调用会导致带有“Bad Request”的 DBXException 错误。我的客户端在 Android 手机上运行,​​该错误仅在使用 3G 时发生,在 Wi-fi 上一切正常。其他所有调用都可以正常工作,只是这个调用带有大参数。

使用 3G 网络时,对底层 HTTP 调用的大小是否有限制?我的 DataSnap 服务器是用 Delphi XE2 构建的,我正在使用适用于 Android (Java) 的 DataSnap 移动连接器框架。

更新:我正在测试它的手机在 3 网络(三)上。从那以后,我在另一部 O2 上的手机上尝试过它,这在 3G 上运行良好。问题可能是特定于移动网络的吗?

任何帮助表示赞赏,

乔纳森

0 投票
2 回答
373 浏览

multithreading - 从其数据中获取会话

我的应用程序中有一个主线程会话,该会话中有我想要访问的有价值的数据。通常我只是使用该TDSSessionManager.GetThreadSession方法获取会话,但现在我必须在主线程之外访问此会话。

我想也许可以通过某种方式引用其中的一些数据来获得我的会话,但我不知道如何。有什么方法可以从你所在的线程之外的其他地方获取会话?