ruby-gnome2-hiki-pt_BR****@sourc*****
ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 11日 (日) 11:54:44 JST
------------------------- REMOTE_ADDR = 200.216.145.78 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-libgda-datamodels ------------------------- = Gerenciando Valores e "Models" de Dados {{link("tut-libgda-exec-queries", nil, "tut-libgda", "tut-libgda-transactions")}} Cada vez que a gente executa uma querie normal, a gente precisa obter um objeto Gda::DataModel, o qual a maneira de ver o que a query retornou. Antes de continuar, a gente precisa dizer que poss$ByW(Bel modificar um "model" de dados, mas como estamos acessando usando SQL, n$BeP(B recomendado modificlo, assim as modifica$Bnw(Bes no banco de dados precisam ser feitas usando SQL. Um "model" de dados cont$BqN(B um conjunto de linhas (Gda::Row), de acordo com a query. As linhas cont$BsN(B um conjunto de valores (Gda::Value) para cada coluna do "model" de dados. Valores embutem v$BaS(Bios tipos de dados (strings, integers, booleans, dates, money currencies, etc...). Vocpode usar Gda::Value#to_s para recuperar uma representa$Bne(Bo de string de um valor de GDA, e vocpode comparar valores usando Gda::Value#<=>. [FAZER: introduzir m$BqU(Bodos de convers$BeP(B Gda::Value#to_*] == Exemplo Usando Acesso Direto de C$BqM(Bula Este m$BqU(Bodo acessa o "model" de dados acessando diretamente as c$BqM(Bulas, usando Gda::DataModel#get_value_at: def show_table(dm) # Loop para escrever os nomes das colunas. dm.n_columns.times { |n_col| puts dm.get_column_title(n_col) } puts "" # Duplo loop acessando valores usando Gda::DataModel#get_value_at. dm.n_rows.times do |n_row| dm.n_columns.times do |n_col| # Dados retornados s$BeP(B objetos Gda::Value. val = dm.get_value_at(n_col, n_row) puts val.to_s end end end == Exemplo Usando Acesso de Linha Este m$BqU(Bodo acessa o "model" de dados acessando as linhas, usando Gda::DataModel#get_row e Gda::DataModel#get_value: def show_table2(dm) # Loop para escrever os nomes das colunas. dm.n_columns.times { |n_col| puts dm.get_column_title(n_col) } puts "" # Loop externo obtendo linhas usando Gda::DataModel#get_row. dm.n_rows.times do |n_row| row = dm.get_row(n_row) # Loop interno obtendo o valor usnado Gda::DataModel#get_value. dm.n_columns.times do |n_col| val = row.get_value(n_col) puts val.to_s end end end == Exemplo Usando o "Jeito de Ruby" ('The Ruby Way') Para a sua conveni$BsO(Bcia, a Ruby/Libgda provuma maneira mais Ruby para acessar valores em "models" de dados. Apenas olhe os m$BqU(Bodos a seguir: Gda::DataModel#each_column, Gda::DataModel#columns, Gda::DataModel#each_row, Gda::DataModel#rows, Gda::Row#each_value e Gda::Row#values. Eis um exemplo usando iteradores: def show_table3(dm) dm.each_column { |title| puts title } puts "" dm.each_row { |row| row.each_value { |val| puts val.to_s } } end A vida boa, n$BeP(B ? ;-)