Pular para o conteúdo principal

DB_GetFieldInt

Descrição

Obtém o conteúdo de um campo como um número inteiro a partir de DB_ExecuteQuery.

NomeDescrição
DBResult:resultO resultado de onde obter os dados.
field = 0O campo de onde obter os dados.

Retorno

Valor recuperado como um número inteiro.

Exemplo

// examples.inc

// ...

static FindFieldIndexByName(DBResult:dbResultSet, const fieldName[])
{
// Variável de valor de retorno com valor padrão
new ret = -1;

// Número de campos
new field_count = DB_GetFieldCount(dbResultSet);

// Nome do campo atual
new current_field_name[32];

// Itera por todos os campos
for (new field_index; field_index < field_count; field_index++)
{
// Obtém o nome do campo
if (DB_GetFieldName(dbResultSet, field_index, current_field_name, sizeof current_field_name))
{
// Compara o nome do campo procurado com o atual
if (!strcmp(fieldName, current_field_name))
{
// Sucesso, armazena o índice na variável de retorno
ret = field_index;

// Sai do loop
break;
}
}
}

// Retorna o índice encontrado ou "-1"
return ret;
}

Examples_CalculateSum(DB:dbConnectionHandle)
{
// Variável de valor de retorno
new ret;

// Conjunto de resultados do banco de dados
new DBResult:db_result_set = DB_ExecuteQuery("SELECT `value` FROM `examples`");

// Se o conjunto de resultados é válido
if (db_result_set)
{
// Obtém o índice do campo alvo
new target_field_index = FindFieldIndexByName(db_result_set, "value");

// Verifica se o índice é válido
if (target_field_index >= 0)
{
// Faz operações
do
{
// Adiciona o valor do campo "example" à variável de retorno
ret += DB_GetFieldInt(db_result_set, target_field_index);
}

// Enquanto a próxima linha puder ser obtida
while (DB_SelectNextRow(db_result_set));
}

// Libera o conjunto de resultados
DB_FreeResultSet(db_result_set);
}

// Retorna a soma calculada
return ret;
}
// mode.pwn

// ...

#include <examples>

static DB:gDBConnectionHandle;

// ...

public OnGameModeInit()
{
// ...

// Cria uma conexão com o banco de dados
gDBConnectionHandle = DB_Open("example.db");

// Se a conexão com o banco de dados existe
if (gDBConnectionHandle)
{
// Conexão criada com sucesso
print("Criou com sucesso uma conexão com o banco de dados \"example.db\".");
printf("Soma calculada: %d", Examples_CalculateSum(gDBConnectionHandle));
}
else
{
// Falhou ao criar a conexão
print("Falhou ao abrir uma conexão com o banco de dados \"example.db\".");
}

// ...

return 1;
}

public OnGameModeExit()
{
// Fecha a conexão com o banco de dados se ela estiver aberta
if (DB_Close(gDBConnectionHandle))
{
// Limpeza extra
gDBConnectionHandle = DB:0;
}

// ...

return 1;
}

Notas

Funções Relacionadas