Ir para conteúdo
Fórum Script Brasil

etspaz

Membros
  • Total de itens

    62
  • Registro em

  • Última visita

Tudo que etspaz postou

  1. Prezados, boa noite! Estou com um problema em um projeto de automatização de processos via robôs (RPA). Há uma divergência na empresa sobre usar licenças do Automation Anywhere ( AA) ou AutoIT ( AI). Na prática conseguimos o AutoIt 100% free. Mas, por questões que fogem à nossa alçada, há uma vertente forte meio que forçando o uso do AA. EU dei meu parecer sobre usar o AI mesmo, porém, foi me questionado se futuramente seria possível migrar os scripts dos robôs escritos em AI para scripts em AA. Sei que AA suporta scripts VBA ou JS... mas não sei o custo operacional , esforço necessário, torna viável essa migração. Por favor, alguém aqui já passou por situação parecida? Sabe se a migração é viável? Att., Ernesto.
  2. Bom dia! Estou utilizando python para efetuar a carga de arquivos num banco. E estou com o seguinte problema. O arquivo [e delimitado por ;. então usei a funcao: dados = csv.reader(open('xxx.txt','r'),delimiter=';') Mas ocorre que em alguns campos contem o caractere ; no texto... e o python separa o campo em duas colunas... ai bagunca td. já me informaram que as areas que geram os dados não alteram para incluir um qualificador de texto, que resolveria meu problema. alguém j[a teve problema parecido? Consigo descobrir em qual linha tem mais delimitadores do que o normal, mas como tem mais de um campo que pode ter o caractere ; não consigo definir qual caractere que devo eliminar. Desde já agradeco a atencao. Att, Ernesto Teodoro da SIlva
  3. Boa tarde, Pessoal, preciso da ajuda de vocês para resolver um problema: Onde trabalho utilizamos um hd externo, que criei duas partições, deixando uma com acesso compartilhado. Acontece que recentemente fui remover alguns usuarios que acessavam o hd e fiz algo que não devia. Fui em Propriedades>> Segurança e removi todos usuarios. Fiz isto porque tinha varios que eu deveria tirar o acesso e achei que seria mais facil remover todos e reatribuir acesso aos que deveriam permanecer, já que era bem menor qtde que ficaria. Assim que excluí todos não consegui mais acessar as pastas desta partição, dá a mensagem informando que não tenho permissão para acessar a pasta, mesmo estando com o administrador da mquina local. Tentei adicionar novamente os usuarios ao grupo de acesso, clicando em adicionar e selecionando os usuarios admin todos. ususarios... dando controle total. Eu consigo configurar, mas não surte efeito algum, continuo sem acesso às pastas. e não consigo nem copiá-las para outra partição para formatar esta. Por favor, alguém sabe me dizer o que posso fazer para resolver este problema, pois preciso conseguir acessar as pastas e pelo menos salvar os dados contidos na partição, assim posso removê-la e recriar sem preocupação. desde já agradeço a atenção.
  4. Boa tarde a todos, Eu estou pesquisando a melhor forma de desenvolver uma aplicação aproveitando os recursos do SAS, delphi, sql server e oracle. também irei trabalhar muito com arquivos txt. Gostaria de saber se alguém por aqui conhece o SAS, já teve alguma experiencia de desenvolvimento com delphi e sas. Se existem componentes, pois o SAS é meio desconhecido, porque sempre que pesquiso na net traz varias coisas que não tem nada a ver. Atualmente todo processo de carga, manipulação e apresentação dos dados é feita com o delphi, que também busco informaçãoes em uma base em oracle, tanto os dados do ftp quanto do oracle são manipulados e gravados num banco do sql server. A intenção é tirar todo este trabalho da aplicação em delphi e passar a executar com o SAS, pois avaliamos que teremos ganho de performance e desempenho. Deixando apenas a interface para o delphi que poderia rodar no cliente sem problemas. Esta interface também terá seus próprios processos, pois estes dados são utilizados em diversas analises, por analistas focados no negócio da empresa, que atua no setor de telecom. Sou iniciante, diria, de nivel 0 do SAS, pois participei apenas de um treinamento, modulo 1, muito bom, mas nunca havia trabalhado com SAS, inclusive vim saber de sua existencia na empresa que trabalho atualmente. Com delphi trabalho a pouco tempo, cerca de 4 anos, sempre aprendendo algo novo, mas também nunca havia visto falar em aplicação com delphi e sas. Espero poder contar com a experiencia dos membros deste forum. Trabalho com o SAS 9.1 service pack 3, recém instalado em minha máquina. Delphi 2007, sql ser 2000 e oracle 9. Desde já agradeço a atenção.
  5. Bom dia, Primeiro, obrigado pela atenção. Sobre o prog. recomendado, eu já testei e também não está encontrando, eu acho que como usei ctrl+x, não foi deletado da minha maq. só removido. Já do servidor onde foi deletado não tenho permissão para insatlar e rodar os programas.
  6. Bom dia Pessoal, Cometi uma besteira e preciso da ajuda de vocês. Eu tinha um arquivo do access na minha máquina, que removi para um diretório na rede, via ctrl+x. O problema é que o arquivo foi excluido do diretório na rede, então usei o undelete para tentar recuperar na minha máquina, pois na rede não consigo. Mas ele não encontra. Será que é porque dei ctrl+x, e não deletei? Tem como recuperar na minha maq. nesta situação? Desde já, agradeço a todos!
  7. Boa tarde pessoal, Estou fazendo uma consulta no oracle, que me retorna uma referencia cruzada. Aparentemente está normal, mas fiz uma pequena alteração no group by e alterou o resultado, como a query montei com ajuda de colegas na net, não sei qual é a forma correta. select ACCT_NBR, sum(decode(CLASSE,'AD ROAMING',charge_cr_amt,0))"AD ROAMING", sum(decode(CLASSE,'ASSINATURA',charge_cr_amt,0))"ASSINATURA", sum(decode(CLASSE,'CORREIO MÓVEL',charge_cr_amt,0))"CORREIO MÓVEL", sum(decode(CLASSE,'DESCONTO ASS FRANQUIA',charge_cr_amt,0))"DESCONTO ASS FRANQUIA", sum(decode(CLASSE,'DESCONTO DADOS',charge_cr_amt,0))"DESCONTO DADOS", sum(decode(CLASSE,'DESCONTO OUTRAS RECEITAS',charge_cr_amt,0))"DESCONTO OUTRAS RECEITAS", sum(decode(CLASSE,'ESCONTO VC1',charge_cr_amt,0))"DESCONTO VC1", sum(decode(CLASSE,'DSL INT',charge_cr_amt,0))"DSL INT", sum(decode(CLASSE,'FRANQUIA',charge_cr_amt,0))"FRANQUIA", sum(decode(CLASSE,'PARCELAMENTO DE EQUIPAMENTO',charge_cr_amt,0))"PARCELAMENTO DE EQUIPAMENTO", sum(decode(CLASSE,'SERV EVENTUAL',charge_cr_amt,0))"SERV EVENTUAL", sum(decode(CLASSE,'SMS - PTA',charge_cr_amt,0))"SMS - PTA", sum(decode(CLASSE,'SMS - PTP',charge_cr_amt,0))"SMS - PTP", sum(decode(CLASSE,'PACOTE ZAP',charge_cr_amt,0))"PACOTE ZAP", SUM(charge_cr_amt)"TOTAL" FROM (SELECT CHARGE_CR_ITEM.ACCT_NBR, CLASSE,CHARGE_CR_ITEM.charge_cr_amt FROM CHARGE_CR_ITEM INNER JOIN TAB_CLASSE T ON T.CAPTN_CD = CHARGE_CR_ITEM.CAPTN_CD WHERE CHARGE_CR_ITEM.LAST_BILL_DT = '20091016' AND CHARGE_CR_ITEM.CYCLE_CD = '78' AND CHARGE_CR_ITEM.CHARGE_CR_AMT <> 0 AND CHARGE_CR_ITEM.ACCT_NBR IN ('2036438273', '0122918103', '2046014486', '2017736468', '2032463104', '0122745278', '2046368293', '2028747547', '2046174031', '0142113041', '0121302166', '2042631597', '2038157407', '0010569210', '0000205224', '0001336454', '2046655030', '2031185815', '2037431523', '2045214936', '2046682329', '2033063542', '2041370548')) GROUP BY acct_nbr,CLASSE a única diferença quando tiro a classe do group by, retorna resultado diferente. Peço auxilio aos colegas mais experientes, pois não sei se devo ou não incluir. eu achava que não podia deixar de fora um campo do group by que não está em função. Desde já, agradeço.
  8. bom dia esta opção está marcada sim, a única opção que não está marcada é: windows messages. outra coisa que esqueci de colocar é que não são todos os fontes, tenho um projeto em que isto acontece só com um fonte (arquivo.pas), nos outros o debug funciona normal. Não sei se tem a ver, mais tenho a impressão q o problema começou depois q peguei uns trechos do fonte e copiei no bloco de notas e depois copiei no .pas, parece que o bloco de notas incluiu alguma coisa que eu não enxergo.
  9. O f8 foi só um exemplo, tanto um quanto outro da na mesma, pois pára numa linha quando está executando em outro ponto. por exemplo, quero dar f7 pra entrar numa função, a linha que chama a função está marcada, como se fosse passar por ela, mas não vai passar, já está em outro ponto.
  10. Bom dia pessoal, Eu to trabalhando com delphi 2007 e ele está com um sintoma estranho. Quando coloco um breakpoint, o debug nunca pára na linha correta. Ex: if (cbxProcesso.Text=' ') or (cbxProcesso.Text='') then ShowMessage('Informe o Processo') else begin if copy(CBXPROCESSO.TEXT,1,1) = '4' then TABELA:= 'RECEITAFECHAMENTO' ELSE if (copy(CBXPROCESSO.TEXT,1,1) = '2') OR (copy(CBXPROCESSO.TEXT,1,1) = '3') THEN TABELA:='TRAFEGO'; se coloco o breakpoint na primeira linha, quando para ele já estará na sexta linha. Na verdade ele mostra a linha onde coloquei, mas vou dar f8, por exemplo, e vejo q esta em outro ponto, nunca a linha q está marcada é onde está passando realmente. Não está dando nenhum erro, mas dificulta bastante o debug. alguém já passou por isso com delphji?
  11. consegui criar o linked server e acessar corretamente, seguindo o exemplo que encontrei num bolg: EXEC sp_addlinkedserver @server = ‘ORA’, @srvproduct = ‘Oracle’, @provider = ‘OraOLEDB.Oracle’, @datasrc = ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))’ GO EXEC sp_addlinkedsrvlogin @rmtsrvname = ‘ORA’, @useself = ‘FALSE’, @rmtuser = ‘orausr’, @rmtpassword = ‘orapass’ GO o exemplo usa o oracle xe, mas serviu para o 9i que é o que uso. Porém, agora estou com um problema de conversão entre os tipos number do oracle. Este problema já foi relatado pelo autor do exemplo, mas a solução que ele deu não me serve. usar openquery e dar um to_char no campo number. mas preciso fazer join com uma tabela do sql server, aí ele reclama: Server: Msg 7356, Level 16, State 1, Line 1 OLE DB provider 'MSDAORA' supplied inconsistent metadata for a column. Metadata information was changed at execution time. OLE DB error trace [Non-interface error: Column 'QUANTIDADE' (compile-time ordinal 13) of object '"CRCOW"."TB_RECEITATRAFEGO"' was reported to have a DBTYPE of 130 at compile time and 5 at run time].
  12. Boa tarde pessoal, Estou precisando criar um linked server de um banco no sql server 2000 para o oracle 9i. Seguindo alguns exemplos da net, fiz o sequinte: EXEC sp_addlinkedserver 'CRC','Oracle','MSDAORA','IP SERVIDOR' EXEC sp_addlinkedsrvlogin 'CRC2', 'false', NULL, 'USUARIO', 'SENHA' ele até cria, mas não funciona, quando tento acessar da o seguinte erro: Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'MSDAORA' reported an error. [OLE/DB provider returned message: ORA-12514: TNS:listener não conseguiu resolver o SERVICE_NAME fornecido no descitor de conexão ] OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]. segue a query de teste utilizada: select * from CRC..CRCOW.TB_RECEITATRAFEGO WHERE UF = 'PA' AND CICLO='71' AND COMPETENCIA = '200904' AND DTCHAM ='8/4/2009' AND CSP = '' AND TARIFA='CHAMADA LOCAL' AND DIRECAO = 'MMO' AND SENTIDO = 'S' AND HORARIO='N' AND AREAORIGEM = 'PAH037' AND PLANO = 'PLANO NAC6 100 MIN' AND INDICADORFATURADO='0' AND VALORLIQUIDO='0' AND VALORBRUTO='7,04' AND DURACAOFRANQUEADA='0' AND DURACAOTARIFADA='1326' AND DURACAOREAL='1272' AND QUANTIDADE=15 AND INSERT_DT='10/4/2009' AND CONTA='200904' A configuração no tsnames.ora: # CRC CRCPR1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ip servidor)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = crcpr1) ) )
  13. Boa tarde, Eu estou fazendo uma consulta numa base oracle que me traz em média 1000000 de registros e depois faço a inclusão para um banco sql server para poder alterar, pois a base do oracle só posso consultar. Durante a inclusão, depois de um tempo começa a dar o erro: reader has no more. Utilizo dbexpress para buscar no oracle e ado no sql server. Pesquisei na net e achei uma sugestão de também usar dbexpress com clientdataset para incluir no sql server. Fiz isto, mas aí ocorre outro erro de sql: Classe: EOleException Mensagem de Erro: SQL State: 01000, SQL Error Code: 3621 The statement has been terminated. SQL State: 22007, SQL Error Code: 242 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value Mando as datas do mesmo jeito. Fazendo um teste no query analyzer vi que não tem erro na instrução sql. Tem alguma configuração dos componentes que altera o formato de data? Sobre o primeiro erro: reader has no more, alguém tem alguma sugestão? Aproveitando, quais as vantagens e desvantagens entre ado e dbexpress? Lembrando: uso delphi 2007 e sql server 2000. a base do oracle é 10g.
  14. Boa tarde, Consegui fazer funcionar do jeito com o seu exemplo, porém, foi só em um form de teste. O que estava me atreapalhando era que eu não posicionava o scrollbar corretamente sobre a barra de rolagem do grid. fiz isto, alias, é muito chato, você tente tenta... até ele ficar. Mas o problema é que este teste eu fiz num form com dois dbgrids direto no form, align = alnone; Já nos grids que realmente preciso fazer isto, estão dentro de uma celula de um gridpanel e align = alclient, pois o form fica maximizado quando executa e tem uma função para tratar o controle de resolução de monitor em relação ao aplicativo. então, não consigo colocar um scrollbar no dbgrid, só se deixar seu align = alnone ou custom, mas aí, fica tudo desconfigurado. Não quero ser muito chato, nem parecer preguiçoso, mas sei que pode-se criar um metodo para os controles, mas não sei como. Tem algum exemplo que possa ser postado?
  15. Eu segui as instruções, coloquei o scrollbar, deixei o Kind como sbHorizontal, pois preciso mover na horizontal. NO evento onScroll, coloquei o codigo. Mas só movimenta na vertical e ainda volta para a posição. if ScrollBar2.Position < posicao then begin SendMessage(dbgFacPerf.Handle, WM_VSCROLL, SB_LINEDOWN, 0); end else begin SendMessage(dbgFacPerf.Handle, WM_VSCROLL, SB_LINEUP, 0); end; testei com SB_LINELEFT/SB_LINEDOWN; SB_LINERIGHT/SB_LINELEFT ; SB_PAGEUP/SB_PAGEDOWN E SEMPRE DA NA MESMA, SÓ MOVIMENTA NA VERTICAL. O QUE PODE ESTAR ERRADO, É O PARAMETRO QUE ESTOU USANDO? ANDEI PESQUISANDO E DESCOBRI QUE ESTOU TRATANDO AS MENSAGENS ENVIADAS AO WINDOWS, CORRETO? INCLUSIVE DESCOBRI COMO TIRAR A BARRA DE ROLAGEM, SÓ POR CURIOSIDADE. ME DESCULPE PELA IGNORANCIA, MAS É UMA BESTEIRINHA E EU NÃO TO CONSEGIUNDO FAZER. OS CARAS QUEREM MOVER SÓ UMA BARRA DE ROLAGEM...
  16. Bom dia Jhonas, Realmente não consegui entender corretamente. ScrollBar1.Position > tenho que declarar como? Confesso que a pressa me atrapalhou um pouco no entendimento, porém, tem hora que você tem que fazer algo funcionar rápido, depois estuda os conceitos. Te agradeço pela atenção e gostaria se pudesse me explicar um pouco o código. Demorei pra responder porque desviei os trabalhos por uns dias.
  17. beleza Jhonas, Eu coloquei o codigo e percebi que realmente acompanha, porém, ainda não achei o evento certo para acionar estes metodos quando eu clicar na barra de rolagem. Estou testando cada evento. Se você puder me dizer qual evento eu ganho um tempo. Valeu pela ajuda!
  18. Bom dia, Eu tenho varios grids numa tela e preciso fazer com que ao mover a barra de rolagem da direita para esquerda e vice versa de um grid, todos grids tenham o mesmo movimento. Não se trata de definir o master source, pois alguns grids estão ligados ao mesmo datasource, quando se move de registros eles acompanham. Mas no caso, não estou me referindo a navegar pelos registros. Tem alguma propriedade do grid que controla a barra de rolagem, para eu tipo forçar todos terem a mesma posição quando rolar a barra de algum?
  19. Bom dia Jhonas, Estou com delphi 2007, procurei por alguns exemplos, mas não encontrei pasta alguma com exemplos. Olhei todas as pastas da codegear em arquivos de programas.
  20. Boa tarde pessoal, Estou tentando gerar uns gráficos com dbchart, mas ta meio chato. Vejam: frmGraficoquantidade.qryGrafico.first; while not frmGraficoquantidade.qryGrafico.eof do begin // criação da série do tipo Linha LineSerie := TLineSeries.Create(Self); LineSerie.Title:= frmGraficoquantidade.qryGrafico.FieldByName('Categoria').AsString; LineSerie.AddY( frmGraficoquantidade.qryGrafico.FieldByName('qtde').AsFloat,frmGraficoquantidade.qryGrafico.FieldByName('FATURA_Competencia').AsString); LineSerie.Active:= True; LineSerie.Visible:= true; frmGraficoquantidade.DBChart1.AddSeries(LineSerie); frmGraficoquantidade.qryGrafico.next; end; frmGraficoquantidade.ShowModal; cheguei até este ponto com ajuda da internet, mas agora não sei o que falta, pois no grafico não mostra as linhas esperadas. deixei a opção de check do dbchart para o usuario selecionar, e como deixei a title das series com informações do grafico, eu sei que traz os dados corretos, mas falta por isso pra funcionar. fica um grafico vazio sem kinha nenhuma, mas na legenda mostra os valores para cada serie. peço a ajuda de vôcês. Desde já, agradeço. Paz e Amor!
  21. Bom dia pessoal, tenho uma rotina com delphi 2007 que carrega dados de varios arquivos txt para um banco sql ser 2000. Utilizo adoconnection, ADOQuery A media de arquivos são acima de 5000 e em o tamanho varia de 10MB a 1Gb, ou seja, tem arquivo que tem 100, 1000 outr4os tem 10000, 100000, 1000000... Sempre quando está carregando os dados da falha na conexão depois de algum tempo e da as seguintes mensagens: falha na conexão ou tempo excedido. Aí tenho que sair deletando os registros referentes ao arquivo que estava sendo carregado no momento da falha, para reiniciar o processo. O que eu poderia fazer para evitar este tipo de problema?
  22. Bom dia, Quero informar que o problema não acontece mais. O que me deixa curioso é que não alterei nada que pudesse influenciar, só mudei o parametro de detalhe do metodo list para true: IdFTP1.List(ListBox1.Items,arqs[x],true); isto porque preciso pegar a data de criação e com os detalhes ativados ele me traz esta informação, mas não acredito que isto tenha a ver com o problema. Agora quando tem o arquivo ele traz e se não tem não acontece nada, aí vem outra função que verifica se todos arquivos do stringlist foram encontrados, se não, gera um txt informando os arquivos que eram pra estar disponiveis e não estão, tá funcionando como eu queria.
  23. Churc, O asterisitico é necessário, pois realmente passo quase o nome todo, porém: arqs.Add('TRAFEGO_POS_'+QR_FTP.FieldByName('UF').AsString+'_'+QR_FTP.FieldByName('CICLO').AsString+'_'+ANO_MES_CICLO+'*'+'.gz'); depois de ano_mes_ciclo vem o dia que pode ser qualquer um do periodo, eu não sei qual virá, pode ter mais de um arquivo por ano_mes_ciclo. em média são 12(ANO_MES) * 7(CICLO) * 27(uf) * qtd_dias_para_cada_ano_mes_ciclo. visto que existem outros arquivos com que dieferem só no ano,ou mes, por isso informo quase todo nome, para não pegar arquivo errado, só o dia que não tenho parametro. agora sobre os códigos seu e do Douglas, vou analisar e mais tarde posto algo.
  24. Bom dia pessoal, Problema parcialmente resolvido. decobri como pesquisar com * no ftp: vejam: //pra listar os nomes de arquivos que podem estar no ftp arqs.Add('TRAFEGO_POS_'+QR_FTP.FieldByName('UF').AsString+'_'+QR_FTP.FieldByName('CICLO').AsString+'_'+ANO_MES_CICLO+'*'+'.gz'); //depois de conectar e seguir ao diretório desejado //pra listar os arquivos IdFTP1.List(ListBox1.Items,arqs[x],false); //se encontrar os arquivos if ListBox1.Items.Count > 0 then begin for indice:=0 to ListBox1.Items.Count -1 do begin try //inicia a transferência do arquivo IdFTP1.Get(ListBox1.Items.Strings[indice], 'Dir_local\'+ ListBox1.Items.Strings[indice],true); except on e:exception do showmessage(e.Message); end; ... o problema é que IdFTP1.List(ListBox1.Items,arqs[x],false) só está funcionando quando encontra e traz os arquivos corretos, mas quando não existe o arquivo dá o erro: First chance exception at $7C812A5B. Exception class EIdReplyRFCError with message 'FECHAMENTO_CICLO_POS_AC_12_200906*.gz: No such file or directory. '. Process Project1.exe (5208) não entendo o q acontece, pois esta função é justamente para listar os q existem e não ter problema de tentar copiar algo q não existe, correto?
  25. Já descobre que estava fazendo errado, quanto passava: Ele estava realmente tentando escrever com o *, você estava certo Porém não sei como passar o nome com o * mesmo para listar todos que preciso, e pegar só o nome real dos arquivos listados, pra depois mandar copiar, tipo: IdFTP1.get('/DIR_FTP/'+NMREAL,DIR_LOCAL\'+ NMREAL,true );
×
×
  • Criar Novo...