Página 1 de 1

xHarbour com SQL LIB - dúvidas

Enviado: 04 Dez 2006 11:54
por Lucio Faria
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.

Enviado: 05 Dez 2006 12:20
por rochinha
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.

Re: xHarbour com SQL LIB - dúvidas

Enviado: 05 Dez 2006 13:07
por Lucio Faria
Pois é amiguinho, e como eu tinha dito:
Lucio Faria escreveu:(...) eu tentei comitar também explicitamente e continua com o mesmo comportamento.
A SQL LIB tem a função sqlcommit(), foi a que usei.

Enviado: 05 Dez 2006 14:30
por rochinha
Amiguinho

Voce tentou algo assim:

cSql := "insert into clientes( nome, sobrenome ) values( 'William', 'Gates III' );commit"

Enviado: 07 Dez 2006 12:23
por Lucio Faria
Amiguinho,

é isso mesmo, é bug na função da SQL LIB.

Muito obrigado, valeu mesmo.

Enviado: 12 Dez 2006 08:08
por 5