[RESOLVIDO]Erro sc_exec_sql

Bom dia, estou tentando fazer um update em uma tabela do meu banco no “OnValidate” do Login, porém não esta atualizando, saberia me dizer se esta com algo errado?

sc_exec_sql(“Update Sys_UCTabUsers set UCHostName= '”.$host."’ Where UCLogin= ‘".{user}."’");

7 Curtidas

Já fiz o debug mostrando o conteúdo desse update e se eu copiar e colar ele no Studio ele da certo, então a lógica do update esta correta, só não esta mandando para o banco

2 Curtidas

Bom dia,

Tem que revisar essas aspas.

Eu costumo fazer diferente, pois colocando comandos diretamente pode ocorrer problemas desse tipo. Experimente assim:

$cSql = "Update Sys_UCTabUsers set UCHostName= '".$host."' Where UCLogin= '".{user}."'";
sc_exec_sql($cSql);
3 Curtidas

Cheguei a fazer esse teste antes e refiz agora com seu código, ele não atualiza a tabela no banco, mas gera o codigo certo, segue valor que retorna se eu printar o $cSql:

Update Sys_UCTabUsers set UCHostName= ‘PROGRAMACAO2’ Where UCLogin= ‘admin’

Se eu copiar e colar isso no Studio ele funciona corretamente

2 Curtidas

E se colocares o:

sc_commit_trans();

Logo abaixo do teu sc_exec_sql?

3 Curtidas

Estou usando assim:

sc_begin_trans();
sc_exec_sql($cSql);
sc_commit_trans();

2 Curtidas

liga o modo debug e outpux ajax
echo $cSql;
sc_error_message();

3 Curtidas

roda isso no seu banco e vê se atualiza.

3 Curtidas

segue texto que ele printa:
Update Sys_UCTabUsers set UCHostName= ‘PROGRAMACAO2’ Where UCLogin= ‘admin’

2 Curtidas

Roda sim, ele atualiza corretamente

2 Curtidas

Show . coloca dessa forma

sc_exec_sql(“UPDATE Sys_UCTabUsers SET UCHostName = ‘PROGRAMACAO2’ WHERE UCLogin =‘admin’”);

só cuidado com as aspas simples que aqui no forum ele altera o formato.

3 Curtidas

Testei colando o valor manual também, ele não atualiza, por algum motivo o scriptcase não esta mandando para o banco corretamente mesmo que eu coloque o update exatamente igual ao banco, porém estou usando o lookup e funciona corretamente, então a conexão esta correta

2 Curtidas

poderia enviar um print do seu sc_exec_sql e do seu sc_lookup?

3 Curtidas

segue
image
image

2 Curtidas

estranho, tem algo a mais no código que não está fazendo rodar…
se puder teste dessa forma
sc_exec_sql(“UPDATE Sys_UCTabUsers SET UCHostName= ‘teste’ WHERE UCLogin = ‘admin’”);
sc_commit_trans();

quando for dar ctrl+c e ctrl+v retira as aspas duplas e aspas simples e coloca dnv…

3 Curtidas

Realmente, assim funcionou, sera que tem algo errado com o modo que eu pego o nome do computador? Ou no modo que estou usando a variavel do nome?

$host = gethostbyaddr($_SERVER[‘REMOTE_ADDR’]); // Pega nome da maquina

2 Curtidas

se esta retornando o valor não tem problema…
tenta desse jeito

sc_exec_sql(“UPDATE Sys_UCTabUsers SET UCHostName= ‘$host’ WHERE UCLogin = ‘admin’”);
sc_commit_trans();

quando for dar ctrl+c e ctrl+v retira as aspas duplas e aspas simples e coloca dnv…

3 Curtidas

Desse modo que tu mandou não funcionou(ajustei as aspas), mas do modo a baixo da certo:

image

ou seja, ele manda nulo quando uso a variável $host

2 Curtidas

a variável host está retornando valor ?
tenta colocar outro nome de variável.

3 Curtidas

Sim, se eu debugar ela ela mostra o nome da minha maquina, mas é algum erro na função que estou usando, pois se eu colocar o valor de host como teste, da certo

image

2 Curtidas