# Problema com SQLEXcute ou Sqlite

**URL:** <https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417>\
**Category:** Português\
**Created:** [April 4, 2015, 5:30pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417 "2015-04-04T17:30:13Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cauby\_Osorio](https://forum.xojo.com/letter_avatar_proxy/v4/letter/c/f1d935/32.png) [@Cauby\_Osorio](https://forum.xojo.com/u/Cauby_Osorio)\
**Post date:** [April 4, 2015, 5:30pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/1 "2015-04-04T17:30:13Z")

</div>

```
 Como estou dando meus primeiros passos com XOJO e Sqlite , testado regravao em uma tabela que criei, e inclui na mo o primeiro registro, no estou conseguindo atualizar campo de um registro. 

```

Fiz um teste conectando o banco de dados de acordo com as instrues do Adelar e foi tudo bem. Depois tentei regravar o registro usando o SQLExeute no me retorna erro mas tambm no atualiza o registro.

No sei se alguma falha no Sqlite j que nunca trabalhei com ele. Andei vendo exemplos na internet mas todos os exemplos que tinha no mostra o comando update com variaves , somente com campos fixos, vou colocar o cdigo que escrevi, se algum poder ajudar agradeo.

Dim sql As String  
Dim estoque As Integer  
estoque = CDbl(TxfProduto.Text) // transformando o TxfProduto em integer para ficar igual o campo da tabela  
sql = “Update sequencia Set estoque =estoque Where id = 1 ;” // Tabela chamando sequencia com um campo chamado estoque do tipo Integer  
App.MyDb.SQLExecute(sql)

If App.MyDb.Error Then  
MsgBox("Erro na Atualizao Sequencia " + App.MyDb.ErrorMessage)  
Return  
End If

MsgBox(“Atualizao feita com Sucesso”)

---

<div class="post-metadata">

**Author:** ![Adelar\_Duarte](https://forum.xojo.com/user_avatar/forum.xojo.com/adelar_duarte/32/267_2.png) [@Adelar\_Duarte](https://forum.xojo.com/u/Adelar_Duarte)\
**Post date:** [April 4, 2015, 8:03pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/2 "2015-04-04T20:03:41Z")

</div>

[quote=178465:@Cauby Osorio]Como estou dando meus primeiros passos com XOJO e Sqlite , testado regravação em uma tabela que criei, e inclui na mão o primeiro registro, não estou conseguindo atualizar campo de um registro.

Fiz um teste conectando o banco de dados de acordo com as instruções do Adelar e foi tudo bem. Depois tentei regravar o registro usando o SQLExeute não me retorna erro mas também não atualiza o registro.

Não sei se alguma falha no Sqlite já que nunca trabalhei com ele. Andei vendo exemplos na internet mas todos os exemplos que tinha não mostra o comando update com variaves , somente com campos fixos, vou colocar o código que escrevi, se alguém poder ajudar agradeço.

Dim sql As String  
Dim estoque As Integer  
estoque = CDbl(TxfProduto.Text) // transformando o TxfProduto em integer para ficar igual o campo da tabela  
sql = “Update sequencia Set estoque =estoque Where id = 1 ;” // Tabela chamando sequencia com um campo chamado estoque do tipo Integer  
App.MyDb.SQLExecute(sql)

If App.MyDb.Error Then  
MsgBox("Erro na Atualização Sequencia " + App.MyDb.ErrorMessage)  
Return  
End If  
MsgBox(“Atualização feita com Sucesso”)[/quote]

Olá Cauby. O que você fez no seu código, foi simplesmente dizer que seu campo estoque é igual a seu campo estoque. Ou seja, se ele tinha um valor de 2, continuou tendo um valor de 2.

Primeiro de tudo, para evitar confusões, use um nome de variável diferente do nome do campo da sua tabela. Por exemplo, myEstoque, ou varEstoque, qualquer coisa do tipo, para evitar erros.

Em segundo, você precisa compôr a sua variável que forma a sentença SQL, levando em conta a sua variável que armazena o valor, concatenando as duas. No seu exemplo, ficou tudo direto dentro das aspas, sem unir nada. Se o nome da sua variável fosse diferente do nome do campo da tabela, você teria com certeza, uma mensagem de erro.

Terceiro, você não deve converter seu texto para inteiro, porque no momento de unir com a sentença SQL, vai ter que fazer o contrário, para poder concatenar sem erros. Então, resumindo, ficaria mais ou menos assim:

```auto
Dim sql As String
Dim myEstoque As String // Tipo String
myEstoque = TxfProduto.Text // Sem conversão... 
sql = "Update sequencia Set estoque = " + myEstoque + " Where id = 1 ;" // Concatenando sentença sql com a sua variável
App.MyDb.SQLExecute(sql)
```

Note que você poderia concatenar o campo direto… deixei com a variável apenas para não mudar muito a sua lógica.  
Claro que você precisa garantir no formulário de entrada de dados, que seu controle TxfProduto aceite apenas números.

Veja se funciona, e qualquer dúvida, poste…

---

<div class="post-metadata">

**Author:** ![Cauby\_Osorio](https://forum.xojo.com/letter_avatar_proxy/v4/letter/c/f1d935/32.png) [@Cauby\_Osorio](https://forum.xojo.com/u/Cauby_Osorio)\
**Post date:** [April 4, 2015, 8:46pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/3 "2015-04-04T20:46:05Z")

</div>

Tudo entendido Adelar.  
Mais uma vez obrigado.

---

<div class="post-metadata">

**Author:** ![Adelar\_Duarte](https://forum.xojo.com/user_avatar/forum.xojo.com/adelar_duarte/32/267_2.png) [@Adelar\_Duarte](https://forum.xojo.com/u/Adelar_Duarte)\
**Post date:** [April 4, 2015, 8:51pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/4 "2015-04-04T20:51:35Z")

</div>

A disposio, e Feliz Pscoa!

---

<div class="post-metadata">

**Author:** ![Cauby\_Osorio](https://forum.xojo.com/letter_avatar_proxy/v4/letter/c/f1d935/32.png) [@Cauby\_Osorio](https://forum.xojo.com/u/Cauby_Osorio)\
**Post date:** [April 4, 2015, 9:20pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/5 "2015-04-04T21:20:37Z")

</div>

Para voc e sua famlia tambm

---

<div class="post-metadata">

**Author:** ![system](https://forum.xojo.com/uploads/default/original/1X/455b4dcc0e61630e9f81940004ddffa49c432a46.png) [@system](https://forum.xojo.com/u/system)\
**Post date:** [October 29, 2020, 5:42pm UTC](https://forum.xojo.com/t/problema-com-sqlexcute-ou-sqlite/23417/6 "2020-10-29T17:42:45Z")

</div>


