SrPattif Posted December 18, 2019 Posted December 18, 2019 Olá pessoal, boa tarde! Faz tempo que tenho um conhecimento relativamente avançado em Lua e MTA Scripting, porém não sabia absolutamente NADA em relação á banco de dados SQLite. Há pouco tempo atrás aprendi sobre, porém preciso de ajuda com o seguinte problema: » Preciso salvar no banco de dados, a cada vez que um comando é efetuado, salvar +1 número na célula da coluna... Deu pra entender? Tipo assim: Carro Estoque Camaro 1 Quando eu efetuar o comando: Carro Estoque Camaro 1 +1 *eu preciso pegar o valor existente na coluna e somar 1, porém estou com problemas para fazer haha *Não postei meu código pois simplesmente não consegui fazer um... hahah Espero ter te ajudado! ;D BRASIL
Tommy. Posted December 18, 2019 Posted December 18, 2019 (edited) Espero que você esteja com vontade de aprender, Irei lhe passar todas as funções que você vai precisar, Se der algum erro só falar aqui, que vou te ajudar. dbConnect, dbExec, dbPoll, dbQuery Primeiro de tudo você usa o dbConnect para conectar com o sqlite. db = dbConnect("sqlite", "database.db") Agora para criar as tabelas no banco de dados você vai usar o dbExec dbExec(db, "CREATE TABLE IF NOT EXISTS NOME_TABELA (ID, Carro, Estoque)") Para você saber se o Carro já está cadastrado no banco de dados para fazer a alteração do Estoque você vai usar o dbPoll e dbQuery local data = dbPoll(dbQuery(db, "SELECT * FROM NOME_TABELA WHERE Carro = ? ", "Camaro"), -1) Agora você vai verificar se na coluna "Carro" da tabela "NOME_TABELA" tem o carro chamado "Camaro" if #data >= 1 then -- se for <= 0 o carro não vai estar cadastrado (ou seja ele não existe no banco de dados) Para atualizar o valor você vai usar o dbQuery dbQuery(db, "UPDATE NOME_TABELA SET Estoque = ? WHERE Carro = ?", 2, "Camaro") -- Com esse exemplo ele vai setar 2 em "Estoque" do "Carro" Camaro Caso o Camaro não esteja cadastrado e você queira cadastrar por comando, você vai usar também o dbQuery dbQuery(db, "INSERT INTO NOME_TABELA VALUES(?, ?, ?)", getFreeID(), "Camaro", 0) Require para pegar um ID livre/único para cada veículo cadastrado: function getFreeID() local result = dbPoll(dbQuery(db, "SELECT ID FROM NOME_TABELA ORDER BY ID ASC"), -1) newID = false for i, id in pairs (result) do if id["ID"] ~= i then newID = i break end end if newID then return newID else return #result + 1 end end Edited December 18, 2019 by Tommy. DID I HELP YOU? ________________________________________________________________________ ム MY STEAM ________________________________________________________________________ MY SITE www.tommy.br.com
KronoS Lettify Posted December 18, 2019 Posted December 18, 2019 @Tommy. Ele está usando a database interna do MTA, o ideal dele usar é executeSQLQuery Página Facebook: The News Joker (The Piadas & News) Discord: @kronos.lettify em Discord oficial do MTA Dê um THANKS se minha ajuda ou comentário foi útil para você.
Tommy. Posted December 19, 2019 Posted December 19, 2019 5 hours ago, KronoS Lettify said: @Tommy. Ele está usando a database interna do MTA, o ideal dele usar é executeSQLQuery *Não postei meu código pois simplesmente não consegui fazer um... hahah Como sabes que ele ta usando a interna? em nenhum momento ele falou, kk DID I HELP YOU? ________________________________________________________________________ ム MY STEAM ________________________________________________________________________ MY SITE www.tommy.br.com
KronoS Lettify Posted December 19, 2019 Posted December 19, 2019 12 hours ago, Tommy. said: *Não postei meu código pois simplesmente não consegui fazer um... hahah Como sabes que ele ta usando a interna? em nenhum momento ele falou, kk Ele veio com esta mesma dúvida no Discord, então tentei ajudá-lo por lá e adquiri essas informações . OBS: Dúvida dele não foi saciada no chat do Discord Página Facebook: The News Joker (The Piadas & News) Discord: @kronos.lettify em Discord oficial do MTA Dê um THANKS se minha ajuda ou comentário foi útil para você.
Tommy. Posted December 19, 2019 Posted December 19, 2019 44 minutes ago, KronoS Lettify said: Ele veio com esta mesma dúvida no Discord, então tentei ajudá-lo por lá e adquiri essas informações . OBS: Dúvida dele não foi saciada no chat do Discord Eu li minha resposta ali em cima e peço perdão pela a ignorância, esse não foi o intuito. Bom se ele for realmente usar o banco de dados interno da para ele usar a função que você disse. executeSQLQuery, mas eu não recomendo. Vamos aguardar a resposta dele sobre o meu "guia". DID I HELP YOU? ________________________________________________________________________ ム MY STEAM ________________________________________________________________________ MY SITE www.tommy.br.com
KronoS Lettify Posted December 19, 2019 Posted December 19, 2019 12 minutes ago, Tommy. said: Eu li minha resposta ali em cima e peço perdão pela a ignorância, esse não foi o intuito. Bom se ele for realmente usar o banco de dados interno da para ele usar a função que você disse. executeSQLQuery, mas eu não recomendo. Vamos aguardar a resposta dele sobre o meu "guia". Também pensei a mesma coisa Página Facebook: The News Joker (The Piadas & News) Discord: @kronos.lettify em Discord oficial do MTA Dê um THANKS se minha ajuda ou comentário foi útil para você.
Moderators Lord Henry Posted December 20, 2019 Moderators Posted December 20, 2019 (edited) Eu usaria executeSQLQuery com banco de dados nativo do MTA. Não vejo vantagem em fazer externo com MySQL pois é um pouco mais complicado. E por estar aprendendo, o ideal é começar pelo mais fácil. Edited December 20, 2019 by Lord Henry Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now