xlsimport/sql.rb

79 lines
2.6 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def get_brand_id(brand)
brand = $database.escape(brand)
brand_id = nil
dbres = $database.query("select id from brands where name = '#{brand}'", :cast => false)
dbres.each do| result_row |
brand_id = result_row["id"].to_i
end
if not brand_id then
$database.query("insert ignore into brands (name) VALUES ('#{brand}')", :cast => false)
dbres = $database.query("select id from brands where name = '#{brand}'", :cast => false)
dbres.each do| result_row |
brand_id = result_row["id"].to_i
end
end
return brand_id
end
def insert_part(name, brand_id, code, code_advanced)
code = code.to_s()
code_advanced = code_advanced.to_s()
name = name.to_s()
id = nil
name = $database.escape(name)
if code_advanced != '' then
code_advanced = $database.escape(code_advanced)
end
if code != '' then
code = $database.escape(code)
end
if code_advanced == '' then
code_advanced = code
end
if code == '' then
code = code_advanced.gsub(/\W/, '')
end
dbres = $database.query("select id from parts where brand = '#{brand_id}' AND code = '#{code}'", :cast => false)
dbres.each do| result_row |
id = result_row["id"].to_i
end
if id == nil then
$database.query("insert into parts (name, brand, code, code_advanced) VALUES ('#{name}', #{brand_id}, '#{code}', '#{code_advanced}')")
dbres = $database.query("select id from parts where brand = '#{brand_id}' AND code = '#{code}'", :cast => false)
dbres.each do| result_row |
id = result_row["id"].to_i
end
end
return id
end
def link_crosses(part_id_a, part_id_b)
source = 1
count = 0
dbres = $database.query("select sources from crosses where part_id_a = '#{part_id_a}' AND part_id_b = '#{part_id_b}'", :cast => false)
dbres.each do| result_row |
count = result_row["sources"].to_i
end
if count > 0 then
source = count + 1
end
# вставляем новую строку на основе одного источника, sources = 1
$database.query("insert ignore into crosses (part_id_a, part_id_b, sources) VALUES (#{part_id_b}, #{part_id_a}, #{source})")
$database.query("insert ignore into crosses (part_id_a, part_id_b, sources) VALUES (#{part_id_a}, #{part_id_b}, #{source})")
end
def print_count()
count = nil
dbres = $database.query("select COUNT(*) from brands", :cast => false)
dbres.each do| result_row |
count = result_row["COUNT(*)"].to_i
end
puts "В базе #{count} брендов."
dbres = $database.query("select COUNT(*) from parts", :cast => false)
dbres.each do| result_row |
count = result_row["COUNT(*)"].to_i
end
puts "В базе #{count} запчастей."
end