Tag: sql server

ActiveRecord :: StatementInvalid:ArgumentError:负字符串大小(或大小太大):SELECT * FROM

我在尝试在内存中实例化太多对象时遇到此错误。 这是一个Rails 2.3.x应用程序,以SQL Server作为数据库。 >> Shop.count => 14111 >> Shop.all ActiveRecord::StatementInvalid: ArgumentError: negative string size (or size too big): SELECT * FROM [shop] from /Users/lunks/.rvm/gems/ree-1.8.7-2011.03@ums/gems/activerecord-2.3.14/ lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log’ from /Users/lunks/.rvm/ gems/ree-1.8.7-2011.03@ums/gems/activerecord-sqlserver-adapter-2.3.24/lib/active_record/connection_adapters/sqlserver_adapter.rb:1004:in `raw_select’ from /Users/lunks/.rvm/gems/ree-1.8.7-2011.03@ ums/gems/activerecord-sqlserver-adapter-2.3.24/lib/active_record/connection_adapters/sqlserver_adapter.rb:965:in `select’ from /Users/lunks/.rvm/gems/ree-1. 8.7-2011.03@ums/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache’ from /Users/lunks/.rvm /gems/ree-1.8.7-2011.03@ums/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/query_cache.rb:62:in `select_all’ from /Users/lu nks/.rvm/gems/ree-1.8.7-2011.03@ums/gems/activerecord-2.3.14/lib/active_record/base.rb:665:in `find_by_sql’ from /Users/lunks/.rvm/gems/ree-1.8.7-2011.03@ums/gem s/activerecord-2.3.14/lib/active_record/base.rb:1582:in `find_every’ f rom /Users/lunks/.rvm/gems/ree-1.8.7-2011.03@ums/gems/activerecord-2.3.14/lib/active_record/base.rb:619:in `find’ […]

Ruby on Rails ActiveRecord数据库迁移失败

我有一个预先存在的sqlserver数据库’MyDatabase’填充了数据。 在这个数据库中,我有两个模式,’dbo’和’Master’。 dbo是默认架构并包含表: 所有者 地点 主模式包含表: 银行 区 表OWNER,LOCATION,BANK和ZONE包含多个属性。 我初始化了一个RoR服务器,并validation了安装了适当的gem(activerecord,tiny_tds,activerecord-sqlserver-adapter),以及database.yml中提供的正确信息,以便建立连接。 我~~能够连接到数据库。 我能够添加和删除表。 对我来说不寻常的是,当我运行rake db:migrate ,只有来自dbo架构的属性会在我的RoR服务器的schema.rb文件中自动初始化: ActiveRecord::Schema.define(:version => 20131014210258) do create_table “BANK”, :id => false, :force => true do |t| end create_table “LOCATION”, :id => false, :force => true do |t| t.string “VarA”, :limit => 50 t.string “VarB”, :limit => 50 t.decimal “VarC”, :precision => 28, […]

Rails SQL注入:这段代码有多脆弱?

我正在尝试理解SQL注入。 看起来人们可以变得非常有创意。 这让我想知道我正在制作的基于搜索的rails webapp。 假设我只是将用户输入的信息直接输入到我的SQL查询的“where”语句中。 允许这样做可以对我的数据库造成多大的伤害? def self.search(search) if search includes(:hobbies, :addresses).where(search) else self.all end 所以基本上,无论用户在主页上的搜索栏中输入什么,都可以直接进入’where’语句。 有效“搜索”的一个例子是: “hobby LIKE ? OR (gender LIKE ? AND hobby LIKE ?)”, “golf”, “male”, “polo” 是否仅限于“where”语句的上下文提供任何forms的辩护? 他们还能以某种方式执行删除或创建操作吗? 编辑: 当我查看本教程时,我没有看到一种直接的方法来执行where子句中的删除或创建操作。 如果我的数据库中没有我不愿意从有效的搜索结果中显示的信息,并且没有用户帐户或管理员权限这样的东西,那么这里真正的危险是什么?

Gem Load Error是:未定义的方法`type_cast_from_database’用于类`ArJdbc :: MSSQL :: UUIDType’

