Olá a todos,
Estou testando o xHarbour com a SQL LIB e estou tendo o seguinte problema:
- ao fazer qualquer alteração nos dados (inclusão, deleção, update), o banco só atualiza (commit) na SAÍDA do sistema. Exemplo:
#include "SqlLib.ch"
// conecta com o MySQL
nConn := SqlLib_Conn( "18.0.5.200" ,,;
"teste" ,;
"teste" ,;
"teste" ,;
SQL_NO_WARNING ,;
"MYSQL" )
if SQLErrorNO() > 0 // verificando erro de conexao
? "Erro - Banco!!!!!"
endif
cSql := "insert into clientes( nome, sobrenome ) values( 'William', 'Gates III' )"
SQLLIB_ExecSQL( nConn, cSql )
if SQLErrorNO() > 0 // verificando erro na execucao do comando
? "Erro - Banco!!!!!"
endif
// verifica que o registro foi "inserido":
cSql := "select nome, sobrenome from clientes"
USE SQL cSql ALIAS CLIENTES VIA "MYSQL"
browse()
De fato o registro é mostrado no browse, mas NÃO está FISICAMENTE no Banco, só há o commit na saída da aplicação. Ou seja, provavelmente é uma transação pendente. Só que eu tentei comitar também explicitamente e continua com o mesmo comportamento.
Alguém conhece essa LIB e poderia ajudar? Agradeço antecipadamente.
Abraços.
xHarbour com SQL LIB - dúvidas
Moderador: Moderadores
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Após qualquer comando SQL como insert, update voce deve executar o comando COMMIT.
Como não conheço a sintaxe da SQLLIB sugiro voce analisar os codigos de exemplo e ver algo em relação a isto.
Nos programas que uso para tratar BDs SQL alguns necessitam que o comando tenha uma terminação com o caracter ";"
insert ... ;
commit;
Verifique se isto não é necessário.
Após qualquer comando SQL como insert, update voce deve executar o comando COMMIT.
Como não conheço a sintaxe da SQLLIB sugiro voce analisar os codigos de exemplo e ver algo em relação a isto.
Nos programas que uso para tratar BDs SQL alguns necessitam que o comando tenha uma terminação com o caracter ";"
insert ... ;
commit;
Verifique se isto não é necessário.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
Re: xHarbour com SQL LIB - dúvidas
Pois é amiguinho, e como eu tinha dito:
A SQL LIB tem a função sqlcommit(), foi a que usei.Lucio Faria escreveu:(...) eu tentei comitar também explicitamente e continua com o mesmo comportamento.
Lucio Faria
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Voce tentou algo assim:
cSql := "insert into clientes( nome, sobrenome ) values( 'William', 'Gates III' );commit"
Voce tentou algo assim:
cSql := "insert into clientes( nome, sobrenome ) values( 'William', 'Gates III' );commit"
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34