Página 1 de 1

HBADO 2.0 - Biblioteca de acesso a vários BDs

Enviado: 28 Nov 2006 17:17
por rochinha
Aqui estão os enchancements relativos a minha LIB que tem por objetivo aliviar o problema de acessar varios tipos de bases de dados diferentes. Tornando-se uma ferramenta de apoio ao programador.

A biblioteca constitue de um set de comandos e funções padronizado para facilitar a programação, feita em linguagem acessivel e com comandos fáceis de memorizar.

Nos testes efetivados até agora consegui:

- Incluir registros
- Excluir registros
- Deletar registros
- Fazer filtragem estilo SET FILTER
- Fazer buscas estilo LOCATE
- Abrir várias áreas simultaneamente estilo SELECT
- Executar comandos SQL

Nos testes feitos com DBs já consegui acessar tabelas no MySQL, Access, XML, Firebird e irei fazer testes de acesso a tabelas em MS-SQL Express 2005.

Só para se ter uma idéia do que estou falando é que acho ser possivel abrir estes tipos de arquivos ao mesmo tempo e trabalhar com os mesmos e suas tabelas também.

Dimensionei as áreas para 50 como teste, isto quer dizer que poderemos ter 50 SELECTs abertas.

O acesso poderá ser local ou remoto dependendo do DB utilizado e que suporte TCP-IP.

Comandos existentes:

ADO CONNECT <StrDriver> - Faz a conexão via string
ADO DISCONNECT - ADODISCONNECT()
ADO APPEND BLANK - ADOAPPEND()
ADO EDIT - ADOEDIT()
ADO COMMIT [<save:SAVE>] - ADOCOMMIT( [<.save.>] )
ADO SKIP - ADOSKIP( 1 )
ADO SKIP <num> - ADOSKIP( <num> )
ADO DELETE - ADODELETE()
ADO REPLACE <f1> WITH <v1> - ADOREPLACE( <(f1)>, <v1> )
ADO GOTOP - ADOGOTOP()
ADO GOBOTTOM - ADOGOBOTTOM()
ADO SET FILTER TO - ADOSETFILTER()
ADO SET FILTER TO <xpr> - ADOSETFILTER( <xpr> )
ADO SAVE <CfILE> - ADOSAVE( <CfILE> )
ADO EXECUTE <Sql> - ADOEXECUTE( <Sql> )
ADO LOCATE <xpr> - ADOLocate( <xpr> )
ADO CLOSE - ADOUSE()
ADO USE - ADOUSE()
ADO USE <(StrDatabase)> - ADOUSE( <(StrDatabase)> )
ADO SORT ON <(cField)> - ADOUSE( <(cField)> )
ADO SELECT <(cRecordSet)> - ADOSELECT( <(cRecordSet)> )

Funções existentes:

ADOConnect() - Faz a conexão com o DB escolhido através da string passada
ADOFile() - Similar a FILE()
ADOAlias() - Similar a Alias()
ADOFCount() - Similar a FCount()
ADODISConnect() - NI
ADOAppend() - Similar a dbAppend()
ADOEdit() - Permite que o registro na area corrente seja editado
ADOCommit() - Similar a Commit()
ADOSave() - Salva o conteudo da área como .XML
ADOSkip() - Similar a dbSkip()
ADODelete() - Similar a dbDelete()
ADOGoTop() - Similar a dbGoTop()
ADOGoBottom() - Similar a dbGoBottom()
ADORecno() - Similar a Recno()
ADORecCount() - Similar a RecCount()
ADOSetFilter() - Similar a dbSetFilter()
ADOFind() - Similar a dbLocate()
ADODeleted() - Similar a Deleted()
ADOUse() - Permite abertura de uma tabela que será lancada como NEW AREA
ADOClose() - Fecha a conexão com o DB escolhido
ADOExecute() - Executa uma sequencia SQL completa
ADOBOF() - Similar a Eof()
ADOEOF() - Similar a Bof()
ADOLocate() - Produz o mesmo efeito de uma Locate ou Seek
ADOSort() - NI - Permite ordenar a tabela aberta por um campo simulando INDEXes
ADOSelect() - Similar a dbSelectArea()
ADOReplace() - Permite o repasse do campo da area selecionada com conteudo de uma variavel
ADOField() - Permite acesso aos campos da area selecionada facilitando o acesso a tabela

EXEMPLOS

Sera suprido com este pequeno pacote o arquivo TESTE.PRG que contem a maioria dos comandos da biblioteca.

