Erro ao atualizar estoque

Prezados, boa noite.

Por favor peço ajuda pois sou novato.

estou tentando dar baixa e quando salvo da mensagem de erro de sintaxe. segue código para melhor entendimento e auxilio se possível

sc_lookup(ds,"SELECT qtd
FROM tb_estoque
WHERE id_estoque = " .{id_estoque});

{ds[0][0]};

$estoque = {ds[0][0]} - {qtd};

sc_exec_sql(“UPDATE tb_estoque SET qtd =” .$estoque. “WHERE id_estoque =” .{id_estoque});

Me ajudem por favor.

$_sql="SELECT qtd FROM    tb_estoque WHERE id_estoque  = " .{id_estoque};
sc_lookup(ds,$_sql);
if (!empty({ds})):
   $estoque = {ds[0][0]} - {qtd};
   $_upd = "UPDATE tb_estoque SET qtd =$estoque WHERE id_estoque =" .{id_estoque};
   sc_exec_sql($_upd);
   sc_commit_trans();
endif;

Haroldo, primeiramente agradeço pela rápida resposta, mas ainda esta dando erro de sintaxe.

Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘29 . WHERE id_estoque = .1’ at line 1

O cálculo esta certo mas tento gravar ele dá este erro.

Grato

Parece que não tá pegando o código id_estoque corretamente, habilita o modo debug para ver o que esta retornando, no SELECT
e o que esta indo para o UPDATE.

Habilita e executa a aplicação para ver, depois que corrigir só voltar ao normal, como estava.

Olá,
Dê um espaço entre o Where e a Aspa que vai funcionar. Seu Where ta colado no número do estoque.

Prezados, grato pela atenção, mas o problema persiste. Segue prints, informando que o cálculo ele esta fazendo correto.

Desculpem não consigo adicionar os prints

Ativando o método Debug igual eu passei, você vai ver como esta sendo processando, seu SQL na Tabela do Banco de dados, só copiar os comandos que vão aparecer e colar,
no seu Gerenciador de Banco de Dados para você executar e analisar que a SQL esta errada, um código que não esta selecionado ou os campos estão emendados nos
comandos SQL, ai é só arrumar a SQL e corrigir no SC com a sentença ‘correta’.

Jailton, agradeço pela sua atenção e paciência… pois se que é chato falar a mesma coisa várias vezes… acontece que mesmo habilitando o debug nos dois forms(movimentação e itens da movimentação) o debug só funciona em um formulário por vez. Informo que o formulário de movimentação tem um detalhe de itens da movimentação…

Jailtom como vc fez para inserir esta imagem?

Grato pela paciência e ajuda

o que é essa linha o seu código ?

{ds[0][0]};

fjosematos boa tarde.
posta o código completo que está fazendo, pois assim fica difícil agente dar uma resposta completa.
fico no aguardo
Adriano

Adriano. estou usamdo exatamente o que o Haroldo propos

$_sql="SELECT qtd FROM tb_estoque WHERE id_estoque = " .{id_estoque};
sc_lookup(ds,$_sql);
if (!empty({ds})):
$estoque = {ds[0][0]} - {qtd};
$_upd = "UPDATE tb_estoque SET qtd = $estoque WHERE id_estoque = " .{id_estoque};
sc_exec_sql($_upd);
sc_commit_trans();
endif;

Mesmo assim quando atualizo ele dá o erro de sintaxe e não altera a tabela do estoque no item informado.

Este é o código sql que ele informa quando dá o erro de sintaxe:

UPDATE tb_estoque SET qtd = . 25 . WHERE id_estoque = .1

Ao meu ver esta correto pois a quantidade que ele deveria levar é exatamente esta deste item, mas algo esta impedindo a gravação.

Prezados.

Consegui resolver o problema… erro primário… estava chamando através de outro fomulário com nome parecido trocando apenas uma letra…

Desculpem, erro de iniciante.

Obrigado a todos pelo apoio dispensado.

fjosematos,
Nos é que agradecemos por você voltar aqui e postar a solução

Como faço para marcar este tópico como “resolvido” ?

Com seu login, ativo entre neste Post olhe o primeiro ‘comentário o seu’ em cima do lado direito, clique em Modificar e no Inicio do Mesmo acrescente [Resolvido]

Vá na primeira postagem, clique em modificar mensagem, no canto inferior direito e coloque [RESOLVIDO] antes de começar o título.