[Ajuda] samp-server nгo conecta a database
#1

Eu havia criado um tуpico para pedir ajuda em SQLite, mas eu o apaguei pois resolvi reescrever o cуdigo.
Eu de fato o reescrevi, mas agora eu nгo estou conseguindo fazer o samp-server executar minhas querys.

Variбveis relacionadas a database
Код:
new
	DB:serverdata,
	query[1000],
	DBResult:db_result
;
Criando conexгo com a database
Код:
serverdata = db_open("serverdata.db");
db_query(serverdata, "PRAGMA synchronous = OFF");
db_query(serverdata, "CREATE TABLE IF NOT EXISTS users (ID INTEGER PRIMARY KEY AUTOINCREMENT, Nome VARCHAR(24) COLLATE NOCASE NOT NULL, Senha VARCHAR(129) COLLATE NOCASE NOT NULL, IP VARCHAR(24) NOT NULL, X REAL NOT NULL, Y REAL NOT NULL, Z REAL NOT NULL, R REAL NOT NULL, VW INTEGER NOT NULL, Int INTEGER NOT NULL, Money INTEGER NOT NULL, Skin INTEGER NOT NULL, HasJob INTEGER NOT NULL, Job VARCHAR(24) NOT NULL, Admin INTEGER NOT NULL, AdminLevel INTEGER NOT NULL");
Essas sгo as querys iniciais e nem isso eu estou conseguindo executar.
Meu IDE й o Sublime Text 3, eu uso o compilador padrгo do Pawn. (pawncc.exe)
Meu SO й Windows 10 - versгo 14393.

@TOPIC UPDATE

Descobri meus erros, meu sistema de salvamento de dados funciona perfeitamente agora.

O erro estava na hora de criar a tabela 'users'. Eu estava colocando NOT NULL e isto estava dando algum conflito e a query nгo salvava.

Se a query nгo executar й porque tem algum parвmetro ali dentro que estб errado. Como nуs usamos o format para colocar a nossa funзгo SQL dentro de uma string, nгo tem como colocar um debug nela antes de executar.
Reply
#2

Faзa um DEBUG para ver se esta se conectando

PHP код:
    if((serverdata = db_open("serverdata.db")) == DB:0)
    {
        
SendRconCommand("exit");
        print(
"Falha ao se conectar a DataBase SQlite"); // DEBUG
        
} else {
        print(
"Conectado com sucesso a DataBase SQlite."); // DEBUG
        //Crie os arquivos se nao existir
    
} 
E seu:

Код:
db_query(serverdata, "CREATE TABLE IF NOT EXISTS users (ID INTEGER PRIMARY KEY AUTOINCREMENT, Nome VARCHAR(24) COLLATE NOCASE NOT NULL, Senha VARCHAR(129) COLLATE NOCASE NOT NULL, IP VARCHAR(24) NOT NULL, X REAL NOT NULL, Y REAL NOT NULL, Z REAL NOT NULL, R REAL NOT NULL, VW INTEGER NOT NULL, Int INTEGER NOT NULL, Money INTEGER NOT NULL, Skin INTEGER NOT NULL, HasJob INTEGER NOT NULL, Job VARCHAR(24) NOT NULL, Admin INTEGER NOT NULL, AdminLevel INTEGER NOT NULL");
Esta faltando fechar uma ) verifique.
Reply
#3

Quote:
Originally Posted by Cleyson
Посмотреть сообщение
Esta faltando fechar uma ) verifique.
Era isso, obrigado.
Reply
#4

Essa query estб correta? Porque ela nгo estб executando, mesmo com a tabela criada dentro da database.
Код:
SHA256_PassHash(inputtext, SALT, Hash[playerid], 128+1);
format(query, sizeof(query), "INSERT INTO users (Nome, Senha) VALUES ('%q', '%s')", playerName[playerid], Hash[playerid]);
db_query(serverdata, query);
Reply
#5

Parece estar tudo ok, nгo sou muito a favor de usar %q as vezes pode entender como id.

tente:

PHP код:
SHA256_PassHash(inputtext, SALT, Hash[playerid], 128+1);
format(query, sizeof(query), "INSERT INTO users (Nome, Senha) VALUES ('%s', '%s')", playerName[playerid], Hash[playerid]);
db_query(serverdata, query); 
Reply
#6

Quote:
Originally Posted by Cleyson
Посмотреть сообщение
Parece estar tudo ok, nгo sou muito a favor de usar %q as vezes pode entender como id.

tente:

PHP код:
SHA256_PassHash(inputtext, SALT, Hash[playerid], 128+1);
format(query, sizeof(query), "INSERT INTO users (Nome, Senha) VALUES ('%s', '%s')", playerName[playerid], Hash[playerid]);
db_query(serverdata, query); 
Ainda sem resultado, nгo ta executando a query.
A query fica assim
Код:
INSERT INTO users (Nome, Senha) VALUES ('Ermanhaut', '3BAA165BAFB47B79CA89502B19B07E9AF3F3AE279A2321CDFDD83AF8D006FA66')
Reply


Forum Jump:


Users browsing this thread: