szanowni Forumowicze,
mam tabelę w msaccess:
samochod opel adam
motor honda NSS125
rower merida 26cali
za pomocą win32ole wrzucam to do zmiennej
zapytanie = connection.Execute(connection_string) gdzie connection_string to odpowiednie zapytanie SQL
do tej pory wszystko działa.
Ale nie wiem jak przekonwertować zapytanie w postać tabeli:
[
[samochod,opel,adam],
[motor,honda,NSS125],
[rower,merida,26cali]
]
czy maci jakiś pomysł?
potrzebuję później odwoływać się do tablicy i wyciągać z niej wartości poszczególnych komórek.
pojazd = tabela[0][0]
marka = tabela[0][1]
typ = tabela[0][2]
Wydaje mi się, że chodzi prawdopodobnie właśnie o to, jak przypisać wynik zapytania do zmiennej. Jeśli tak, to może się przydać recordset: recordset = WIN32OLE.new('ADODB.Recordset') recordset.Open(sql, connection) data = recordset.GetRows.transpose
Tutaj więcej info: http://rubyonwindows.blogspot.com/2007/06/using-ruby-ado-to-work-with-ms-access.html
to chyba problem jest gdzie indziej. Może wynik zapytania nie jest tablicą?
Tabela w msaccess ma 3 pola: typ,skladnik, receptura i kilkadziesiąt rekordów. W wyniku zapytania poniżej otrzymuję kilkanaście rekordów.
connection = WIN32OLE.new('ADODB.Connection')
if File.exist?(base_path) then
connection.Open("Provider=Microsoft.ACE.OlEDB.12.0;
Data Source=#{ base_path }")
connection_string ="Select typ,skladnik, receptura from receptury where typ = '#{ symbol }'"
zapytanie = connection.Execute(connection_string)
if zapytanie.eof then
wynik = 'pudlo!'
else
zapytanie.each do |wynik_0|
UI.messagebox(wynik_0[0])
end
end
connection.Close
else
wynik = 'Brak bazy!'
end
return wynik
end
UI.messagebox(get_recep(‘gospodarcza agd’))