问题标签 [tiny-tds]
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.
ruby - 来自 SQL Server 的日期时间在 Ruby 中解析不正确
我正在使用 Sinatra 编写一个将由 Android 应用程序使用的 Web 服务。Microsoft SQL Server 中使用的数据库。
存储过程调用是在 Ruby 中进行的:
GetTraces 存储过程返回一个包含日期时间对象的列。当服务器和客户端存在于同一时区时,将返回正确的结果。当服务器和客户端在不同的时区时,返回不正确的结果。
例如,如果我使用 2013-10-16T06:1500Z 作为开始日期,使用 2013-10-16T09:1500Z 作为结束日期,那么我应该得到该范围内的日期时间。当客户端和服务器位于不同的时区时,我得到以下信息:
我手动测试了存储过程,它返回了正确的结果。Ruby 中显示的结果不是存储过程返回的结果。Activerecord 和/或 Tiny tds 似乎正在错误地解析日期时间。
以下是手动执行存储过程时返回的日期时间示例:
我已经用以下内容覆盖了 ActiveRecord,以解决以前从 SQL Server 解析日期时间的问题。我在网上找到了这个解决方案。
对此问题的任何见解表示赞赏。谢谢!
ruby-on-rails - TinyTDS:偏移量从选择中删除聚合函数
我有以下查询
这给了我以下错误
TinyTds::Error: 列 'User.created_at' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中:
EXEC sp_executesql N'SELECT TOP (10) [__rnt].* FROM (SELECT ROW_NUMBER() OVER (ORDER BY type ASC) AS [__rn], first_name, created_at FROM Users GROUP BY first_name ) AS [_ rnt] WHERE [ _rnt] .[_ rn] > (10) 按 [ _rnt].[__rn] ASC' 排序
ActiveRecord::StatementInvalid: TinyTds::Error: 列 'User.created_at' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。:
EXEC sp_executesql N'SELECT TOP (10) [__rnt].* FROM (SELECT ROW_NUMBER() OVER (ORDER BY type ASC) AS [__rn], first_name, created_at FROM [Users] GROUP BY first_name ) AS [_ rnt] WHERE [ _rnt].[_ rn] > (10) 按 [ _rnt].[__rn] ASC' 排序
为什么在 created_at 上生成的上述查询没有 MAX?
当我在没有 的情况下运行相同的查询时offset
,一切都很好。以下查询运行良好,并且在 created_at 上保留了 MAX
此外,这只是 sql server 的问题。如果我在 postgres 或 mysql 中运行相同,它工作正常。
这是 TinyTDS 的已知问题吗?我怎么解决这个问题?
更新:
我找到了导致我的问题的线路
lib/arel/visitors/sqlserver.rb(line 373)
(activerecord-sqlserver-adapter-3.2.10)
ruby-on-rails - SqlServer:从字符串转换为唯一标识符时转换失败
当没有取消的用户时,上面的查询给了我以下错误。
ActiveRecord::StatementInvalid: TinyTds::Error: 从字符串转换为唯一标识符时转换失败。: EXEC sp_executesql N'SELECT [users].* FROM [userss] WHERE (user_id not in (N''''))'
我该如何解决?
ruby-on-rails - Ruby on Rails - 带有 Windows 7 的微型 TDS
我在 Windows 7 64 位中使用 Tiny TDS。
配置:
数据库.yml
在导轨控制台中
我不知道为什么连接被关闭!
ruby - 使用子查询订购 Sequel 数据集并使用偏移量限制
在尝试根据子查询的结果对数据集进行排序时,我遇到了一个奇怪的问题。在我尝试添加带有偏移量的限制之前,它工作正常,然后我收到一条错误消息,指出排序列名称无效。这是一个显示问题的调试器会话(这是一个有点愚蠢的查询,我只是想尽可能地简化真正的查询,同时仍然得到错误)。
首先我只是创建一个简单的选择查询,带有一个子查询
...到目前为止一切都很好,让我们添加一个限制
仍然可以,但是如果我们将限制更改为具有偏移量...
对我来说似乎是一个错误,但我会很高兴发现我只是愚蠢。知道出了什么问题吗?
我正在使用续集 4.3.0 和 tiny_tds 0.5.1。
ruby-on-rails - 尝试从 SQL Server 访问查询结果时出现“参数数量错误(1 为 2)”
我正在使用 Ruby 2 和 Rails 4 并尝试使用 Tiny_TDS 和 activerecord-sqlserver-adapter gems 连接到 sql server 实例。它似乎可以毫无问题地连接到数据库,但是当我尝试访问返回的数据时,我收到一条错误消息:
这是我第一次尝试使用 Rails 访问 sql server,所以我可能做错了。有人知道我在搞砸什么吗?
我的控制器中有这个调用:
在我看来,我有以下内容(如果我从视图中删除它,页面加载正常):
eperson.rb 模型文件:
在我的 database.yml 中,我定义了“Other_db”,如下所示:
我的 gemfile 有以下内容:
下面是终端窗口中的输出
从日志/开发:
ruby - 从数组中删除方括号?
我有一个试图加载到 SQL 语句中的数组。当我编译 SQL 语句并包含数组时,它还会将[]
括号放入字符串中,我需要删除它们才能将其插入到我的数据库中。
这是我的代码:
电流输出:
期望的输出:
ruby - Ruby 代码在 Rufus 调度程序中抛出异常
我正在 debian linux 上执行一个控制器,它在无限循环中执行功能。除此之外,我正在使用 Rufus Scheduler 来安排一个在特定时间后运行的函数,比如说 1 分钟。一旦函数在 Rufus 中正确执行,我会收到以下错误
ruby - 如何在循环中使用 Ruby Sequel 和 Tiny_TDS 保持与 SQL Server 的持久连接
我有一个需要在服务器上连续运行的 ruby 脚本。我已经使用 daemon gem 对其进行了守护,并且在我的脚本中我让它在无限循环中运行,因为 daemon gem 处理启动我的脚本的进程的启动和停止。在我的脚本中,我首先使用 Sequel gem 和 tiny_tds 设置我的数据库实例。像这样:
然后我有一个loop do
就是我的无限循环。在里面,我测试看看我是否有一个连接DB.test_connection
,然后我每隔一秒左右查询一次数据库,以检查是否有新的内容使用如下查询:
然后在我的逻辑结束时,就在我再次循环之前,我这样做:
所有这一切都很好用了大约一个小时到一个半小时,一切检查表,执行逻辑,删除行等,然后它死了并给了我这个错误消息TinyTds::Error: Adaptive Server connection timed out
我的问题,为什么会这样?我需要以不同的方式重新格式化我的代码吗?为什么 DB.test_connection 不做它宣传的事情?上面的文档说它检查连接池中的连接,如果找到它就使用它,否则创建一个新连接。
任何帮助将非常感激
ruby - TinyTDS 未定义符号 dbsetluser
在过去的几天里,我一直在为这个问题而苦苦挣扎,但我没有想法。我正在开发一个有些过时的应用程序,现在我需要在其中添加对 SQL Server 的支持。我已经设法让它在本地工作(Ubuntu 12.04),但是当我尝试在 Ubuntu 8.04 实例上的 Rackspace 上重现它时遇到以下错误:
我正在运行的堆栈是:
- Ubuntu 8.04
- 稀土 1.8.7-2012.02
- FreeTDS 0.92.377(从源代码编译)
- TinyTDS 0.6.0.rc1(也试过 0.5.1)
我可以使用 isql 成功连接到 SQL Server,这让我认为 FreeTDS 和 ODBC 设置正确。但是每当我尝试从 Ruby 与 TinyTds 连接时,我都会收到上述错误。
我曾尝试在 Google 群组中发布 rails-sqlserver-adapter 的帖子,但论坛似乎已被审核,我的问题尚未出现。
我相当肯定这与 TinyTds 找不到库(我认为应该在某处可用)有关,但我不知道如何实现这一点。
作为最后的手段,我将使用 12.04 从头开始构建服务器,但我更愿意让现有系统正常工作。
更新:
根据@Casper 的建议,我已尝试与之建立联系odbc
,但现在出现了不同的错误
即使我可以成功连接 isql 和 sqsh。
谢谢