¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver o problema de milissegundos no PowerBuilder ao conectar-se ao MySQL

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Olá,

O PB (Classic 12.5.1 4595) parece não estar observando o parâmetro DateTime= do banco de dados ao se conectar ao Conector ODBC do Mysql acima da versão 5.1.10. Também não observará PBDateTimeFmt no PBODB125.ini.

Cada atualização de uma coluna de data e hora resultará em um erro porque o mysql não aceita os milissegundos fornecidos pelo Powerbuilder.

Existe alguma possibilidade de forçar o PB a não enviar milissegundos durante inserções e atualizações?

Além disso, o PB está escrevendo "_latin1" antes de cada data e hora. Por exemplo, um script de atualização capturado com a função de log do odbc proveniente do PB12.5 nativo:

Gostaria que o PB criasse uma declaração de atualização que seja reconhecida corretamente pelo banco de dados e não estou tendo sorte nenhuma.

Tenho certeza de que a seção em PBODB.INI está sendo acessada, pois se eu remover minha seção do mysql, as colunas de identidade não são recuperadas.

Aqui estão as seções correspondentes do meu pbodb.ini:

[MySQL] PBSyntax='MYSQL_SYNTAX'

PBDateTime='MYSQL_DATETIME'

[MYSQL_SYNTAX]

GetIdentity='Select @@identity'

[MYSQL_DATETIME]

PBDateFmt=' \'yyyy-mm-dd\''

PBTimeFmt=' \'hh:mm:ss\''

PBDateTimeFmt=' \'yyyy-mm-dd hh:mm:ss\''

Por favor, ajude! Alguém? Seria extremamente apreciado.

Obrigado

Peter Piechutzki

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

No entanto, notei um pequeno problema:

O uso do Conector ODBC Unicode 5.2.2 do MySQL me deu erros relacionados com "4bit" em tempo de execução do PB e nossa aplicação ao trabalhar com caracteres especiais alemães (Umlaute ÄÖÜ). A solução foi simples, tive que remover CHARSET=utf8 da configuração do conector ODBC.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Dicas incríveis para configurações!

E a pergunta de Helmut sobre uma solução a longo prazo também foi respondida.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado Arnd, você salvou o dia!

PB parece ignorar a configuração de formatação quando "Desativar Bind" não está definido ou está em 0. Agora estou testando nossa aplicação com "OJSyntax='ANSI', DisableBind=1" na string de conexão do banco de dados. Até agora, não notei nenhuma desvantagem ao usar essa configuração.

Também li sobre a adição de segundos fracionários no MySQL Server 5.6. Embora ainda esteja em estado de "candidato a lançamento", então não gostaria de usá-lo em um ambiente de produção. Queria experimentar e testar, mas pelo menos no meu win7/64 tive problemas e o servidor mysql 5.6 nem sequer foi instalado. Ainda não tive tempo de examinar a causa.

Para aqueles interessados, também utilizamos as seguintes configurações para o Conector ODBC do MySQL, que na nossa opinião levam aos melhores resultados entre PB e MySQL:

Permitir grandes conjuntos de resultados BIG_PACKETS=1

Não utilizar INFORMATION_SCHEMA para metadados NO_IS = 1

Conjunto de caracteres UTF8 CHARSET=utf8

Não armazenar em cache os resultados de cursores de avanço único NO_CACHE=1

Forçar o uso de cursores de avanço único FORWARD_CURSOR=1

Habilitar opções seguras SAFE=1

Ignorar espaços após os nomes de funções IGNORE_SPACE=1

NO_IS acelera muito a abertura de DW's no PB Classic!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Parece que o PowerBuilder só usa formatos quando "Desativar Vinculação" está definido.

Caso contrário, ele usa vinculação e se o seu valor de data e hora incluir frações de segundos, você receberá um erro.

Como no seu exemplo.

Portanto, certifique-se de que seus valores de data e hora não tenham nenhuma fração.

A boa notícia é:

O suporte para segundos fracionários foi adicionado ao timestamp e datetime no MySQL 5.6.

Portanto, os problemas devem estar resolvidos.

Você já está usando o MySQL 5.6 Server?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?