aq1018-sqlserver-2000-2008-adpater 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ require 'cases/sqlserver_helper'
2
+ require 'models/order'
3
+
4
+ class TableNameTestSqlserver < ActiveRecord::TestCase
5
+
6
+ self.use_transactional_fixtures = false
7
+
8
+ def setup
9
+ Order.table_name = '[orders]'
10
+ Order.reset_column_information
11
+ end
12
+
13
+ should 'load columns with escaped table name for model' do
14
+ assert_equal 4, Order.columns.length
15
+ end
16
+
17
+ should 'not re-escape table name if it is escaped already for SQL queries' do
18
+ assert_sql(/SELECT \* FROM \[orders\]/) { Order.all }
19
+ end
20
+
21
+
22
+ end
@@ -0,0 +1,44 @@
1
+ require 'cases/sqlserver_helper'
2
+
3
+ class UnicodeTestSqlserver < ActiveRecord::TestCase
4
+
5
+
6
+ context 'Testing basic saves and unicode limits' do
7
+
8
+ should 'save and reload simple nchar string' do
9
+ assert nchar_data = SqlServerUnicode.create!(:nchar => 'A')
10
+ assert_equal 'A', SqlServerUnicode.find(nchar_data.id).nchar
11
+ end
12
+
13
+ should 'save and reload simple nvarchar(max) string' do
14
+ test_string = 'Ken Collins'
15
+ assert nvarcharmax_data = SqlServerUnicode.create!(:nvarchar_max => test_string)
16
+ assert_equal test_string, SqlServerUnicode.find(nvarcharmax_data.id).nvarchar_max
17
+ end if sqlserver_2005?
18
+
19
+ should 'enforce default nchar_10 limit of 10' do
20
+ assert_raise(ActiveRecord::StatementInvalid) { SqlServerUnicode.create!(:nchar => '01234567891') }
21
+ end
22
+
23
+ should 'enforce default nvarchar_100 limit of 100' do
24
+ assert_raise(ActiveRecord::StatementInvalid) { SqlServerUnicode.create!(:nvarchar_100 => '0123456789'*10+'1') }
25
+ end
26
+
27
+ end
28
+
29
+ context 'Testing unicode data' do
30
+
31
+ setup do
32
+ @unicode_data = "一二34五六"
33
+ end
34
+
35
+ should 'insert into nvarchar field' do
36
+ assert data = SqlServerUnicode.create!(:nvarchar => @unicode_data)
37
+ assert_equal @unicode_data, data.reload.nvarchar
38
+ end
39
+
40
+ end
41
+
42
+
43
+
44
+ end
@@ -0,0 +1,23 @@
1
+ print "Using native SQLServer\n"
2
+ require_dependency 'models/course'
3
+ require 'logger'
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'arunit' => {
9
+ :adapter => 'sqlserver',
10
+ :host => 'localhost',
11
+ :username => 'rails',
12
+ :database => 'activerecord_unittest'
13
+ },
14
+ 'arunit2' => {
15
+ :adapter => 'sqlserver',
16
+ :host => 'localhost',
17
+ :username => 'rails',
18
+ :database => 'activerecord_unittest2'
19
+ }
20
+ }
21
+
22
+ ActiveRecord::Base.establish_connection 'arunit'
23
+ Course.establish_connection 'arunit2'
@@ -0,0 +1,27 @@
1
+ print "Using native SQLServer via ODBC\n"
2
+ require_dependency 'models/course'
3
+ require 'logger'
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'arunit' => {
9
+ :adapter => 'sqlserver',
10
+ :mode => 'ODBC',
11
+ :host => 'MSSQL',
12
+ :username => 'rails',
13
+ :password => 'rails',
14
+ :dsn => 'activerecord_unittest'
15
+ },
16
+ 'arunit2' => {
17
+ :adapter => 'sqlserver',
18
+ :mode => 'ODBC',
19
+ :host => 'MSSQL',
20
+ :username => 'rails',
21
+ :password => 'rails',
22
+ :dsn => 'activerecord_unittest2'
23
+ }
24
+ }
25
+
26
+ ActiveRecord::Base.establish_connection 'arunit'
27
+ Course.establish_connection 'arunit2'
@@ -0,0 +1,11 @@
1
+ class TableWillNeverBeCreated < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table(:sqlserver_trans_table1) { }
5
+ create_table(:sqlserver_trans_table2) { raise ActiveRecord::StatementInvalid }
6
+ end
7
+
8
+ def self.down
9
+ end
10
+
11
+ end
@@ -0,0 +1,77 @@
1
+ ActiveRecord::Schema.define do
2
+
3
+ create_table :table_with_real_columns, :force => true do |t|
4
+ t.column :real_number, :real
5
+ # t.column :varchar_max, :varchar_max if ActiveRecord::Base.connection.sqlserver_2005?
6
+ end
7
+
8
+ create_table :defaults, :force => true do |t|
9
+ t.column :positive_integer, :integer, :default => 1
10
+ t.column :negative_integer, :integer, :default => -1
11
+ t.column :decimal_number, :decimal, :precision => 3, :scale => 2, :default => 2.78
12
+ end
13
+
14
+ create_table :string_defaults, :force => true do |t|
15
+ t.column :string_with_null_default, :string, :default => nil
16
+ t.column :string_with_pretend_null_one, :string, :default => 'null'
17
+ t.column :string_with_pretend_null_two, :string, :default => '(null)'
18
+ t.column :string_with_pretend_null_three, :string, :default => 'NULL'
19
+ t.column :string_with_pretend_null_four, :string, :default => '(NULL)'
20
+ end
21
+
22
+ create_table :sql_server_chronics, :force => true do |t|
23
+ t.column :date, :date
24
+ t.column :time, :time
25
+ t.column :datetime, :datetime
26
+ t.column :timestamp, :timestamp
27
+ end
28
+
29
+ create_table(:fk_test_has_fks, :force => true) { |t| t.column(:fk_id, :integer, :null => false) }
30
+ create_table(:fk_test_has_pks, :force => true) { }
31
+ execute <<-ADDFKSQL
32
+ ALTER TABLE fk_test_has_fks
33
+ ADD CONSTRAINT FK__fk_test_has_fk_fk_id
34
+ FOREIGN KEY (#{quote_column_name('fk_id')})
35
+ REFERENCES #{quote_table_name('fk_test_has_pks')} (#{quote_column_name('id')})
36
+ ADDFKSQL
37
+
38
+ create_table :sql_server_unicodes, :force => true do |t|
39
+ t.column :nchar, :nchar
40
+ t.column :nvarchar, :nvarchar
41
+ t.column :ntext, :ntext
42
+ t.column :ntext_10, :ntext, :limit => 10
43
+ t.column :nchar_10, :nchar, :limit => 10
44
+ t.column :nvarchar_100, :nvarchar, :limit => 100
45
+ if ActiveRecord::Base.connection.sqlserver_2005?
46
+ t.column :nvarchar_max, :nvarchar_max
47
+ t.column :nvarchar_max_10, :nvarchar_max, :limit => 10
48
+ end
49
+ end
50
+
51
+ create_table :sql_server_strings, :force => true do |t|
52
+ t.column :char, :char
53
+ t.column :char_10, :char, :limit => 10
54
+ if ActiveRecord::Base.connection.sqlserver_2005?
55
+ t.column :varchar_max, :varchar_max
56
+ t.column :varchar_max_10, :varchar_max, :limit => 10
57
+ end
58
+ end
59
+
60
+ create_table :sql_server_binary_types, :force => true do |t|
61
+ # TODO: Add some different native binary types and test.
62
+ end
63
+
64
+ execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'customers_view') DROP VIEW customers_view"
65
+ execute <<-CUSTOMERSVIEW
66
+ CREATE VIEW customers_view AS
67
+ SELECT id, name, balance
68
+ FROM customers
69
+ CUSTOMERSVIEW
70
+ execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'string_defaults_view') DROP VIEW string_defaults_view"
71
+ execute <<-STRINGDEFAULTSVIEW
72
+ CREATE VIEW string_defaults_view AS
73
+ SELECT id, string_with_pretend_null_one as pretend_null
74
+ FROM string_defaults
75
+ STRINGDEFAULTSVIEW
76
+
77
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aq1018-sqlserver-2000-2008-adpater
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Ken Collins
8
+ - Murray Steele
9
+ - Shawn Balestracci
10
+ - Joe Rafaniello
11
+ - Tom Ward
12
+ - Aaron
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2009-02-28 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: SQL Server 2000 & 2005 & 2008 Adapter For Rails.
22
+ email: ken@metaskills.net
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - CHANGELOG
31
+ - MIT-LICENSE
32
+ - Rakefile
33
+ - README
34
+ - RUNNING_UNIT_TESTS
35
+ - lib/active_record/connection_adapters/sqlserver_adapter.rb
36
+ - lib/core_ext/active_record.rb
37
+ - lib/core_ext/dbi.rb
38
+ has_rdoc: true
39
+ homepage: http://github.com/aq1018/2000-2008-adapter/
40
+ post_install_message:
41
+ rdoc_options: []
42
+
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ requirements: []
58
+
59
+ rubyforge_project:
60
+ rubygems_version: 1.2.0
61
+ signing_key:
62
+ specification_version: 2
63
+ summary: SQL Server 2000 & 2005 & 2008 Adapter For Rails.
64
+ test_files:
65
+ - test/cases/aaaa_create_tables_test_sqlserver.rb
66
+ - test/cases/adapter_test_sqlserver.rb
67
+ - test/cases/basics_test_sqlserver.rb
68
+ - test/cases/calculations_test_sqlserver.rb
69
+ - test/cases/column_test_sqlserver.rb
70
+ - test/cases/connection_test_sqlserver.rb
71
+ - test/cases/eager_association_test_sqlserver.rb
72
+ - test/cases/inheritance_test_sqlserver.rb
73
+ - test/cases/migration_test_sqlserver.rb
74
+ - test/cases/offset_and_limit_test_sqlserver.rb
75
+ - test/cases/pessimistic_locking_test_sqlserver.rb
76
+ - test/cases/query_cache_test_sqlserver.rb
77
+ - test/cases/schema_dumper_test_sqlserver.rb
78
+ - test/cases/specific_schema_test_sqlserver.rb
79
+ - test/cases/sqlserver_helper.rb
80
+ - test/cases/table_name_test_sqlserver.rb
81
+ - test/cases/unicode_test_sqlserver.rb
82
+ - test/connections/native_sqlserver/connection.rb
83
+ - test/connections/native_sqlserver_odbc/connection.rb
84
+ - test/migrations/transaction_table/1_table_will_never_be_created.rb
85
+ - test/schema/sqlserver_specific_schema.rb