SQlite help.
#1

I am having problems with SQlite...

Here's the saving/loading functions to my script,
Код:
stock SaveServerVariables() {
	KillTimer(sTimerId);

	new Query[100],
		DBResult: Result;

	sDB = db_open("Server.db");
	Result = db_query(sDB, "SELECT * FROM server_settings");

	if(db_num_rows(Result) != 1) {
		format(Query, 100, "DELETE * FROM server_settings"), db_free_result(db_query(sDB, Query));
		format(Query, 100, "INSERT INTO server_settings (Name) VALUES ('%s')", sName), db_free_result(db_query(sDB, Query));
	}

	db_free_result(Result);
	format(Query, 100, "UPDATE server_settings SET Name='%s'", sName), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Mode='%s'", sMode), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Map='%s'", sMap), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Website='%s'", sWebsite), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Password='%s'", sPassword), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Year=%d", sYear), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Month=%d", sMonth), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Day=%d", sDay), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Hour=%d", sHour), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Minute=%d", sMinute), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Second=%d", sSecond), db_free_result(db_query(sDB, Query));
	format(Query, 100, "UPDATE server_settings SET Timestamp=%d", sTimestamp), db_free_result(db_query(sDB, Query));
	db_close(sDB);

	print("The server has saved.");

	sTimerId = SetTimer("UpdateServer", 500, true);
	return true;
}

stock LoadServerVariables() {
	KillTimer(sTimerId);

	new DBResult: Query;

	sDB = db_open("Server.db");
	Query = db_query(sDB, "SELECT * FROM server_settings");
	
	if(db_num_rows(Query) != 0) {
	    new Result[100];
	    
	    db_get_field_assoc(Query, "Name", Result, 100), format(sName, 100, "%s", Result);
	    db_get_field_assoc(Query, "Mode", Result, 100), format(sMode, 100, "%s", Result);
	    db_get_field_assoc(Query, "Map", Result, 100), format(sMap, 100, "%s", Result);
	    db_get_field_assoc(Query, "Website", Result, 100), format(sWebsite, 100, "%s", Result);
	    db_get_field_assoc(Query, "Password", Result, 100), format(sPassword, 100, "%s", Result);
	    db_get_field_assoc(Query, "Year", Result, 100), sYear = strval(Result);
	    db_get_field_assoc(Query, "Month", Result, 100), sMonth = strval(Result);
	    db_get_field_assoc(Query, "Day", Result, 100), sDay = strval(Result);
	    db_get_field_assoc(Query, "Hour", Result, 100), sHour = strval(Result);
	    db_get_field_assoc(Query, "Minute", Result, 100), sMinute = strval(Result);
	    db_get_field_assoc(Query, "Second", Result, 100), sSecond = strval(Result);
	    db_get_field_assoc(Query, "Timestamp", Result, 100), sTimestamp = strval(Result);
	    
	    print("The server has loaded.");
	}
	
	db_free_result(Query);
	db_close(sDB);

	sTimerId = SetTimer("UpdateServer", 500, true);
	return true;
}
And in the Database Viewer, after multiple saves, you start seeing this,


It is like,
Quote:

"DELETE * FROM server_settings"

is not working, anyone help me?
Reply
#2

Still need help.
Reply
#3

Try removing the asterisk in your delete query, whenever I write queries with MySQL I never use '*' in conjunction with delete, even if I'm removing everything from the given table.
Reply
#4

Wow can't believed that was the problem this whole damn time.

Thank you Calgon.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)