Harbour + SQLMIX

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

MSDN_7
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 27 Nov 2025 12:38

Harbour + SQLMIX

Mensagem por MSDN_7 »

Montei um exemplo para acessar um banco SQL usando Harbour e SQLMIX, conecta, tudo ok, porém, não consigo gravar em uma tabela, tento usar via SQL ( insert into nome_tabela values (xx, xxx, xxx) ) e via tabela->(dbappend), nenhuma das formas funciona, alguém tem alguma sugestão ?
Obrigado
alxsts
Colaborador
Colaborador
Mensagens: 3135
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Curtiram: 1 vez

Re: Harbour + SQLMIX

Mensagem por alxsts »

Olá!

Nunca usei SQLMIX mas, independentemente do método de acesso ao banco de dados, pode ser que haja algum problema de configuração nas permissões do usuário e/ou da tabela...

Em qualquer caso, seria interessante e ajudaria se você postasse o código usado, tanto para conectar quanto para gravar no banco, bem como informasse qual banco de dados está utilizando.
[]´s
Alexandre Santos (AlxSts)
MSDN_7
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 27 Nov 2025 12:38

Re: Harbour + SQLMIX

Mensagem por MSDN_7 »

Bom dia,

Segue o código que não executa a gravação na tabela.

Código: Selecionar todos

          @ 09,11 say 'Descrição:' get v_descricao pict '@!'
          @ 10,11 say 'Modelo   :' get v_modelo pict '@!'
          read

          if lastkey() == 27
               deli_off()
               setcolor(cor)
               restscreen(,,,,tela)
               return( nil )
          endif

          Quadro3(11,26,13,52)
          @ 12,28 prompt ' Gravar '
          @ 12,38 prompt ' Não Gravar '
          menu to op

          do case
               case op == 1
                    cSql := "INSERT INTO produto (descricao, modelo) VALUES ('DESC_TESTE','MODELO_TESTE')"
                    if RDDInfo( RDDI_EXECUTE, cSql, , oCon ) <> NIL
                         alert('Gravou')
                    else
                         alert('Não gravou')
                    endif
                    exit
               case op == 2
                    exit
          endcase
Da forma como está, mostra a mensagem " gravou ", mas sem efetivamente estar registrado na tabela.
Pesquisei todos os exemplos que encontrei, dentro da pasta contrib do Harbour, internet, para ver se havia uma forma diferente de gravar os dados no banco, mas não achei nada diferente disso, por isso, quem souber, agradeço a ajuda.

Abraço
alxsts
Colaborador
Colaborador
Mensagens: 3135
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Curtiram: 1 vez

Re: Harbour + SQLMIX

Mensagem por alxsts »

Olá!

Tente trocar esta linha

Código: Selecionar todos

if RDDInfo( RDDI_EXECUTE, cSql, , oCon ) <> NIL
Por

Código: Selecionar todos

if RDDInfo( RDDI_EXECUTE, cSql, "SQLMIX", oCon ) <> NIL
[]´s
Alexandre Santos (AlxSts)
MSDN_7
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 27 Nov 2025 12:38

Re: Harbour + SQLMIX

Mensagem por MSDN_7 »

Fiz a alteração, mas continua igual, não grava no banco as informações.
Existe algum exemplo mais robusto do uso da SQLMIX, onde seja possível observar um CRUD, e aprender a forma correta de usar essa lib ?
alxsts
Colaborador
Colaborador
Mensagens: 3135
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Curtiram: 1 vez

Re: Harbour + SQLMIX

Mensagem por alxsts »

Olá!

Como informei anteriormente, não tenho experiência com a ferramenta.

Talvez falte um COMMIT. Alguns SGBD não fazem isto automaticamente. Também não sabemos como está conectando. Consegue fazer SELECT nesta conexão?

Creio que o Itamar possa te ajudar mais. Creio que ele seja o usuário mais experiente em Sqlmix aqui no fórum. Vamos aguardar.
[]´s
Alexandre Santos (AlxSts)
MSDN_7
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 27 Nov 2025 12:38

Re: Harbour + SQLMIX

Mensagem por MSDN_7 »

Sim, consigo conectar, consigo fazer select, abrir a tabela e navegar usando TBrowse, perfeito, mas na hora de incluir, não funciona. Estou usando o Harbour nightly ( de 3 dias atrás ), todas as lib ok.
Responder