Module: ArJdbc::MsSQL::LimitHelpers
- Included in:
- ArJdbc::MsSQL
- Defined in:
- lib/arjdbc/mssql/limit_helpers.rb
Defined Under Namespace
Modules: SqlServer2000AddLimitOffset, SqlServer2000ReplaceLimitOffset, SqlServerAddLimitOffset, SqlServerReplaceLimitOffset
Class Method Summary
collapse
Class Method Details
.get_primary_key(order, table_name) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/arjdbc/mssql/limit_helpers.rb', line 15
def get_primary_key(order, table_name)
if order =~ /(\w*id\w*)/i
$1
else
table_name[/\[+(.*)\]+/i]
if ActiveRecord::VERSION::MAJOR >= 3
models = ActiveRecord::Base.descendants
else
models = ActiveRecord::Base.send(:subclasses)
end
model = models.select{|model| model.table_name == $1}.first
if model then
model.primary_key
else
'id'
end
end
end
|
.get_table_name(sql) ⇒ Object
5
6
7
8
9
10
11
12
13
|
# File 'lib/arjdbc/mssql/limit_helpers.rb', line 5
def get_table_name(sql)
if sql =~ /^\s*insert\s+into\s+([^\(\s,]+)\s*|^\s*update\s+([^\(\s,]+)\s*/i
$1
elsif sql =~ /\bfrom\s+([^\(\s,]+)\s*/i
$1
else
nil
end
end
|