我现在使用带有Rails 5.1(或5.2)的activerecord-jdbcmssql-adapter挣扎了好几个小时。 我已经安装了ant以便在捆绑期间编译gem。 捆绑过程运行正常但是当我想启动rails时我才刚刚开始 Bundler::GemRequireError: There was an error while trying to load the gem ‘activerecord-jdbcmssql-adapter’. Gem Load Error is: undefined method `type_cast_from_database’ for class `ArJdbc::MSSQL::UUIDType’ 我已经google了很多但没有找到解决方案或暗示导致此错误的原因。 以下是一些更多信息: Java版本: Java(TM)SE运行时环境(版本1.8.0_171-b11) Ruby: jruby-9.1.17.0 操作系统: Win10 部分Gemfile ruby ‘2.3.3’ # Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’ gem ‘rails’, ‘~> 5.1.6’ gem ‘activerecord-jdbc-adapter’, github: “jruby/activerecord-jdbc-adapter”, :branch […]

如何将SQL Server表视图用作Rails模型(只读)?

我正在使用SQL Server作为我的Rails项目的数据库。 我正在尝试创建一些模型用于第三方数据库,只想从这个数据库中读取。 所以我查看了我想创建一个对象的表,然后我想将我的活动记录模型指向它。 但是,在rails控制台中,我没有收到预期的结果。 回馈一些正确信息的唯一例子是当我对对象进行count时,如下面的例3所示。 我正在使用以下gem连接到我的SQL Server: gem ‘tiny_tds’ gem ‘activerecord-sqlserver-adapter’ 我也安装了freetds-dev 0.91-6build1 例1 2.2.2 :004 > Game.all Game Load (268.7ms) EXEC sp_executesql N’SELECT [games].* FROM [games]’ => #<ActiveRecord::Relation [#, #, #, #, #, #, #, #, #, #, …]> 例2 2.2.2 :001 > Game.first SQL (1.1ms) USE [Incoming] Game Load (1.8ms) EXEC sp_executesql […]

FreeTDS Mac OS X MiniPortile

我正在尝试在Max OS X Lion上安装FreeTDS,并且遇到了MiniPortile GitHub存储库。 https://github.com/luislavena/mini_portile 我正在尝试安装FreeTDS以便我可以使用sqladapter https://github.com/rails-sqlserver/tiny_tds sqladapter github上的说明说克隆mini_portile repo然后就是: $ bundle install $ rake compile $ rake native gem $ gem install pkg/tiny_tds-XXX-#{platform}.gem 我不明白如何使用该库。 我尝试克隆了repo,切换到我的本地克隆,然后运行: bundle install 但是没有Gemfile。 我是否需要在raails应用程序中包含mini_portile库,然后运行命令? 我在如何使用mini_portile在Mac OS X上安装FreeTDS的步骤指导中错过了一步。 谢谢

Rails 3 – 轻松使用Pascal Case列名

我们正在开始使用Java / SQL Server数据层编写的新开发的应用程序的Rails 3前端。 由于团队以前的经验,所有列名都是Pascal Case(Id,Name,MyTableId),表名是单数forms(不是复数)。 有没有办法轻松全局覆盖默认的rails约定以使用此数据模型? 我意识到这可以通过使用set_table_name和列别名来完成,但是这种方法违背了使用Rails快速开发应用程序的目的,因为我们必须复制现有的域层代码库。 我发现下面的代码片段有点满足我的需求,这是最好的方式/这仍然有效吗? http://snippets.dzone.com/posts/show/2034

Sql Server(entity framework):created_at,updated_at Columns

我想我应该提一下,我正在尝试让Entity Framework \ SQL服务器做一些我以前从Rails那里得到的东西。 我真的只想知道在数据库中插入/更新的记录具有自动created_at和updated_at列值的“最佳”方法。 现在我已经迷上了ObjectContext.SavingChanges事件,事情进展顺利。 在我编写并测试了我的代码之后,我意识到可能有更好或更快的方法来执行此操作。

将Rails 2.x与MS SQL Server 2005一起使用

这里有人有从Rails 2.x使用MS SQL Server 2005的积极经验吗? 我们的开发人员使用Mac OS X,我们的生产在Linux上运行。 出于遗留原因,我们应该使用MS SQL Server 2005。 我们正在使用ruby-odbc并遇到各种各样的问题,在这里列出太令人沮丧了。 我得到的印象是我们做错了什么。 我说的是不妥协的用法,即迁移和所有。 谢谢,

在多台笔记本电脑上运行相同的Rails代码,并将所有数据库中的数据保存到同一个数据库中

我试图在localhost:3000上的多台笔记本电脑上运行相同的rails代码。 如何保存从不同笔记本电脑提交的数据以保存在单个数据库中。 或者,他们将共享相同的数据库,如果有人提交了数据,它将自动在其他人的笔记本电脑上。 还要考虑不会有任何互联网连接,但我们可以用以太网电缆连接它们。 另外,我们使用的是sqllite3。 谢谢!