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.