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

Back to archive index

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 11日 (日) 11:06:28 JST


-------------------------
REMOTE_ADDR = 200.216.145.78
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-libgda-config
-------------------------
= Configurando
{{link("tut-libgda-install", nil, "tut-libgda", "tut-libgda-init")}}

Dependendo do uso que vocterde Ruby/Libgda, vocpode ter que aprofundar nas partes internas, mas n$BeP(B fique receoso, as coisas foram implementadas para serem f$BaD(Beis de usar.

== Configura$Bne(Bo para Desenvolvimento

Os $B(Bicos passos que vocprecisa fazer para ter certeza que tudo estinstalado bem, verificar que a biblioteca Ruby/Libgda vista pelo seu sistema:

  $ irb --simple-prompt -r libgda
  >> Gda.init("test", "0.0.0")
  => nil

== Configura$Bne(Bo para Acessar um Banco de Dados

Se vocquer acessar uma fonte de dados atrav$BqT(B de um provedor da GDA, vocprecisa primeiro ter acesso a esse provedor, e mais importante, esse provedor deve ter acesso a sua fonte de dados espec$ByG(Bica. Assim, primeiro tenha o seu banco de dados funcionando. Para isso, vocterque verificar a sua documenta$Bne(Bo de fonte de dados espec$ByG(Bica, ou ver a documenta$Bne(Bo espec$ByG(Bica do provedor da libgda.

Uma vez que voctenha o seu provedor de GDA instalado, se na sua m$BaR(Buina ou em outra na rede, vocprecisa configurar o seu sistema local para ter acesso a ele. Se vocestem uma instala$Bne(Bo local, uma vez que voctenha instalado o provedor de GDA (ao compillo ou instalando o seu RPM ou pacote Debian), o provedor estvis$ByW(Bel na sua m$BaR(Buina. Isso porque o provedor instala ele mesmo em uma localiza$Bne(Bo bem conhecida que deixa a libgda saber sobre o seu novo provedor.

Ent$BeP(B, o pr$B(Bimo passo configurar as fontes de dados que vocquer dispon$ByW(Beis no seu sistema. para fazer isso, por enquanto, use o GNOME-DB, o qual um "front-end" para a libgda para o ((<projeto GNOME|URL:http://www.gnome.org>)).

Um dos problemas que a GDA soluciona a nomea$Bne(Bo de fontes de dados. Todo sistema de banco de dados tem a sua pr$B(Bria maneira de definir nomes para o seu banco de dados. Por exemplo, o MySQL usa o nome do hospedador ("hostname"), n$B(Bero da porta, e o nome do banco de dados. Outros bancos de dados, como o Solid, usa o nome do nome do hospedador e o n$B(Bero da porta apenas. N$BeP(B existe suporte para m$B(Btiplos bancos de dados por servidor. Por causa que o cliente n$BeP(B precisa de todos esses detalhes, a configura$Bne(Bo da  libgda define todas as propriedades como a fonte de dados, assim o servidor de banco de dados correto pode ser conectado. Essa informa$Bne(Bo acessada pela biblioteca de cliente e enviada para o provedor, o qual por sua vez irinterpretar a string e decidir qual banco de dados deve ser conectado. Os dados armazenados para cada fonte de dados s$BeP(B como a seguir: 

  Provider=MySQL                                       (1)                            
  DSN=DATABASE=test;HOST=localhost;PORT=1111           (2)
  Description=MySQL Test Database in native mode       (3)
  Username=username                                    (4)
  Password=password                                    (5)

:1
 O provedor para esse banco de dados o provedor "gda-mysql". O valor dessa entrada usado como o ID do objeto para a ativa$Bne(Bo do plugin. 

:2
 Essa a entrada mais importante. O valor dessa entrada a string enviada para o provedor para que ele saiba qual fonte de dados acessar. Como essa entrada interpretada pelos provedores descrita na se$Bne(Bo de provedor (no final desta p$BaH(Bina). 

 Existem, entretanto, um conjunto de propriedades padr$B(Bs que podem ser usadas para a string de conex$BeP(B para todos os provedores. Essas s$BeP(B:
   * USERNAME: nome do usu$BaS(Bio a ser usado na autentica$Bne(Bo.
   * PASSWORD: senha a ser usada para autentica$Bne(Bo.

:3
 O valor dessa entrada uma descri$Bne(Bo curta da fonte de dados. Estaqui por conveni$BsO(Bcia apenas e n$BeP(B usada para qualquer prop$B(Bito. 

:4
 O nome do usu$BaS(Bio a ser usado ao conectar ao banco de dados. 
 
:5
 A senha a ser usada quando conectar ao banco de dados. Isso armazenada em texto puro, ent$BeP(B tenha certeza que vocrestringe o acesso ao arquivo de configura$Bne(Bo (~/.libgda/config) a qualquer usu$BaS(Bio "perigoso".

O arquivo de configura$Bne(Bo em XML (~/.libgda/config) n$BeP(B recomendado a ser modificado pela m$BeP(B e, para nosso exemplo, ele algo assim:

  <?xml version="1.0"?>
  <libgda-config>
    <section path="/apps/libgda/Datasources/sales">
      <entry name="DSN" type="string" value="PORT=1111;DATABASE=test;HOST=localhost"/>
      <entry name="Description" type="string" value="MySQL Test Database in native mode"/>
      <entry name="Password" type="string" value="password"/>
      <entry name="Provider" type="string" value="MySQL"/>
      <entry name="Username" type="string" value="username"/>
    </section>
  </libgda-config>
  
===  Gerenciando Fontes de Dados com M$BqU(Bodos de "API"

====  Criar Fontes de Dados

Para criar uma fonte de dados vocprecisa usar os m$BqU(Bodos Gda::DataSource.new e Gda::DataSource#save.

Aqui vocvcomo criar uma fonte de dado nomeada foo_ds. Se vocn$BeP(B precisa fornecer um nome de usu$BaS(Bio ou senha para entrar no banco de dados, vocpode coloca nil:

  datasource1 = Gda::DataSource.new("foo_ds", "PostgreSQL", "DATABASE=foo_db",
                                    "description of foo_ds", "foo_username, "foo_password")
  datasource2 = Gda::DataSource.new("other_foo_ds", "MySQL", "DATABASE=other_foo_db,HOST=db.foo.com",
                                    "description of other_foo_ds", "foo", nil)
  datasource1.save
  datasource2.save

Para mais detalhes sobre informa$Bne(Bo espec$ByG(Bica de provedor veja na se$Bne(Bo sobre sobre "informa$Bne(Bo espec$ByG(Bica de provedor" no final desta p$BaH(Bina.

N$BeP(B existe problema em chamar v$BaS(Bias vezes Gda::DataSource#save porque se voc salvar uma fonte de dados existente, ela substitu$ByE(Ba.

==== Removendo Fontes de Dados

Para remover fontes de dados vocprecisa usar o m$BqU(Bodo Gda::DataSource#remove.

Aqui vocvcomo remover uma fonte de dados nomeada foo_ds:

  datasource = Gda::DataSource.find('foo_ds')
  datasource.remove

==== Listando as Fontes de Dados Dispon$ByW(Beis

Para listar as fontes de dados dispon$ByW(Beis vocdeve usar os m$BqU(Bodos Gda::DataSource.datasources ou Gda::DataSource.each.

Aqui vocvum m$BqU(Bodo que lista as fontes de dados dispon$ByW(Beis:

  def list_datasources
      Gda::DataSource.each do |ds|
          puts "NAME: '#{ds.name}', PROVIDER: '#{ds.provider}', CNC: '#{ds.cnc_string}', " \
               "USER: '#{ds.username}', PASSWORD: '#{ds.password}'."
      end
  end

==== Listando Provedores Dispon$ByW(Beis

Para listar provedores dispon$ByW(Beis vocdeve usar os m$BqU(Bodos Gda::Providers.providers ou Gda::Providers.each.

Aqui vocvum m$BqU(Bodo que lista os provedores dispon$ByW(Beis:

  def list_providers
      Gda::Provider.each { |provider| puts "ID: '#{provider.prov_id}'." }
  end

== Informa$Bne(Bo Espec$ByG(Bica de Provedor

Para conseguir mais detalhes sobre cada informa$Bne(Bo espec$ByG(Bica de provedor, voce deve navegar ((<a se$Bne(Bo dedicada|URL:http://www.gnome-db.org/docs/libgda/installation-configuring.html#INSTALLATION-PROVIDER>)) no manual da GDA.





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