问题标签 [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.

0 投票
1 回答
702 浏览

ruby-on-rails - has_many :通过多个数据库

好的,我开始用 has_many 编写这个需要帮助的内容:通过多个数据库并且仍然可以,但是我发现了一些奇怪的东西,也许我遗漏了一些东西。

所以我在做什么:

我有

导轨 3.2

1 个称为部署的 MSSQL DB 表

1 个称为报告的 POSTGRESQL DB 表

带有用于加入称为关联的 POSTGRESQL DB 表

关联的创建工作正常,我在表中填充了两个 ID,但是当我尝试获取数据时,我得到以下信息:

但这就是我觉得奇怪的地方,如果我反过来这样做:

这是我所期望的,所以有人告诉我为什么它不能以另一种方式工作?

0 投票
1 回答
197 浏览

ruby - 使用字母数字键时,sequel many_to_one 关联失败并显示“转换失败”

我正在使用现有的 MSSQL 数据库,我几乎无法控制它,因为它是由其他人构建的遗留应用程序。我试图在 one_to_many 关联中关联两个表。

这是定义关联的代码片段:

注意:这两个类在没有关联的情况下按预期工作......

但是,这是我尝试使用关联时得到的输出:

我不确定#10665277代表什么,因为无论roll_num我使用哪个,我都会得到相同的数字,所以我怀疑这是解决这个问题的关键,但现在我不知所措。

因为键是字母数字,我在定义我的关联时做错了什么?我在 SEQUEL 文档中找不到任何关于此的内容。

roll_history显然,我可以简单地从适当的位置收集所有记录roll_num,事实上,这就是我现在正在做的事情......但我想弄清楚为什么这个关联不起作用。

0 投票
2 回答
128 浏览

sql - 在数据库中存储增量值时,MS SQL 的 Rails 并发问题

我正在运行一个使用 rails 3.2.3 的应用程序,它位于使用 tinyTDS 进行连接的 MS SQL Sever 实例之上。该应用程序是多线程的,使用独角兽有 4 个进程。问题是应用程序使用数据库中的一个字段来存储一个需要递增的数字,以便为每个请求分配一个唯一的帐号。当我在本地运行应用程序时没有问题,因为它不是多线程的。

当我使用 unicorn 在我们的暂存环境中运行时,当我使用多个并发请求访问应用程序时,每 10 个左右的请求中就有 1 个返回一个重复的卡号。我尝试了以下方法。

旧代码

旧代码 + 事务

结果:没有效果

旧代码 + with_lock

结果: with_lock 未定义的错误

旧代码 + with_lock

结果:锁未定义的错误

0 投票
1 回答
698 浏览

ruby-on-rails - 在 has_many 中使用 uniq 函数时出现 TinyTDS 错误,通过

我目前正在运行:

我已经成功启动了一个 Rails 应用程序来访问远程 SQL Server(我不确定服务器的版本是什么)。我有一个模型,resource.rb具有以下关联:

该模型project_resource.rb具有以下内容:

这一切都很好。如果我有资源,我可以通过引用r获得所有与之关联的项目。但是,这个关联中有一些重复的项目,所以在我看来,我目前正在成功使用.rr.projectsr.projects.uniq

我想将其移至uniq如下has_many

以这种方式定义关联后r.projects,我尝试过的唯一成功的参考是:r.projects.count它确实为我提供了资源的唯一项目的准确计数r

但是,其他引用(例如r.projectssimple )会产生 TinyTDS 错误:

我正在寻找一些关于为什么会发生此错误的指导。谢谢。

0 投票
1 回答
658 浏览

ruby-on-rails - tiny_tds:分段错误

这类似于这个问题。但是,发布在该问题上的答案对我不起作用。我已经在我的 Mac 上安装了 freetds。我在我的 GemFile 中指定了以下内容。

我可以使用以下命令成功连接到 Azure SQL,

我也可以在 irb成功连接到 Azure SQL。

但是当我运行时, rake db:migrate 我得到以下错误,

紧随其后的是,

最后,以,

任何人都可以分享任何想法或建议吗?

更新:我的 Database.yml 看起来像,

我在 IRB 运行了以下内容,

并得到以下回复,

0 投票
3 回答
4222 浏览

gem - 无法`gem install tiny_tds` OS X Mavericks

错误

$ sudo gem 安装 tiny_tds

构建原生扩展。这可能需要一段时间...

错误:安装 tiny_tds 时出错:

错误:无法构建 gem 原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

检查 iconv.h 中的 iconv_open() ... 否

检查 -liconv 中的 iconv_open()... 是

检查 sybfront.h... 是的

检查 sybdb.h... 是

检查 -lsybdb 中的 tdsdbopen()... 否


家酿

即使经过

$ brew install freetds


手动安装

$ tar zxf freetds-stable.tgz

$ cd freetds-0.91

$ ./配置

$ 制作

$ sudo 安装


它似乎缺少以下文件/usr/local/lib/

  • libsybdb.so

相反,我有以下文件:

  • libsybdb.a
  • libsybdb.dylib
  • libsybdb.la

研究

0 投票
2 回答
2245 浏览

ruby-on-rails - 从heroku连接到sqlserver

我有一个远程 SQLSERVER 实例,我想从托管在 heroku 上的 rails 应用程序进行连接。我的宝石文件:

数据库.yml

生产.rb

但我在部署过程中遇到以下错误:

编写 config/database.yml 以从 DATABASE_URL 读取

似乎活动记录需要 sqlite3 但如果我有 tiny_tds 它应该使用 sql server。

在开发环境中一切正常。当然,我缺少一些东西。

更新

我已经设置了自定义 buildpack BUILDPACK_URL:https ://github.com/firmhouse/heroku-buildpack-ruby-freetds.git 和 DATABASE_URL 配置变量。

更新 2

在部署时制作一个 dbconfig var 的 pp 显示这个

似乎 heroku 覆盖了我的 database.yml 文件,有什么建议吗?

更新 3

我设置了 DATABASE_URL=sqlserver//user:pass@host:1433/database 这是错的吗?

0 投票
0 回答
259 浏览

ruby - 活动记录不返回列信息

我有一个非常简单的 ruby​​ 脚本,其中没有返回 columns_names。下面的代码返回正确的行数 10,000。但是,对列名称的请求会返回一个空数组 []。我的 gemfile.lock 显示我正在使用 activerecord (4.1.2.rc2)。

这很简单,但我无法确定我的问题。

= = 更新 = =

SqlServer 是 10.5 (2008 R2)。我将 active_record etal 更新为 4.1.4。没变。Model.attribute_names 返回一个空数组。当我切换到 sqlite3 适配器并提供一个虚拟 db 文件时,这些属性将返回 ok。

= = 几乎成功 = =

好的。我不明白数据库的详细信息。但强制输入“dbo”。以表名的前面返回列名。这只是我决定一时兴起尝试的东西。

坏消息是注释中引用的 find_by_sql 返回一个空数组 []。它不会像没有 dbo 那样返回 # 的空 Nil 实例数组。

我应该向哪里报告这种行为?谢谢。

记录器输出:

产量:

0 投票
1 回答
689 浏览

ruby - 无法推送应用 Heroku - 无法通过 Bundler 安装 tiny_tds

这是我的 Gemfile 的外观:

将应用推送到 Heroku 的输出:

在我的本地主机上运行完美。我尝试删除存储库并创建一个新存储库,或者重新启动 heroku。我如何在heroku上安装tiny_tds?怎么了?

编辑 14 年 7 月 25 日

发生此错误是因为您的 dyno 缺少 freetds 库。使用这样的库需要使用自定义 buildpack。互联网上有很多开源构建包。例如https://github.com/firmhouse/heroku-buildpack-ruby-freetds

tnx 到 Damien(Heroku 支持)

0 投票
1 回答
511 浏览

ruby - 无法在 os.x 10.9.4 上安装 tiny_tds

我正在尝试在运行 OS.X Mavericks 的 Mac 上安装 tiny_tds,但收到以下错误:

我正在使用以下命令安装 tiny_tds:

我已经研究过了iconv.h,没有iconv_open()方法。

顺便说一句,我正在使用 ruby​​ 2.0.0p451