[ruby-gnome2-doc-cvs] [Hiki] create - tut-libgda-datamodels

Zurück zum Archiv-Index

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 ? ;-) 





ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index