COBOL & Mysql

Releases EXTMYSQL.

Data Descrição
13/06/2013 Liberado tratamento de multiplas conexões ao banco (Máximo 5).
Possibilitado acessar tabelas de DB´S diferentes simultaneamente bem como IP´s diferentes. Campos PIC S9(X) COMP-3 retornando valor positivo. O conversor para numeros negativos usava um campo sem sinal.
02/07/2013 Tratamento de chaves com campos que aceitam valores nulos, o comando START não funcionava, ignorava os campos nulos.
03/07/2013 File Status "02" quando read de um registro duplicado.
04/07/2013 Alteração anterior comprometeu "READ NEXT" retornando sempre o mesmo registro.
10/07/2013 Tratamento de bloqueio de registros no rewrite estava alterando o FILE-STATUS quando tinha de desbloquear um registro. Neste caso retornava FS = "00" aao invéz de "23".
17/07/2013 Otimizado rotina de bloqueio de registros, eliminado rotina redundante. Alteração motivada por queixa de alguns clientes tendo registro bloqueado por mais de 6 horas, durante remontagem.
17/07/2013 Incluido rotina que retorna o nome de cada campo da tabela a partir de uma tabela pré informada. É necessario ter uma tabela aberta anteriormente via comando "OPEN".
25/07/2013 Incluido possibilidade de a rotina gerar automaticamente Log dos comandos de I-O, possibilitando reconstruir toda ou parde da base de dados.
13/08/2013 Incluido rotina para executar uma query no mysql e salvar o resultado para um determinado arquivo conforme a FCD passada. Possibilita após a chamada da rotina executar um comando read que retornara a tabela de acordo com o comando anteriormente executado.
15/08/2013
  • Criado rotina MysqlConecta que estabelece a conexão ao banco de dados sem a necessidade de abrir um arquivo via comando "OPEN", e com isso executar possibilita executar comandos Mysql independente de demais arquivos.
  • Criado comando MysqlComando que executa o comando Mysql vinculado a conexão estabelecida conforme parametro retornado comando MysqlConecta.
  • Criado comando MysqlDesConecta que desconecta conexão feita via MysqlConecta.
  • Os recursos adicionados logo acima tem como finalidade ampliar o leque de recursos, podendo explorar livremente os recursos de um banco de dados
21/08/2013
  • File Status 9 35, quando ecessava tabelas em IP diferentes. Trocado local onde salva dbase da tabela, que estava na estrutura onde ficam definidos as caracteristicas da tabela e mesmo em DBs diferentes era armazenado numa unica definição. Agora fica junto com as definições da tabela em uso, da mesma forma com que é feito o controle da conexão.
  • Criado rotina de registro para cada terminal usando o EXTMYSQL conectando ao banco de dados da IMEDIATA. Cada cópia deverá ser regitrada.
31/08/2013 FS "02" apenas para leitura direta. Não retorna "02" para READ NEXT nem PREVIOUS.
19/09/2013 Incluido monitoramento de releases (EXTCNTR). Possibilita rastreamento de releases em uso no cliente.
19/09/2013
  • Mudado filosofia de acessos sequenciais, criando paginação em 1000 registros.
  • A adoção desta filisofia, eliminou a limitação que existia quanto ao comando START, que se tornava lento a medida em que aumentava o tamanho (numero de registros) de uma tabela.
20/09/2013 Corrigido erro 114 na chamada do MYSQLCONECTA.
20/09/2013
  • Criado variavel EXTMPAG, possibilitando ao usuario configurar numero de registros paginados.
  • SET EXTMPAG=2000 Faz com que a paginação a cada comando START seja de 2000 registros ao invéz de 1000 como definido originalmente.
23/09/2013
  • Criado variavel EXTMLOC, Configura tempo de bloqueio de registro, em segundos.
  • Originalmente os programas incluiam no MONTA-ORDER o parametro "LIMIT", fazendo com que o novo recurso do EXTMYSQL de paginar desse problemas. Variavel vinda do MONTA-ORDER passou a ser tratada separando o LIMIT enviado para variavel W-CMDLIM.
25/09/2013 Corrigido erro 114 quando usado o recurso "MysqlQueryFCD", após leitura do ultimo registro acessava memória inexistente.
29/09/2013
  • O bloqueio de registro em outra thread caducado, não estava sendo derrubado.
  • Mudado filosofia tratamento controle dos arquivos.
  • Criado recurso para reconectar caso haja queda na conexão.
03/09/2013 Criado rotina "LimpaString" que prepara a string para ser usada no comando MysqlQuery convertendo caracteres especiais.
09/10/2013
  • Incluido recurso para tratar comando WITH WAIT LOCK.
  • Corrigido uso variavel tamanho da string "W-QRTM" para "LK-QRTM" na rotina MysqlQuery, em algumas situações provocava erro.
  • Inserido terminator na STRING passada para o MysqlQuery, evitando sugeira no log, após final do comando, proveniente de comando anteriores.
