Página 2 de 2
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:12
por MSDN_7
Itamar, o problema não é aparecer em tela depois que grava, é justamente a informação estar gravada no banco, ela não fica.
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:16
por Itamar M. Lins Jr.
Olá!
Pois é.
Se grava só no DBF, vc tá mandando para o lugar errado.
Só se grava no SGBD(MySQL) e fecha e puxa novamente para o DBF.
Se tá no DBF esses dados novos, veio de onde ?
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:25
por MSDN_7
Vamos por etapas, com certeza algo eu fiz errado :
Código para conectar ao banco Oracle :
Código: Selecionar todos
rddSetDefault( "SQLMIX" )
/*
conectar com o banco : oracle
*/
cRDD := "SQLMIX"
oCon := RDDInfo( RDDI_CONNECT, {"OCILIB", "localhost", "system", "102030", "oracle18c"}, cRDD )
IF oCon == NIL
alert("Erro ao conectar!")
RETURN( nil )
else
alert('Oracle conectado')
ENDIF
Ele conecta, tanto que traz no TBrowse os dados que estão fisicamente gravados no banco de dados Oracle, eu abro a tabela pelo Oracle SQL Developer e vejo as informações que gravei por lá aparecerem no TBrowse.
Uso esse código para gravar os dados :
Código: Selecionar todos
produto->(dbCloseArea())
cSQL := "INSERT INTO produto (descricao,modelo) values ('teste1','teste2')"
If rddInfo( RDDI_EXECUTE, cSQL )
dbusearea( .T., , "SELECT * FROM produto", "produto" )
alert('gravou')
Else
alert('falhou')
EndIF
Seguindo essa lógica, o que está faltando fazer ?
Detalhe, executei o exemplo do SQLMIX que usa MySQL e deu certo, grava fisicamente no banco, mas, com Oracle, não funciona !
Se eu consigo conectar, pegar os dados, exibir em tela, quer dizer que não tem problema com a conexão, certo ?
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:33
por Itamar M. Lins Jr.
Olá!
Infelizmente, eu não fiz testes com Oracle.
Mas achei isso aqui perguntando para IA. Parece que precisa do commit.

- Captura_de_tela_20260502_133247.png (75.1 KiB) Exibido 162 vezes
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:35
por MSDN_7
Isso eu não sabia, o que a IA disse depois, qual o comando ?
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:35
por Itamar M. Lins Jr.
Olá!

- Captura_de_tela_20260502_133454.png (79.17 KiB) Exibido 158 vezes
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:55
por Itamar M. Lins Jr.
Olá!
Perguntei se podia mandar o COMMIT na sentença SQL, mas infelizmente ou fica ativado ou fica mandando depois toda vez que usar INSERT, UPDATE...

- Captura_de_tela_20260502_135334.png (78.89 KiB) Exibido 136 vezes
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 13:56
por MSDN_7
Inseri no código principal :
também tem (no começo do fonte principal) :
mas, aparece o erro dizendo que DBI_SQL_AUTOCOMMIT não existe, e claro, buscando dentro do .CH, não existe mesmo.
a IA ajuda e não ajuda né !
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 14:00
por Itamar M. Lins Jr.
Olá!
Tenta esse:
Código: Selecionar todos
// Força o commit no Oracle
rddInfo( RDDI_EXECUTE, "COMMIT" )
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 14:02
por MSDN_7
Agora a IA ajudou...rsss
inserindo após o INSERT o trecho de código :
grava fisicamente no banco ORACLE, problema resolvido, muito obrigado !
fica aqui o registro para quem for precisar um dia, em todos os outros bancos, os exemplos que usam SQLMIX funcionam 100%, porém....se vc for usar o ORACLE, ai tem que usar o COMMIT junto senão não grava no banco.
Abraços Itamar !
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 14:05
por MSDN_7
Como fiz o mesmo questionamento no fórum internacional, acabei de postar a solução direcionando para esse link do fórum, ajudando mais pessoas.
Re: Harbour + SQLMIX
Enviado: 02 Mai 2026 14:37
por Itamar M. Lins Jr.
Olá!
Tem mais essas dicas aqui, para evitar ficar mandando commit a cada sentença SQL no Oracle.
NÃO TESTEI!
Ou essa quando abrir a conexão:
Código: Selecionar todos
cConn := "DBE=ORA;LOG=usuario/senha@instancia;AUTOCOMMIT=Y"
Ou seja:
Código: Selecionar todos
oCon := RDDInfo( RDDI_CONNECT, {"OCILIB", "localhost", "system", "102030", "oracle18c", "AUTOCOMMIT=Y"}, cRDD )
Tem que testar ai para ver se vai.
Fui ver o download é 2 Gib(Oracle) para testar aqui, muito grande e tenho que mudar de RPM para DEB... muito trabalho, fica para a próxima os testes.