dbQuery
Dispara uma consulta e devolve um handle para você ler o resultado com dbPoll.
Sintaxe
Seção intitulada “Sintaxe”query dbQuery ( [ function callback [, table argumentos ] , ] db-connection aConexao, string sql [, ... ] )Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
callback | function | — | Opcional. Função chamada quando o resultado fica pronto. |
argumentos | table | — | Opcional, e só junto com callback. Valores repassados à função depois do handle. |
aConexao | db-connection | — | Elemento devolvido por dbConnect. |
sql | string | — | Consulta a executar. |
... | any | — | Valores para os ? da consulta. |
Retorno
Seção intitulada “Retorno”O handle da consulta (número), ou false se o elemento de conexão não estiver utilizável ou se faltar o texto da consulta.
Receber um handle não é garantia de que o SQL está correto: a consulta ainda não rodou quando o dbQuery retorna. Erro de sintaxe, tabela que não existe, conexão perdida — tudo isso volta depois, pelo dbPoll.
Usando um callback
Quando você passa um callback, o resto da sua função roda primeiro e o callback dispara em um frame posterior do servidor, depois que a consulta terminou. Ele recebe o handle da consulta como primeiro argumento, seguido dos valores da tabela argumentos. Como o resultado já está completo nesse ponto, dbPoll(consulta, 0) dentro do callback devolve as linhas sem esperar:
dbQuery(function(consulta, jogador) local linhas = dbPoll(consulta, 0) if linhas and linhas[1] then setElementData(jogador, "dinheiro", linhas[1].dinheiro) endend, { jogador }, conexao, "SELECT dinheiro FROM contas WHERE nome = ?", getPlayerName(jogador))Veja também
Seção intitulada “Veja também”dbConnect— Abre uma conexão com um banco de dados.dbExec— Executa um comando SQL do qual você não precisa das linhas de volta.dbPoll— Recolhe o resultado de uma consulta.dbFree— Descarta um resultado que você não vai ler.dbPrepareString— Monta uma string SQL com os valores já escapados no lugar dos ?.