Ir para conteúdo
Fórum Script Brasil

paulobergo

Membros
  • Total de itens

    295
  • Registro em

  • Última visita

Tudo que paulobergo postou

  1. Olá pessoal... Vejam o exemplo: create table `protocolo`.`licitacao` ( codobj integer unsigned not null auto_increment, datacadastro timestamp default current_timestamp, numero integer, ano integer, licitacao_tipo_codobj integer unsigned default 0, objeto text, obs text, datainicio timestamp default current_timestamp, datatermino timestamp default current_timestamp, excluido tinyint not null default 0, primary key (`codobj`), constraint foreign key (`licitacao_tipo_codobj`) references licitacao_tipo(`codobj`) ) engine=InnoDb; Há alguma forma de contornar o erro e fazer o MySQL aceitar dois campos do tipo timestamp que, nos Inserts, já sejam preenchidos com a data atual? Grato! abraços!
  2. Vê se ajuda... Criando as tabelas de usuários e incluindo informações create table `usuario` ( idusuario integer unsigned not null auto_increment, nome varchar(30), primary key (idusuario) ) engine=InnoDb; insert into `usuario` (nome) values ("Paulo"), ("Joao"), ("Maria"); create table `noticias` ( idnoticia integer unsigned not null auto_increment, idusuario integer unsigned default 0, noticia varchar(50) not null default '', datahora timestamp, primary key (idnoticia) ) engine=InnoDb; Incluindo algumas notícias... insert into `noticias` (idusuario, noticia, datahora) values (1, "Morreu o gato da vovó", "2009/08/01 10:15:20"), (1, "O ônibus atrasou hoje", "2009/08/02 12:25:20"), (1, "Vovó chora no enterro do gatinho", "2009/08/03 10:35:00"), (2, "Preço do Trigo abaixa 5%", "2009/08/01 10:00:00"), (2, "Aumenta o Consumo de Carne", "2009/08/06 18:15:00"), (3, "Encontrada a cura para a gripe A", "2009/07/31 18:00:00"), (3, "Procura-se Susan desesperadamente", "2009/08/04 10:00:00"); Selecionando a notícia mais recente de cada usuário. Isso, depois, será uma subquery. select max(datahora), idusuario from `noticias` group by idusuario Agora que sei qual é a notícia mais recente de cada usuário, ligo as notícias e usuários com essa subquery... Aí vai um exemplo: select a.idusuario, a.noticia, a.datahora from `noticias` as a inner join (select max(datahora) as datahora, idusuario from `noticias` group by idusuario ) as b on (a.idusuario=b.idusuario and a.datahora=b.datahora) Ok? Espero ter ajudado!
  3. Olá Denis... Grato pelas dicas (que funcionarão)... Agora, depois de muitas tabelas e triggers criados, deparei com mais alguma coisa... create function numprocesso(integer,integer,integer) returns int4 as 'select numprocesso from controle where ano = $1 and mes = $2 and dia = $3;' language 'sql'; create function codpessoa() returns bigint as 'select last_value from pessoas_codobj_seq' language 'sql'; create function codprocesso() returns bigint as 'select last_value from processos_codobj_seq' language 'sql'; CREATE FUNCTION processo_numprocesso () RETURNS "trigger" AS ' declare _codprocesso integer; _numprocesso integer; _dia integer; _mes integer; _ano integer; begin if new.numprocesso isnull then _codprocesso := new.codobj; _dia := new.dia; _mes := new.mes; _ano := new.ano; if not exists (select numprocesso from controle where ano = _ano and mes = _mes and dia = _dia) then insert into controle (dia,mes,ano,numprocesso) values(_dia,_mes,_ano,1); update processos set numprocesso = 1 where codobj = _codprocesso; else update controle set numprocesso = numprocesso+1 where ano = _ano and mes = _mes and dia = _dia; _numprocesso := numprocesso(_ano,_mes,_dia); update processos set numprocesso = _numprocesso where codobj = _codprocesso; end if; return null; else return null; end if; end; ' LANGUAGE plpgsql; CREATE TRIGGER processo_insert AFTER INSERT ON processos FOR EACH ROW EXECUTE PROCEDURE processo_numprocesso (); E' possível (e é vantajoso) criar também essas funções e procedures no banco (em troca de fazê-lo no código da aplicação)? Mais uma vez... grato!
  4. Olá pessoal! Bom... comecei a "tradução" postgres->mysql... O código a seguir vai indo bem... porém, na hora de executar a criação da tabela "p_jurídicas", recebo uma mensagem de erro: Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 13 to server version: 5.0.27-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use protocolo; Database changed mysql> show tables; +---------------------+ | Tables_in_protocolo | +---------------------+ | atividade | | pessoas | | telefone | +---------------------+ 3 rows in set (0.00 sec) mysql> create table `p_juridicas` ( -> pessoas_codobj integer, -> nome varchar(70) not null default '', -> fantasia varchar(50) not null default '', -> cnpj varchar(14) not null default '00000000000000', -> inscricao_estadual varchar(15) not null default '', -> email varchar(64) not null default '', -> senha varchar(10) not null default '**********', -> atividade1_codobj integer references atividade (`codobj`), -> atividade2_codobj integer references atividade (`codobj`), -> outras_atividades varchar(64) not null default '', -> excluido tinyint not null default '0', -> ativo tinyint not null default '1', -> constraint foreign key (pessoas_codobj) references pessoas (`codobj`), -> unique key(`cnpj`), -> primary key (`pessoas_codobj`) -> ) engine=InnoDb; ERROR 1005 (HY000): Can't create table '.\protocolo\p_juridicas.frm' (errno: 150 ) mysql>_ Eis aí o esquema (parte dele, até o ponto em que "empaquei")... create table `pessoas` ( codobj integer unsigned not null auto_increment, tipo enum('f', 'j', 's', 'd', 'o') not null default 'f', data timestamp not null default current_timestamp on update current_timestamp, excluido tinyint not null default '0', primary key (`codobj`) ) engine=InnoDb; create table `telefone` ( codobj integer unsigned not null auto_increment, pessoa_codobj integer references pessoas(codobj), numero varchar(15) not null default '', principal tinyint not null default '0', primary key (`codobj`) ) engine=InnoDb; create table `atividade` ( codobj integer unsigned not null auto_increment, nome varchar(70) not null default '', id varchar(70) not null default '', excluido tinyint not null default '0', primary key (`codobj`) ) engine=InnoDb; create table `p_juridicas` ( pessoas_codobj integer, nome varchar(70) not null default '', fantasia varchar(50) not null default '', cnpj varchar(14) not null default '00000000000000', inscricao_estadual varchar(15) not null default '', email varchar(64) not null default '', senha varchar(10) not null default '**********', atividade1_codobj integer references atividade (`codobj`), atividade2_codobj integer references atividade (`codobj`), outras_atividades varchar(64) not null default '', excluido tinyint not null default '0', ativo tinyint not null default '1', constraint foreign key (pessoas_codobj) references pessoas (`codobj`), unique key(`cnpj`), primary key (`pessoas_codobj`) ) engine=InnoDb; create function p_juridicas_atualizacao() returns opaque as ' begin update pessoas set tipo = ''J'' where codobj = new.pessoas_codobj; return null; end; 'language 'plpgsql'; O equivalente "postgre" é, até este ponto: create table pessoas( codobj serial primary key, tipo char(1) check (tipo ~ '[FJSDO]'), data timestamp default current_timestamp, excluido boolean default 'F' ); create table telefone( codobj serial primary key, pessoa_codobj integer references pessoas(codobj), numero varchar(15), principal boolean default 'F' ); create table atividade( codobj serial primary key, nome varchar(70), id varchar(70), excluido boolean default 'f' ); create table p_juridicas( pessoas_codobj integer primary key, nome varchar(70), fantasia varchar(50), cnpj char(14) unique null, inscricao_estadual varchar(15), email varchar(255) unique null, senha char(10), atividade1_codobj integer null references atividade, atividade2_codobj integer null references atividade, outras_atividades varchar(70), excluido boolean default 'F', ativo boolean default 'T', foreign key (pessoas_codobj) references pessoas (codobj) ); Como a Paula Toller, "onde foi que eu errei?" Grato pelas dicas!!!
  5. Olá Denis! Grato pela pronta-resposta... Vou já converter o código completo! Grato! abraços!
  6. Olá pessoal! Estou adaptando o código php "linux" para "iis" de um sistema público de protocolo com banco PostgreSQL e precisarei passar a estrutura das tabelas para um banco MySQL. Podem me passar uma dica de como ficaria um esquema do PostgreSQL no MySQL? Um Exemplo do esquema atual, é este: create table p_fisicas( pessoas_codobj integer primary key, nome char(70), sexo char(1) check (sexo ~ '[MF]'), estado_civil varchar(15), escolaridade varchar(49), localidade_codobj integer references localidade(codobj), nome_pai varchar(70), nome_mae varchar(70), email varchar(255), cnpf char(11) null unique, data_nascimento date, rg char(20), rg_orgao_exp char(5), rg_data_expedicao date, eh_servidor boolean default 'f', excluido boolean default 'f', foreign key (pessoas_codobj) references pessoas (codobj) ); create function p_fisicas_atualizacao() returns opaque as ' begin update pessoas set tipo = ''F'' where codobj = new.pessoas_codobj; return null; end; 'language 'plpgsql'; create trigger p_fisicas_insert after insert on p_fisicas for each row execute procedure p_fisicas_atualizacao(); Apesar de não ser da minha parte a definição das tabelas, gostaria de saber como ficaria a estrutura dessas tabelas e procedures (e se existe possibilidade de equivalência) no MySQL... Grato! abraços!
  7. Olá pessoal. Estou desenvolvendo um protótipo de sistema público de protocolo, a partir de um sistema similar da Paráiba. Originalmente, o sistema usa o PostgreSQL e aqui iremos desenvolver com o MySQL para depois retornar para o PostgreSQL... A princípio estou convertendo o código php "linux" para "iis" e deparei com a estrutura (criação) das tabelas, como a seguir: create table p_fisicas( pessoas_codobj integer primary key, nome char(70), sexo char(1) check (sexo ~ '[MF]'), estado_civil varchar(15), escolaridade varchar(49), localidade_codobj integer references localidade(codobj), nome_pai varchar(70), nome_mae varchar(70), email varchar(255), cnpf char(11) null unique, data_nascimento date, rg char(20), rg_orgao_exp char(5), rg_data_expedicao date, eh_servidor boolean default 'f', excluido boolean default 'f', foreign key (pessoas_codobj) references pessoas (codobj) ); create function p_fisicas_atualizacao() returns opaque as ' begin update pessoas set tipo = ''F'' where codobj = new.pessoas_codobj; return null; end; 'language 'plpgsql'; create trigger p_fisicas_insert after insert on p_fisicas for each row execute procedure p_fisicas_atualizacao(); Apesar de não ser da minha parte a definição das tabelas, gostaria de saber como ficaria a estrutura dessas tabelas e procedures (e se existe possibilidade de equivalência) no MySQL... Grato! abraços!
  8. Olá pessoal... Baixei o módulo php de geração de boletas (do Pablo Martins F. Costa, aqui mesmo nos Códigos Livres) e algumas coisas não funcionam... Inicialmente, tive que mudar "<?" por "<?php" em todos os fontes... corrigir alguns nomes de variáveis... Só não entendi como um programa pode receber as variáveis de um form de outra forma que não seja pelo $_get ou $_post. Em nenhum dos programas encontrei $_get ou $_post. Como resultado, todos os campos resultam no erro de variável indefinida... Exemplo: "Notice: Undefined variable: usobc in C:\Inetpub\wwwroot\phpboleto\banks\cef.php on line 201" Alguma idéia? Grato, Abraços! [php5/mysql5.0.27/xp-sp3/iis]
  9. Olá pessoal... Atualmente, desenvolvo e faço a manutenção de um sistema de protocolo na linguagem Opus (BD OpenBase) e gostaria de passar ou desenvolver o sistema em PHP. Nossos servidores são W2003 e XP (prod./desenv.), com IIS, PHP5, MySQL 5.0.27 (todos super-estáveis). Podem me sugerir algum sistema similar? Basicamente, no sistema de protocolo, temos: - requerentes (pessoa física, pessoa jurídica, órgãos das administrações municipal, estadual, federal); - órgãos da administração (secretarias, departamentos, etc., que recebem os requerimentos e processos dos requerentes); - usuários (servidores públicos da prefeitura, que incluem as informações, enviam/recebem os documentos para/das repartições-órgãos); - requerimentos (um requerimento contem uma solicitação feita pelo requerente); - processos (um processo será um conjunto de documentos, requerimentos, etc...) Exemplos: a) - Se uma pessoa precisa que seja feita a ligação de água e esgoto de sua residência, vai a uma central de atendimento da Prefeitura. - Na Central de Atendimento, um usuário irá receber a pessoa e cadastrá-la no sistema; criará um Requerimento, emitirá uma guia de recolhimento da taxa do serviço solicitado; este Requerimento será encaminhado para o órgão responsável - Secretaria de Obras, por exemplo - que efetuará o serviço; B) - Se uma pessoa não concorda com o valor do IPTU da sua residência, irá solicitar a revisão dos valores, indo a uma central de atendimento como no caso anterior. - Na Central, o usuário irá registrar a solicitação, em um Requerimento; no caso, o Requerimento será encaminhado ao órgão responsável pela arrecadação de impostos; neste órgão, será aberto um Processo e este processo irá passar (tramitar) por outros órgãos, para verificação dos dados que importam no cálculo do IPTU; a decisão (deferimento ou não do pedido) é comunicada ao usuário. Bom... em suma... é mais ou menos isso... Alguma idéia? Grato! Abraços!
  10. Olá pessoal... Gostaria de saber se é possível um código js, como o demonstrado a seguir, funcionar tanto pela Internet como em uma Intranet... <html> <head> <script type="text/javascript" src="http://meuhost.homeip.net:1166/mynet/jquery.js"> </script> <script> function pesquisaalfa(oform) { if (oform.nome.value.length > 3) { var cnome = oform.nome.value; // cnome = trim(cnome); var clink = "http://meuhost.homeip.net:1166/scripts/superquery.exe?sempresa=mynet&nolog=nolog&C05="+ cnome+"&query=clientes_alfa&nohtml=nohtml&B1=Pesquisar"; $.get( clink, { xyz: '' }, function(r) { var dados = r.split("|"); var conteudo = ""; var elementos = dados.length; for (var i=0; i < elementos; i++){ conteudo += dados[i]; } $("#C04").html(conteudo); document.getElementById("confirma").disabled = false; } ); } } </script> </head> <body> <table border="0" cellpadding="0" cellspacing="0"><tr><td> <form method="GET" action="http://meuhost.homeip.net:1166/scripts/superquery.exe" name="Form"> Inclusão de um Cliente no Plano.<br> <input type="hidden" name="sempresa" value="mynet"> <input type="hidden" name="query" value ="clientes_selecao_cpf_ou_cnpj"> Pesquisa pelo nome: <input type="text" value="" name="nome" id="nome" width="42" maxlenght="40" size="42" onkeypress="pesquisaalfa(this.form);"> <select size="2" name="C04" id="C04"><br> </select> <input type="submit" value="Confirmar" style="background:yellow;color:blue" name="confirma" id="confirma" disabled></p> </p> </form> </table> </body> </html> No exemplo acima, quando o usuário acessa a página via web, tudo funciona bem... Porém, quando alguém acessa pela Intranet, diretamente pelo endereço IP do servidor, a página não funciona... Ai, tenho que criar uma réplica da página trocando o host "http://meuhost.homeip.net:1166" ´por "http://192.168.1.1:1166" por exemplo... Já tentei "../", "../../", etc... mas parece que a jquery.js exige uma 'amarração' entre o seu endereço fixado na página e o do cliente... Bom... espero que tenham me entendido... Grato! abraços!
  11. paulobergo

    mysql50

    Olá... Semáforo? Eu uso o 5.0.27 (ou >). Não tem semáforo... nada aparece na Systray exceto se focê instalar o MySQLSystemTrayMonitor (junto com o MySQLAdministrator)... O ícone é uma engrenagenzinha cinza com um sinal verde (quando o MySQL ON) ou vermelho (MySQL OFF)... Ok?
  12. Olá... Insere um TStatusBar com uma mensagem a cada dez segundos por exemplo... e um Application.Processmesages. Ok?
  13. Olá... Para passar os dados de uma tabela do Access para outra no MySQL, ambas conectadas via ODBC, gostaria de usar uma query da mesma forma que costumo fazer com tabelas xBase, Paradox, Post, etc... Exemplo: insert into ":feiralivre:atividade" (idatividade, descricao, titulo) select 0, "ramo atividade", "ramo titulo" from "feirante" Sendo, no insert into: - "feiralivre" o catalogo no MySQL e atividade a tabela Sendo, no from: - feirante a tabela no Access. A query acima funciona com todo tipo de banco conectado via ODBC... isto é, exceto com o Access, que não reconhece (ainda) a tabela atividade no catalog feiralivre, do MySQL... Ao tentar executar a query, recebo a mensagem [Microsoft][Driver ODBC para Microsoft Access] O mecanismo de banco de dados Microsoft Jet não pôde encontrar o objeto 'feiralivre,atividade'. Certifique-se de que o objeto exista e de ter digitado seu nome e o caminho corretamente. Então, como se faz para especificar um "alias" diferente (no caso, até é de outro banco, mas também poderia ser do próprio Access) em uma query? Grato por qualquer ajuda! Abraços!
  14. Para fazer a conexão com <<qualquer>> banco de dados, via ODBC, sem o "prompt"... O Código a seguir está em um evento OnActivate de uma aplicação. If bAtivado then Exit; {EndIf} bAtivado := True; slTexto2S := TStringList.Create; slQuerySave := TStringList.Create; ShortDateFormat := 'dd/mm/yyyy'; DAMDataIniDatePic.Date := StrToDate('01'+copy(DateToStr(Date()), 3, 8)); With Database1 do Begin Connected := False; AliasName := 'feirante'; LoginPrompt := False; Params.Values['user name'] := 'default'; Params.Values['password'] := 'h3sk33f98sf'; Connected := True; End;{With Database1} PagamentosQuery.Open; FeirantesQuery.Open; Ok?
  15. Olá. Uso ODBC não só para o Access, mas para todo BD. Prefiro TDatabase e TQuery... 0 (zero) problemas para select, insert, update, delete... O chato é só ter que ficar procurando a tradução das funções SQL compatíveis com os outros SQL (MySQL, xBase, SQLServer, etc...) mas no final o resultado é excelente... Ok?
  16. Olá... Bom... vejo que seu problema é na verdade mais uma falta de análise de negócio... O tratamento (principalmente se analisar a legislação vigente) para os serviços é a mesma dos produtos... Se você der uma olhada na legislação que normaliza as aplicações "comerciais", verá que você deve manter uma tabela de produtos e serviços e não uma tabela só para produtos e outra coisa para serviços... Então, a primeira coisa a fazer é incluir os serviços na sua tabela. Para, então, dar um tratamento especial só a produtos (uma tabela de preços, por exemplo, que não precisa conter os serviços), você usará outros campos, como a unidade, o tipo (tipo P=Produto S=Serviço) ou outros... Para você parametrizar muitissimo bem o seu sistema, mesmo que ele inicialmente não precise prestar informações fiscais, use os layouts definidos pela legislação para manter os dados de vendas, compras, pedidos, produtos, serviços, estoque, inventário, clientes, fornecedores, etc... isso você encontra tranquilamente nos sites que falam, por exemplo, sobre o Sintegra (exemplo: Sintegra... Especialmente no seu caso, passando a tratar os serviços como produtos, já terá 90% do problema resolvido... Ok?
  17. paulobergo

    Odbc

    Olá... As dicas aí dos colegas são válidas... Bom... eu uso TDatabase+TQuery para acessar >qualquer< banco de dados... access, excel!!!, dbaseIII, dBaseV, dBase7, Paradox, MySQL, Oracle, SQLServer, etc. etc. etc... No caso do Access, será preciso você se familiarizar com a sintaxe do seu SQL... Exemplo: MySQL select nome, substring(nome, 1, 10) as parte1 from minhatabela; Access select nome, mid(nome, 1, 10) as parte1 from minhatabela; VisualDbase7 select nome, substring(nome from 1 for 10) as parte1 from ":acme:minhatabela.dbf" E assim vai... Entre os bancos, prefiro o MySQL (uso a versão 5.0.27)... mas trabalho com outros, como Paradox, VisualDBase, Oracle, SQLServer, Firebird e PostGreSQL... Para conexão ao banco uso: Se Windows, ODBC na maior parte dos casos, ZeosLib e Mediator Se Linux, ODBC e Mediator. Inclusive pelo Access também acessamos tabelas MySQL... via ODBC... Ok?
  18. ExecSQL? Use Open... With SQLQuery1 do Begin Close; SQL.Clear; SQL.Add('Select * from TBPREVIS order by DATEMISS ASC'); Open; // ou poderia ser Active := True; end;{With SQLQuery1} ExecSQL é para executar Insert, Update, Delete... Para visualizar, Use Open ou Active Ok? Agora se você quer ordenar realmente os dados da tabela, para que fique "naturalmente" em ordem de data, só criando a tabela de novo, a partir de uma query como essa... algo assim... create table `tabela_nova` select * from tbprevis order by datemis asc Aí sim... até que você incluisse novos registros, a 'tabela_nova' ficaria ordenada por data... Ok?
  19. Então Lívio... o que poderia ser pior do que produtos que ainda não tenham o código de barras, seria tentar criar uma numeração com base em data e hora... Como os colegas sugeriram, veja mais sobre como é formado o código EAN... o caminho é este mesmo... Simplificando, todo código EAN de produto brasileiro, deve começar por 789, MAS SOMENTE os registrados na EAN Brasil... Assim, você não deve, em hipótese alguma, iniciar um código seu, particular, para identificar um produto caseiro, etc..., com 789... Outra coisa, é não iniciar os produtos com o dígito 2. O "2" é reservado para produtos com unidade variável (pesados ou contados)... procure mais dados sobre os códigos EAN junto aos sites das balanças, como Toledo, Filizola, Urando, etc... Programe seus códigos num esquema <grupo>, <subgrupo> <item>... exemplo: prefixo (sempre "123") grupo (três digitos) subgrupo (três digitos) item (três digitos) 001001 Laticínio, Iogurte 123001001001x Iogurte Caseiro Vários Sabores 123001001002x Iogurte Caseiro Morango 123001001003x Iogurte Caseiro Pessego 001002 Laticínio, Queijo 123001002001x Queijo Frescal Sabor da Montanha 123001002002x Queijo Parmesão Sabor da Montanha 123001002003x Queijo Minas Padrão Sabor da Montanha 001003 Laticínio, Leite 123001003001x Leite Longa Vida 1litro Vaca Linda 123001003002x Leite Longa Vida 1litro Vaca Linda Light 123001003003x Leite Longa Vida 1litro Vaca Linda Desnatado + se o sistema é comercial e estiver ligado ao PED Processamento Eletrônico de Dados ou ECF - Emissor de Cupom Fiscal, lembra de que os códigos tem que ser mantidos inalterados por 5 anos! Ok?
  20. Acho que seu tópico será movido para outro lugar... Mas, não sei quanto ao FireBird... veja um exemplo de query com subqueries, válido no MySQL 5.027 ou maior... Tenho, em uma linha, a quantidade total de clientes, a quantidade dos que estão em MG e a quantidade dos que não estão em Minas... Claro que você poderá trocar as validações para outras que desejar... select quantosaotodo, quantosmg, quantosforamg from (select count(*) as quantosaotodo, 0 as indice from clientes ) as query1, (select count(*) as quantosmg, 0 as indice from clientes where estado="mg" ) as query2, (select count(*) as quantosforamg, 0 as indice from clientes where not (estado="mg") ) as query3 where query1.indice=query2.indice and query1.indice=query3.indice; Ok? Veja... tenho três "subqueries"... cada uma retornando uma determinada informação... Creio que consiga algo parecido com o Firebird sim... ok?
  21. Olá... Sobre códigos, é importante saber que cada tipo de código tem uma finalidade bem específica... Como os colegas aí já demonstraram, código EAN não deve ser usado para marcação do tipo hora/data... e sim para identificação de produtos (o que é feito no mundo todo há quase uns trinta anos)... então, querer usar o código EAN para outra finalidade, é andar na contra-mão da história... Codigos "genéricos" como o 3x9 e o 2x5 (eu prefereria este último), podem ser usados... mas depende também do tipo de impressão e papel (ou embalagem) no qual será impresso... Se a impressão será feita em caixa de papelão (data e hora de embarque, por exemplo), o ideal seria o 3x9... Ok? Agora... qual a finalidade deste código com hora e data? Abraços!
  22. Olá pessoal... Para resolver o problema, foi preciso fazer três atualizações no Delphi... na sequência: a) desinstalar a Indy10. B) fazer as atualizações D6_upd2_ent c) del6_ent_rtl2 d) d6_rtl3 O componente TidFTP até apresentou ainda um probleminha de identificação da classe do tipo de transmissão ftbinary ou ftascii mas contornei isso... O problema agora fica em como fazer funcionar uma conexão SFTP com esses componentes da Indy10... Mineiramente falando, "ô trem complicado!" Mas isso é para outro post!!! Grato e abraços!
  23. Então... Era mais simples dizer que trata-se de um arquivo texto tipo "Sintegra", com número da nota fiscal, CFOP, Operação, valor da nota, base de cálculo, etc.. etc... etc... até a coluna alíquota (0000, 2500, 1700)... Exemplo... 0000835910P000000000109200000000000000000000000000000000000000000000000010921700 11111122223444444444444455555555555556666666666666777777777777788888888888889999 1=Número do Documento, 000083 2=CFOP, 5910 3=Operação, P=Própria 4=Valor Total, R$ 10,92 5=Base de Cálculo do ICMS, R$ 0,00 6=Valor do ICMS, R$ 0,00 7=Valor de Isentos, R$ 0,00 8=Valor de Outros, R$ 10,92 9=Alíquota do ICMS, 17,00% e quando há mais de um registro para a mesma nota, eles fiquem ordenados pela alíquota, isto é, se uma nota "ocupa" três linhas, devem ficar classificadas pela alíquota... por exemplo, 0000, 1700, 2500 Pronto! Eu preferiria ordernar os dados na query de leitura da tabela do que ordenar o arquivo texto... Neste caso, as dicas aí dos colegas são perfeitamente válidas... Apenas tomar cuidado com a memória... pois há arquivos de Sintegra cabulosos... 126caracteres X 62mil registros, p.e., requerem 7.812.000 bytes, o que eu acho que estouraria um TStringlist ou TMemo... aí a solução seria usar uma leitura do arquivo texto (AssignFile+Reset+ReadLn), sequencial, e gravação do resultado em outro arquivo (AssignFile+ReWrite+WriteLn)... Ok?
  24. E'... a instalação da Indy10 é realmente para o Delphi6... tenho também a instalação para Delphi5 e Delphi7... Quanto à versão do Delphi6, também tenho todas as units... inclusive já instalei todos os componentes compilando as units e os packs (os dpk)... sem problemas... A encrenca toda é que dá esse problema de versão... Mas vou arriscar remover de novo e instalar a Indy do Delphi5 para ver no que dá... Continuo na tentativa!!! Grato! Abraços!
×
×
  • Criar Novo...