Utilizando o objeto ADO connection veremos um pequeno exemplo de como executar o comando insert no banco de dados MySQL diretamente de algum programa via progress, além do insert também é possível executar select, insert , update e delete.
DEF VAR con AS COM-HANDLE NO-UNDO.
DEF VAR rs AS COM-HANDLE NO-UNDO.
DEF VAR cmd AS COM-HANDLE NO-UNDO.
DEF VAR rc AS INTEGER NO-UNDO.
DEF VAR reg AS INTEGER NO-UNDO.
DEF VAR RegAfetados AS CHARACTER NO-UNDO.
DEF VAR MyQuery AS CHARACTER NO-UNDO.
CREATE "ADODB.Connection" con.
CREATE "ADODB.RecordSet" rs.
CREATE "ADODB.Command" cmd.
ASSIGN MyQuery = "INSERT INTO teste(codigo,descricao,testecol)VALUES(6,'teste','lixo');".
con:OPEN("DATA SOURCE=local_MySQL;SERVER=localhost;PORT=3306;DATABASE=NOMODOBANCO", "USUARIO", "SENHA", -1).
ASSIGN cmd:ActiveConnection = con.
ASSIGN cmd:CommandText = MyQuery.
ASSIGN cmd:CommandType = 1.
ASSIGN con:CursorLocation = 3.
ASSIGN rs:CursorType = 1.
ASSIGN rs:LockType = 3.
ASSIGN rs = cmd:EXECUTE(OUTPUT RegAfetados,"",32). /*Adicione NO-ERROR para n’o exibir mensagem de erro.*/
MESSAGE "Registros Afetados: " + (IF LENGTH(STRING(RegAfetados)) = 0 THEN "-1" ELSE STRING(RegAfetados))
VIEW-AS ALERT-BOX INFO BUTTONS OK.
cmd:CLOSE NO-ERROR.
RELEASE OBJECT con NO-ERROR.
RELEASE OBJECT cmd NO-ERROR.
RELEASE OBJECT rs NO-ERROR.
ASSIGN con = ?
cmd = ?
rs = ?.
Muito bom!!!
Fabiano, tudo bem?
Estou precisando conectar progress com MySQL que está em um servidor na Nuvem. Tentei seu exemplo, mas está retornando erro abaixo:
Ocorreu erro durante acesso a componente da propriedade/metodo: OPEN.
[Microsoft][ODBC Driver Manager] O DSN especificado contém uma incompatibilidade de arquiteturas entre o Driver e o Aplicativo
Error code: 0x80020009
Tem alguma dica?
Agradeço desde já…
Boa tarde Bruno,
tudo ótimo!
Parece que vocês está desenvolvendo em um PC 64 bits,
se for isso mesmo tente usar o ODBC que esta nesse caminho para fazer a configuração
C:\Windows\SysWOW64\odbcad32.exe
Fabiano, muito obrigado. Deu certo! Realmente é 64 Bits.
Eu tinha instalado somente uma versão e configurado fonte de dados somente nela.
Instalei na outra e configurei nela também.
Rodei no Progress e deu certo!
Valeu mesmo!
Boa tarde Fabiano.
Muito obrigado, funcionou corretamente aqui.
Você teria um exemplo completo de como executar stored procedure via progress, onde são informados todos os parâmetros obrigatórios na execução?
Obrigado.
Maravilha, fico feliz por ter ajudado.
Não tenho nenhum exemplo de como executar as stored procedure no MySQL no momento.
Mas vou pesquisar sobre o assunto e tento fazer algo relacionado.
Obrigado!