giovanyvecchi Posted May 27, 2014 Report Share Posted May 27, 2014 Como varias pessoas aqui sabem, eu uso ads a anos e mesmo sem suporte ao banco de dados e a falta de exemplos praticos para nossa linguagem harbour+fivewin não abandonei o advantage acreditando que poderia melhorar e muito. Fui pesquisando, adaptando, traduzindo e convertendo funçoes de outras linguagens para que pudesse usar nos nossos conceitos de programação. O tAds foi alterado inumeras vezes, ja que minha satisfação não correspondia aos resultados desejados. Mais nunca desisti e agora com os resultados concretos e satisfatorios eu posso liberar esta versão porque tenho certeza que a lógica de funcionamento esta na base correta e dai por diante é só implementar novos recursos conforme as nescessidades que aparecerão. junto com o pacote tem exemplos e ferramentas para que voce possa iniciar a migração caso tenha interesse. Qualquer duvida voce podera perguntar para mim que responderei assim que possivel. No decorrer destes proximos dias tentarei criar mais exemplos ja que minha carga horaria esta bem corrida. Caso a demanda de interesses for demasiada por varias pessoas pedirei para o moderador do forum para que inclua um topico separado. para baixar o tAds 2.0 o link esta abaixo. http://www.4shared.com/zip/BdeAU5Ftce/tAds_2.html Theotokos 1 Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted May 27, 2014 Author Report Share Posted May 27, 2014 Para quem não esta conseguindo baixar no 4shared postei no sendspace http://www.sendspace.com/file/12sn5z Quote Link to comment Share on other sites More sharing options...
oribeiro Posted May 29, 2014 Report Share Posted May 29, 2014 Giovany, Parabéns pela iniciativa. Tenho ouvido falar muito sobre o ADS que despertou a minha curiosidade em conhecê-lo melhor a fim de melhorar o banco de dados do meu sistema que utiliza CDX nativo. Desculpe a minha ignorância, mas eu preciso obter duas respostas: 1) Quais são as vantagens de usar o ADS sobre o CDX convencional do xHarbour? 2) Todos os comandos do CDX existem no ADS e funcionam da mesma forma ou terei que adaptar o sistema para utilizar o ADS? Aguardo, obrigado. Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted May 30, 2014 Author Report Share Posted May 30, 2014 Ola Oscar. Em primeira mão, para quem não trabalha com ads, temos a entender que o funcionamento do banco de dados não passa de um RDD comum como DBFCDX. Olhando por cima não passa disto mesmo ja que podemos usar as mesmas regras e fontes de um DBFCDX ou DBFNTX apenas definindo o RDDADS como Default. Mais o Ads vai muito alem disto, por isto voce pode usar de sua maneira como se fosse DBF normal usando APPEND, RLOCK, SKIP, REPLACE Etc Etc. Alem disto o ads proporciona relacionamento como qualquer banco de dados relacional tipo Mysql, FireBird, Oracle. A vantagem é que voce pode usar grande parte de seus fontes com comandos antigos estito DBFCDX e misturar com Querys Sql e outras funcionalidades do ads. O problema maior fica em um só desafio: "CONVERTER SEUS DBFS PARA ADT USANDO DICIONARIO DE DADOS" Para isto voce pode usar o utilitario Dbf2Advantage.exe Depois de criado o dicionario de dados voce seguira estes passos: 1 - Chama a função TADS_START_CONFIG() para o tads criar os ambientes de ADS 2 - Abra uma conexão e defina como padrão (Default / Por Falta), Ex: oConexaoDefault := tAdsConnection():New(1,.T.) oConexaoDefault:cDataDictionary := ".\DADOSADD\Gerente_Byte.add" oConexaoDefault:cSenhaConnect := "PassWord" oConexaoDefault:nTpConnect := 7 lConectou := oConexaoDefault:tAdsConnect() Em tAdsConnection():New(Numero_da_Conexão,Se_é_a_Conexão_Padrao) Depois disto voce podera usar seus fontes normais usando o comando USE ou DBUSEAREA(), O que muda no comando é que voce não precisa indicar a rora do arquivo que voce quer abrir e nem os indices que estão relacionados porque estas informações ficam dentro do dicionario de dados. Ex: Antes com DBFCDX: USE ".\DADOS\CLIENTES.DBF" ALIAS CLIENTES INDEX ".\CLIENTES.CDX" NEW SHARED Depois com Ads: USE CLIENTES ALIAS CLIENTES Isto vai proporcionar a voce um alivio ja que voce não vai precisar alterar todos seus fontes. Só que isto não basta, usando desta maneira antiga voce vai ficar muito limitado ainda. Voce pode usar os comandos antigos e ir alterando aos poucos com os novos conseitos. Tenho sistema que ta uma graça, Alguns modulos estão de quando era DBF CDX e outros com classes de tAds usando SQL. No momento estou desenvolvendo em meus sistema modulos para interligar cartorios e com os recursos que desenvolvi no tAds ta ficando muito bom. Voce podera ir mesclando os recursos com seus fontes de uma maneira pratica. Tipo assim: Quero abrir o cadastro de clientes do jeito que eu fazia antes USE CLIENTES ALIAS CLIENTES NEW SHARED depois quero fazer uma query em sql ou rdd sem atrapalhar o alias ja aberto Em Rdd convencional oDb_Clientes := tAds():NewRdd() // Abro aqui via rdd oDb_Clientes:Append() oDb_Clientes:VarPut("NOME","GIOVANY VECCHI") oDb_Clientes:Commit() oDb_Clientes:End() // Fecho o handle Em Rdd gerado por classe de tAds com a função tAds_CreateClassFromDatabase("CLIENTES") oDb_Clientes := DB_CLIENTES():OpenRdd() Em Sql usando DataSet de Ads oDs_Clientes := tAds():DsNew(1) // 1 é o tipo da query, significa de tem retorno de cursores ou handle oDs_Clientes:cQrySql := "Select * from CLIENTES Order By NOME" // Defino a query oDs_Clientes:DsExecute() // Executa a query Veja em Samples de tAds para entender. Outro esclarecimento que voce deve saber é que o ADS tem a versão gratis que não é Cliente/Servidor, Trabalha normalmente em rede mais o trafego é definido pela rede local. e a versão paga que funciona como Cliente/Servidor e internet. Nos Sample01.exe tem um exemplo que abre uma tabela no servidor da Cibertec no Mexico. Funciona como se fosse um MySql, FireBird etc. Antes eu tinha olhado para o MySql, mais decidi usar o ads por muitas vantagens que só quem usa como eu a anos pode entender. Ex: Imagina só eu tendo 3 lojas em 3 servidores diferentes, to falando em 3 servidores um em cada loja com seus dados separados. quero tirar um relatorio de vendas das 3 lojas. faço assim: 1 - Conecto na loja 1 busco todo resultado e trago para o terminal que esta executando a pesquisa 2 - Conecto na loja 2 faço a mesma coisa 3 - Conecto na loja 3 tambem Ai na minha maquina terei em buffer local os 3 resultados com varias tabelas das 3 lojas. dai vou mesclando os resultados das tabelas e posso gerar uma só com todas elas ou desejar a query que preciso conforme a necessidade desejada. Outra vantagem, depois de um resultado de uma query posso aplicar um filtro como se fosse o DBSETFILTER nela. O problema do ads é que não ha documentação para nossa linguagem. E o Rdd de harbour não esta preparado para trabalhar com objetos estilo C Sharp. Por isto eu criei o tAds. Então resumindo é assim: Voce pode usar seus fontes do jeito que esta e ir implantando as outras formas com o tempo. Lambrando que o ads não suporta indices com funções do usuario tipo NOME_SOBRENOME+MINHAFUNCAO("CAMPO") No help de Advantage tem a lista das funções que podem estar tanto nos indices como nas querys Qualquer duvida poste aqui ou me chame pelo Skype Skype: giovany.vecchi Quote Link to comment Share on other sites More sharing options...
oribeiro Posted May 30, 2014 Report Share Posted May 30, 2014 Giovany, Muito obrigado pela prontidão em responder. Vou estudar a sua resposta e os exemplos e decidir qual caminho vou tomar ao sair do DBF/CDX. Um grande abraço, Quote Link to comment Share on other sites More sharing options...
Valdir Posted May 30, 2014 Report Share Posted May 30, 2014 Olá Giovanny... Em primeiro lugar, obrigado por compartilhar com a comunidade as suas experiências e conhecimentos com o uso do ADS. Estou tentando iniciar a migração do meu Sistema para SQL e pelo que ví no seu exemplo acima, posso usar o ADS para isso. Está correto ? Tenho que instalar alguma coisa nos meus Clientes ? Obrigado Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted May 30, 2014 Author Report Share Posted May 30, 2014 Olá Giovanny... Em primeiro lugar, obrigado por compartilhar com a comunidade as suas experiências e conhecimentos com o uso do ADS. Estou tentando iniciar a migração do meu Sistema para SQL e pelo que ví no seu exemplo acima, posso usar o ADS para isso. Está correto ? Tenho que instalar alguma coisa nos meus Clientes ? Obrigado Oi Valdir. Sim, voce pode usar normalmente comandos Sql com a classe tAds e ainda usar seus codigos antigos tudo misturado. E a maior vantagem que tudo fica em OOP (programação Orientada ao Objeto ), muito pratico. Seria assim um exemplo basico: oDs_ListaVenda := tAds():DsNew(1) oDs_ListaVenda:cQrySql := "Select {Static} VENDAS.SeqLancamento, VENDAS.S_CODIGO, PRODUTOS.PRODUTO AS DESCR_PRODUTO, VENDAS.QtaVenda from SAIDAS AS VENDAS " +; "INNER JOIN PRODUTOS AS PRODUTOS ON PRODUTOS.CODIGO = VENDAS.S_CODIGO " +; "Where VENDAS.Dt_Lancamento >= _Data_Inicial_ and VENDAS.Dt_Lancamento <= _Data_Final_ ;" aadd(oDs_ListaVenda:aVarsSql,{"_Data_Inicial_",cToD("01/04/2014")}) aadd(oDs_ListaVenda:aVarsSql,{"_Data_Final_",Date()}) oDs_ListaVenda:DsExecute(200) (oDs_ListaVenda:cAlias)->(xBrowse()) Este ai retornaria os produtos q venderam neste periodo lembrando que a descrição do produto esta na tabela PRODUTOS por isto usamos INNER JOIN. Mais a vantagem maior é que com este resultado eu crio automaticamente outra tabela com estes campos gerados pela query. Crio um temporario e posso indexar o campo DESCR_PRODUTO tambem. e abrir como um RDD normal. é só eu colocar o parametro assim oDs_ListaVenda:ldsCursorsToTemp := .T. Na pasta de TADS chamada Ads Install tem as Dlls para voce instalar nos computadores. estas dlls são necessarias tanto na versão free local como na versão paga. Caso voce queira instalar um sistema remoto em um servidor para acesso via internet ou cliente/servidor voce pode pedir um trial de ads em: http://www.sap.com/pc/tech/database/software/advantage-database-server/index.html Qualquer outra duvida me adiciona no Skype: giovany.vecchi Quote Link to comment Share on other sites More sharing options...
oribeiro Posted June 2, 2014 Report Share Posted June 2, 2014 O software SAP utiliza banco de dados gerenciado pelo ADS? Quote Link to comment Share on other sites More sharing options...
marcioe Posted June 2, 2014 Report Share Posted June 2, 2014 Amigo, tem algumas empresas aqui na região que usam SAP/ABAP e o banco deles é oracle. Pelo Visto voce pode usar o que for melhor para sua empresa (ORACLE/FIREBIRD/MYSQL/SQLSERVER/ETC...) Quote Link to comment Share on other sites More sharing options...
oribeiro Posted June 2, 2014 Report Share Posted June 2, 2014 Ok! Mas o acesso ao banco fica por conta do ADS ? Quote Link to comment Share on other sites More sharing options...
netspeed Posted September 18, 2014 Report Share Posted September 18, 2014 Prezados, Estava lendo sobre os benefícios de se trabalhar com ADSRDD ao invés da DBFCDX. Estou tendo alguns problemas de performance em rede quando dois ou mais usuários abrem o mesmo arquivo. Como no momento não posso alterar meu sistema para banco de dados (firebird, mysql, etc), preciso resolver o problema para não perder o cliente. Não consegui baixar o material sobre ADS nos link´s acima. Alguém poderia me fornecer um link com este material de exemplos. Estou analisando qual seria o impacto de alterações nos meus códigos. Desde já agradeço-lhes pela ajuda. Atenciosamente, Ederson Araujo de Souza Netspeed Sistemas FWH 9.08 / xHarbour_1.21.9411 Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted September 20, 2014 Author Report Share Posted September 20, 2014 Oi Ederson, o Ads não não é apenas uma solução temporaria e sim definitiva. Alem de voce poder trabalhar do mesmo modo mais com alguns ajustes voce vai adaptando para funcionamentos em SQL cliente/servidor. Trabalho com ads desde 2004, fiz inumeras ferramentas, mais o TADS supre todas as nescessidades. Baixe o TADS pelo Tortoise https://tads-class-for-harbour.googlecode.com/svn/trunk Olhe na pasta Sample para um pequeno exemplo. e na Pasta HelptAds para o Help de tAds Qualquer duvida adicione meu skype giovany.vecchi Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.