10/10/2013 Criado rotina para retornar numero de arquivos abertos no MF e no MYSQL. "NumArquivos". Com a possibilidade de mais de uma conexão aberta simultaneamente, esta rotina possibilita auditar o esquecimento de algum arquivo aberto indevidamente.
13/10/2013 O EXTMYSQL não pagina mais quando for usado MontaWhere ou MontaOrder, ficando a criterio do programa chamador, manipular esta questão. Estava perdendo o primeiro registro da segunda pagina.
17/10/2013 Corrigido 114 no COMMIT ou ROLLBACK quando so em uso arquivos MF. Criado rotina para dar COMMIT em todas conexões abertas no momento de sua execução. Antes só era executado o COMMIT na conexão em uso.
05/11/2013 Incluido configuração possibilitando a leitura de registros não comitados.
07/11/2013 Incluido rotina para limpeza da variavel usada em W-LOCK tratando caso tenha aspas.
14/11/2013 0021 - Corrigido tratamento da chave principal, estava trocando X"20" por X"00".
Tirado tratamento caracteres especiais no campo W-LOCK
07/02/2013 No method MysqlComando, foi colocado um teste na variavel LK-RRSIN = SIGNED, ajustado tamanho para tratamento da variavel.
03/04/2014 Forçado para apenas na primeira execução, passar pelo controle de release e registro de execução.
Alterando o STATUS no EXTCNTR para "NO", faz com que a rotina seja desabilitada passando apenas pelo EXTFH.
04/04/2014 Criado rotina para mudar tamanho da pagina no comando START. A paginação não funciona num START e logo após um LOOP com READ e DELETE. A cada nova paginação, muda posição relativa do registro em função do registro excluido e o programa se perde.
15/05/2014 Incluido geração de log de erro quando der erro na carga do FHREDIR
20/05/2014 Alterado a forma para registrar o comando SQL no LOGIMED.LOG.
Chamar rotina SalvaCmd antes de executar o comando.
Basta chamar SqlvaCmd antes do comando START para que ocomando SELECT do mysql fique registrado no LOGIMED.
So sera registrado um comando por chamada.
20/10/2014 Alterado tratamento endereços para recuperação de estruturas do MysqlQueryFcd forçando para nulo (W-TABADDR), com isso usa o da estrutura do FCD qdo da abertura.
Corrige tratamento de comandos usando o recurso "MysqlQueryFcd".
31/10/2014 Corrigido tratamento campos numericos com sinal na rotina MysqlRetorna.
A rotina MysqlRetorna não estava tratando corretamente valores negativos.
14/11/2014 Corrigido tratamento tamanho campos compactados tipo COMP-5 e COMP-X. Dependendo de como esta configurado o compilador, o programa trata de forma diferente campos COMP-5 e COMP-X, afentando espaço em memória ocupado para estes campos.
19/11/2014 Acesso a tabela de controle de bloqueios e liberações de registros quando tiver mais de uma conexão. Quando a rotina acessava ao mesmo tempo tabelas em DBs diferentes ou servidores diferentes, ocorriam erro na identificação de em qual conexão a tabela estava vinculada, provocando erro no tratamento de bloqueio e liberação de registros, o mesmo ocorria no tratamento de transações, afetando comandos COMMIT e ROLLBACK. Da mesma forma foi corrigido tratamento de THREADS pela rotina, que fica vinculada a cada conexão.
27/11/2014 Liberado release tratando PIC 9(N) sem COMP como campo DECIMAL no Mysql.
Para este recurso é necessário o código "PND" na coluna Comentário, para estabelecer esta relação. Este recurso esta melhor documentado na aba Criando tabela da FD http://www.mercosoft.com.br/criatb.php?pagina=criatb
27/11/2014 Corrigido tratamento de campos pic 9(n) sem compactação vinculados a DECIMAL sem sinal na PICTURE. Só tratava corretamente campo PIC S9(N).
12/12/2014 Ajustado para que ao abrir uma conexão via CALL "MysqlConecta" a rotina abra uma conexão exclusiva ao comando, não aproveitando eventualmente uma ja existente caso um comando OPEN tenha criaddo.
Problema que provocou esta alteração foi de que ao executar CALL "MysqlDesConecta" poderia desconectar uma conexão ainda necessária aberta por um comando OPEN.
Corrigido problema que ocorria ao se tentar abrir pela segunda vez um arquivo onde na primeira tentativa retornava com status de erro por não encontrar a tabela no Mysql.
Na segunda tentativa provocava erro 233.
05/02/2015 Alterado para usar a data e hora do servidor ao invéz do terminal, e com isso evitar problemas com bloqueios indevidos de registros, por discrepancia nos relogios de cada terminal.
Incluido mensagem no log quando tenta obter bloqueio, não consegue e não encontra o registro de bloqueio anterior.
04/03/2015 Rotina LimpaString quando usada sem conexão do Mysql dava erro 114.
Alterado para caso não tenha conexão com Mysql não ira executar o comando.
18/08/2015 Corrigido tratamento rotina que busca data e hora do relogio do servidor ao invéz do relogio do terminal.
A rotina ao final executaca EXTI PROGRAM provocando o encerramento de qualquer processo indesejadamente.
Poderia estar afetando READ WITH LOCK entre outros, interrompendo prematuramente o processo.
Corrigido controle do número de conexões, que ao ser excedido retornava erro 153.
Agora retorna FILE STATUS 9 209 X"39D1" de erro.
24/08/2015 Campos PIC 9(08) com correspondente DATE estavam sendo convertidos para negativo pois vinham do MYSQL yyyy-MM-DD e por este motivo quando usados em chave não eram encontrados.

Franco Stringari Pudler, email franco@imediata.com.br