Skip to content

Commit 190ebe6

Browse files
committed
succesfullly inserted dat
1 parent 9035dcb commit 190ebe6

File tree

2 files changed

+69
-44
lines changed

2 files changed

+69
-44
lines changed

mysqlite/my_sqlite_request.rb

Lines changed: 68 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "csv"
22
class MySqliteRequest
3-
attr_accessor :table_name, :hashedDataA,:hashedDataB, :request,:filename_db_b, :columns ,:isOrder, :order_type, :order_col,:selected_hash_array,:isWhere,:where_count,:isJoin,:column_on_db_a,:column_on_db_b,:filter_column, :filter_column_value
3+
attr_accessor :table_name, :hashedDataA,:dataToInsert,:hashedDataB, :request,:filename_db_b, :columns ,:isOrder, :order_type, :order_col,:selected_hash_array,:isWhere,:where_count,:isJoin,:column_on_db_a,:column_on_db_b,:filter_column, :filter_column_value
44
def initialize
55
@isWhere=false
66
@isJoin=false
@@ -48,6 +48,17 @@ def order(order, column_name)
4848
end
4949

5050

51+
def insert(table_name)
52+
@table_name=table_name
53+
@request='insert'
54+
self
55+
end
56+
57+
def values(*data) #a hash of data key => value
58+
@dataToInsert=data
59+
60+
self
61+
end
5162

5263
def run
5364
@hashedDataA=table_to_hashed(@table_name)
@@ -107,7 +118,20 @@ def run
107118
108119
end #of request='select'
109120
110-
121+
if @request=='insert'
122+
CSV.open(@table_name,"a+") do |csv|
123+
headers=csv.readline
124+
puts headers.inspect
125+
@dataToInsert.each do |data|
126+
dataValues=headers.map do |header_name|
127+
data[header_name]
128+
end
129+
csv<< dataValues
130+
end
131+
# csv << @dataToInsert
132+
end
133+
end #of request='insert'
134+
111135
112136
113137
puts '..........................final result'
@@ -122,55 +146,55 @@ def table_to_hashed(table_name)
122146
return hashedData
123147
end
124148
149+
150+
125151
def process_row(row,result_hash, selected_hash_array,columns)
126-
if columns[0]==='*'
127-
selected_hash_array<<row
128-
129-
else
130-
columns.each do |column_name|
131-
result_hash[column_name]=row[column_name]
152+
if columns[0]==='*'
153+
selected_hash_array<<row
154+
155+
else
156+
columns.each do |column_name|
157+
result_hash[column_name]=row[column_name]
132158
133-
end
134-
end
135-
selected_hash_array << result_hash if result_hash != {}
136-
159+
end
160+
end
161+
selected_hash_array << result_hash if result_hash != {}
162+
137163
end
138164
139165
def merge_sort(array, &block)
140-
return array if array.length <= 1
141-
142-
mid = array.length / 2
143-
left = merge_sort(array[0...mid], &block)
144-
right = merge_sort(array[mid..-1], &block)
145-
merge(left, right, &block)
146-
end
147-
148-
def merge(left, right, &block)
149-
result = []
150-
i = j = 0
151-
152-
while i < left.length && j < right.length
153-
if block.call(left[i], right[j]) <= 0
154-
result << left[i]
155-
i += 1
156-
else
157-
result << right[j]
158-
j += 1
159-
end
166+
return array if array.length <= 1
167+
168+
mid = array.length / 2
169+
left = merge_sort(array[0...mid], &block)
170+
right = merge_sort(array[mid..-1], &block)
171+
merge(left, right, &block)
172+
end
173+
174+
175+
def merge(left, right, &block)
176+
result = []
177+
i = j = 0
178+
179+
while i < left.length && j < right.length
180+
if block.call(left[i], right[j]) <= 0
181+
result << left[i]
182+
i += 1
183+
else
184+
result << right[j]
185+
j += 1
160186
end
161-
162-
result.concat(left[i..-1])
163-
result.concat(right[j..-1])
164-
165-
result
166187
end
167-
request = MySqliteRequest.new
168-
request = request.from('nba_player_data.csv')
169-
request = request.select('name','year_start')
170-
request = request.where('college', 'University of California')
171-
# request = request.where('year_start', '1997')
172-
request=request.order('desc','year_start')
173-
request.run
188+
189+
result.concat(left[i..-1])
190+
result.concat(right[j..-1])
191+
192+
result
193+
end
174194
175195
196+
request = MySqliteRequest.new
197+
request = request.insert('nba_player_data.csv')
198+
request = request.values('name' => 'Alaa Abdelnaby', 'year_start' => '1991', 'year_end' => '1995', 'position' => 'F-C', 'height' => '6-10', 'weight' => '240', 'birth_date' => "June 24, 1968", 'college' => 'Duke University')
199+
request.run
176200

mysqlite/nba_player_data.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4549,3 +4549,4 @@ Jim Zoet,1983,1983,C,7-1,240,"December 20, 1953",Kent State University
45494549
Bill Zopf,1971,1971,G,6-1,170,"June 7, 1948",Duquesne University
45504550
Ivica Zubac,2017,2018,C,7-1,265,"March 18, 1997",
45514551
Matt Zunic,1949,1949,G-F,6-3,195,"December 19, 1919",George Washington University
4552+

0 commit comments

Comments
 (0)