No momento estou implementando os comandos SORT que permitirão colocar uma visualização em ordem que o usuário especificar.

Logo estarei disponibilizando esta biblioteca para testes no Link:

http://www.5volution.com/5blog/

Bom, até mais...

Enviado: 11 Dez 2006 09:57
por rochinha
Amiguinhos

O link acima foi atualizado e esta trabalhando bem com xHarbour 0.99.61

HDADOX - MUITO BOA

Enviado: 03 Ago 2007 05:52
por runner
Muito Boa a sua Lib, gostaria de saber se voce ja tem alguma atualizacao, e se possivel me envie mais algum material de pesquisa a respeito ou manual sobre o assunto.


MARCIO DE SOUZA

RUNNER INFORMATICA

Enviado: 11 Ago 2007 11:27
por benyfilho
Não estou usando a LIB, estou usando o ADO direto, mas na hora do RecordSet.Uptade() se eu não altero nada e confirmo ele dá erro, mas se eu alterar qualquer coisa ele funciona.
Alguém passou por essa situação?


Tabela:Fields("uf"):Value:=uf
Tabela:Fields("municipio"):Value:=municipio
Tabela:Update()

Enviado: 11 Ago 2007 17:23
por rochinha
Amiguinho

Para o trabalho com ADO ao usar metodos diretos voce precisara também fazer refinamentos e criticas para completar operações e isto é um problema que existe não no ADO mas no motor de acesso a dados e é um velho problema que o VB possui de provocar erro nos updates de campos sem conteudo, etc.

Outra coisa

Sua aplicacao deve prever se algo foi alterado ou nao e fazer ou nao o update, pois voce consome recursos ao efetivar uma operação sem nexo. Não alterou? pra que forçar o registro novamente?

Verifique

Enviado: 11 Ago 2007 21:53
por benyfilho
Como vc fez esse tratamento na sua LIB para saber se precisa dar o UPDATE ou não?
Outro detalhe que peguei é quando se recupera um dado do banco de dados para uma variavel ele traz somente o tamanho do conteúdo do campo independente de seu tamanho setado no Banco de dados
Exemplo:
No banco eu tenho um campo municipio tipo varchar com tamanho de 30
Municipiotxt=Tabela:Fields("Municipio"):Value

A variavel Municipiotxt assume o tamanho do conteúdo do campo ao inves de seu tamanho total

Exemplo:
Municipiotxt=Tabela:Fields("Municipio"):Value

Valor retornado do campo "Palmas"
A variavel Municipiotxt ficou com o tamanho 6, na hora de editar no get não consigo editar mais de 6 caracteres.
Como resolver essa situação?

Enviado: 14 Ago 2007 12:26
por rochinha
Amiguinho

Tem muito mais do que isto, inclusive outras propriedades que definem o tamanho ou largura do campo.

Aguarde que estarei divulgando isto.

Enviado: 14 Ago 2007 18:22
por sygecom
Toh na Fila.....hehe...

Ajuda Mutua

Enviado: 16 Ago 2007 09:47
por benyfilho
Caro Rochinha,

Eu conheço as propriedades que trazem o tamanho do campo definido no Banco de dados é RecordSet.Fields("nomecampo").DefinedSize, minhas dúvidas são como integrar isso ao xHarbour + Fivewin, eu sou desenvolvedor Web, trabalho muito com ASP, então a linguagem xHarbour + Fivewin, tem alguns detalhes dificéis de acertar sem uma ajuda.

Posso disponibilizar meu código para estudo, e irmos aprimorando para deixarmos para todos como fazer as operações básicas, tipo LISTAR EM BROWSE, INCLUIR, ALTERAR, EXCLUIR, PESQUISAR, FILTRAR, ORDENAR, E RELATÓRIO.

Meu MSN é benyhapper@hotmail.com, qualquer coisa entre em contato

Enviado: 16 Ago 2007 19:03
por sygecom
Jah deu uma olhada no fonte da ADORDD ? talvez tenha algo lah que posso lhe ajudar !!!
Caminho das Pedra....
\xharbour\source\rdd\usrrdd\rdds\adordd

Enviado: 16 Out 2007 17:43
por rochinha
Amiguinhos

O blog da ADOxb será usado para outros fins, portanto estou trazendo seu conteudo para cá e agora tem um tópico fixo somente para tratar deste assunto:

ADOxb - BIblioteca de funções de Acesso SQL