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

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2003年 10月 26日 (日) 03:00:29 JST


-------------------------
REMOTE_ADDR = 151.24.189.115
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/it?tut-libgda-datamodels
-------------------------
= Gestire modelli di dati e valori

Ogni volta che eseguiamo una normale query, otterremo un oggetto Gda::DataModel, 
che rappresenta il modo con il quale ci viene restituita la risposta.

Prima di continuare, dobiamo chiarire che possibile modificare un modello di dati, 
ma poichstiamo accedendo usando SQL, non consigliato farlo, dunque le modifiche al database devono essere fatte usando SQL.

Un modello di dati contiene un insieme di righe (Gda::Row), relative alla query.  
Le righe contengono un insieme di valori (Gda::Value) per ogni colonna del modello. 
I valori possono contenere vari tipi di dati (stringhe, interi, valori booleani, date,
indicatori monetari, etc...).

Potete usare Gda::Value#to_s per recuperare una rappreentazione come stringa di un valore GDA , e potete paragonare i valori usando Gda::Value#<=>. 

[TODO: introdurre Gda::Value#to_*]

== Esempi usando accesso diretto alle celle

Con questo metodo si accede al modello di dati direttamente dalle celle, usando Gda::DataModel#get_value_at:

  def mostra_tabella(dm)
      # Ciclo per stampare i nomi delle colonne.
      dm.n_columns.times { |n_col| puts dm.get_column_title(n_col) }
      puts ""
      # Doppio ciclo per accedere ai valori con Gda::DataModel#get_value_at.
      dm.n_rows.times do |n_row|
          dm.n_columns.times do |n_col|
              # Dati restituiti come oggetti Gda::Value.
              val = dm.get_value_at(n_col, n_row)
              puts val.to_s
          end
      end
  end

== Esempio usnaod l'accesso per righe

Con questo metodo si accede al modello di dati tramite le righe, usando
Gda::DataModel#get_row e Gda::DataModel#get_value:

  def mostra_tabella2(dm)
      # Ciclo per stampare i nomi delle colonne.
      dm.n_columns.times { |n_col| puts dm.get_column_title(n_col) }
      puts ""
      # Ciclo esterno per ottenere le righe tramite Gda::DataModel#get_row.
      dm.n_rows.times do |n_row|
          row = dm.get_row(n_row)
          # Ciclo interno per ottenere il valore usando Gda::DataModel#get_value.
          dm.n_columns.times do |n_col|
              val = row.get_value(n_col)
              puts val.to_s
          end
      end
  end

== Esempio usando 'L'approccio Ruby'  (The Ruby Way)

Per comodit Ruby/Libgda fornisce un modo pirubish per accedere ai modelli di dati.

Date un'occhiata ai seguenti metodi: Gda::DataModel#each_column, Gda::DataModel#columns, Gda::DataModel#each_row, Gda::DataModel#rows, Gda::Row#each_value and Gda::Row#values.

Un esempio usando gli iteratori:

  def mostra_tabella3(dm)
      dm.each_column { |titolo| puts titolo }
      puts ""
      dm.each_row { |riga| riga.each_value { |val| puts val.to_s } }
  end

La vita bella, vero? ;-)





ruby-gnome2-cvs メーリングリストの案内
Back to archive index