Acessar Database via:
Comandos nativos Cobol.
Comandos SQL.
Links
  • Microfocus Cobol.
  • Fujitsu Cobol
  • MariaDB
  • Oracle Mysql.
  • Serviços
    Franco Stringari Pudler
  • Serviços de consultoria, e desenvolvimento de software.
  • Conversão e modernização de sistemas, migração para banco de dados.
  • Aplicativos
    IMEDIATA Inform.Empres.Ltda
  • E.R.P., NFe, NF3e.
  • Folha de pagamento.
  • Sped, Ecf, Ecd, eSocial.
  • Ativo imobilizado.
  • Cooperativas, distribuiçõo energia.
  • Aneel Resolução Normativa 815.
  • Georeferenciamento redes elétricas.
  • Cobol & Mysql - Accessing Sql tables.

    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.
    26/08/2015 Campos DATE usados em chave estavam sendo convertidos para negativo, mesmo motivo 24/08/2015.
    01/09/2015 Campos DATE e numericos quando possibilitam NULL no Mysql e vierem zerados, passam a ser starteados com NULL.
    10/11/2015 Corrigido tratamento de paginação, para comandos START. Relia ultimo registro acessado da pagina anterior.
    06/01/2016 Corrigido tratamento de threads mortas no processo de bloqueio de registros, não estava limpando bloqueios em threads mortas. Criado Release 57.
    12/01/2016 Corrigido tratamento de leitura de registro bloqueado, num loop de leitura sequencial, quando encontrava um registro bloqueado, na segunda tentativa de leitura, dava erro 114.
    22/01/2016 Adicionado comando SLEEP após leitura de registro bloqueado para evitar sobrecarga do processador. Recurso disponibilizado no release 0058.
    12/02/2016 Corrigido tratamento de status para comandos vis MYSQLCOMANDO e MYSQLRETORNA.
    18/03/2016 Adicionado rotina que limita numero de registros para o próximo START
    20/10/2016 Incluido opção para fechar todos arquivos. Criado ENTRY "CloseAll"
    29/03/2017 Alterado tratamento do tamanho da pagina para comando START usando rotina "SetLimit"
    12/06/2017 Liberado recurso PND para demais campos numericos prevalecendo tamanho definido na TABELA de forma a corresponder ao tamanho para montagem da FD Corrigido erro 114 na rotina CLOSEALL
    27/06/2017 Ajustes na rotina que força o fechamento de todas tabelas (Mysql) abertas via OPEN. Rotina CloseAll estava dando erro de execução.
    30/07/2017 Alterado log da rotina incluido nome da máquina e release do EXTMYSQL na linha de log. Corrigido para que rotina "SalvaCmd" salve apenas o próximo comando a ser executado.
    14/07/2017 Corrigido rotina para reconexão, durante o processo de reconexão, estava destruindo o comando que deveria ser executado. Problema constatado no LOGIMED.
    01/11/2017 Adicionado recurso no "RETORNAERRO" para retornar também o código do ultimo erro registrado. Caso rotina não relacione o campo para o código, fica mantida compatibilidade com releases anteriores.
    16/01/2018 Adicionado tratamento de variaveis tipo TEXT
    18/12/2018 Adicionado tratamento de campos numericos PND com sinal em arquivos com SIGN"EBCDIC" Vide diferença entre ASCII e EBCDIC. Adicionar SIGN"EBCDIC" na compilação.
    31/01/2019 Passou a alimentar FCD-SESSION-ID com o indice da tabela onde foram salvos os dados da conexão para uso do comando vinculado a uma conexão ja aberta por um comando COBOL
    20/02/2019 Anulado rotina que forçava criação de conexão para cada acesso via MysqlConecta (W-TCNX (1:1))
    21/02/2019 Corrigido controle de tabelas que por ficar banguela, encerrava varredura na busca de uma conexão anterior ja estabelecida, possibilitando diversas conexões identicas, tanto via comando cobol bem como via MYSQLCONECTA.
    15/03/2019 Encontrado Bug tratamento de dbases, nos acessos de leitura e de gravação. Incluido no comando uso do W-DB forçãndo acesso ao DB certo.
    05/06/2019 Adicionado campo Usuario na tabela Lockctrl
    30/08/2019 Corrigido programa tratamento de controle de conexões quando usado em conjunto com comandos OPEN comando MysqlConect e MysqlDesconecta.
    22/10/2019 Corrigido geração do log de erro de algumas mensagens que não estavam indo com delimitador final. Rotina de reconexão sendo tratada com erro na variavel TB-CNXIPC, tinha tamanho de 15
    29/09/2020 Adicionado rotina de limpeza do campo W-LOCK usado na tabela LOCKCTR
    07/01/2021 Criado rotina para startear transaction, programa passa a controlar transação ativa antes de efetuar reconexão, caso haja interrupção de conexão, perdendo toda transação até então feita.
    22/04/2021 Criado release 0078 Criado ENTRY para salvar onde recuperar nome do programa e sistema operando o EXTMYSQL. Bloqueio de registros, dado novo tratamento em caso de perda de conexão, quando é estabelecida nova conexão. Em alguns clientes ficavam registros bloqueados, na auditoria se constatou de que isto ocorria com frequencia em uma rotina enchuta, "Le, Move dados e Regrava". Ocorria também em diversos arquivos, sempre próximo a um registro de perda de conexão. A Msg do programa, informando de que as threads haviam sido atualizadas não estavam aparecendo, o que indica de que as threads nao estavam sendo devidamente tratadas no caso de reconexão. Tratamento das variaveis de controle de thread para identificar reconexão estava confuso. - Transferido para rotina de reconexão a atulização do numero da nova thread nos bloqueios. registrados. - Quando ocorria reconexão no momento em que estivesse fazendo registro de bloqueio, o registro era feito por uma nova thread, mas seu conteúdo indicava a thread antiga.
    21/09/2021 Ajustado comando na rotina "MUDA-THREAD" de forma a tratar os campos Thread como numerico, tirei "'".
    26/06/2021 A rotina "MysqlDesConecta" passa a tratar chamadas passando o handle nulo, e com isso evitar o fechamento prematuro de uma conexão. Quando executava mais de uma vez esta rotina, descontrolava o tratamento de tabelas abertas. Incluido Dbase nos comando SHOW nas chamada para LOCKCTRL.
    15/10/2021 Alterado GERALOG passa a gerar arquivo de log separado por mes. E,: logimed_9999_99.log Criado release 81

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