[Tutorial] How to: SQLite
#21

Quote:
Originally Posted by TheLazySloth
Посмотреть сообщение
It's a bit slow at updating queries.

Takes 3secs to run this code.

Код:
stock SaveObjectVariables(ObjectId) {
	KillTimer(oTimerId[ObjectId]);

	new Query[250],
		DBResult: Result;

	oDB = db_open("Objects.db");
	format(Query, 250, "SELECT * FROM object_data WHERE Id=%d", ObjectId);
	Result = db_query(oDB, Query);

	if(db_num_rows(Result) != 1) {
		format(Query, 250, "DELETE FROM object_data WHERE Id=%d", ObjectId), db_free_result(db_query(oDB, Query));
		format(Query, 250, "INSERT INTO object_data (Id) VALUES (%d)", ObjectId), db_free_result(db_query(oDB, Query));
	}

	db_free_result(Result);
	format(Query, 250, "UPDATE object_data SET ModelId=%d WHERE Id=%d", oModelId[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET Spawned=%d WHERE Id=%d", oSpawned[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnWorld=%d WHERE Id=%d", oSpawnWorld[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnInterior=%d WHERE Id=%d", oSpawnInterior[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnX=%f WHERE Id=%d", oSpawnX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnY=%f WHERE Id=%d", oSpawnY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnZ=%f WHERE Id=%d", oSpawnZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnRX=%f WHERE Id=%d", oSpawnRX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnRY=%f WHERE Id=%d", oSpawnRY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET SpawnRZ=%f WHERE Id=%d", oSpawnRZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosWorld=%d WHERE Id=%d", oPosWorld[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosInterior=%d WHERE Id=%d", oPosInterior[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosX=%f WHERE Id=%d", oPosX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosY=%f WHERE Id=%d", oPosY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosZ=%f WHERE Id=%d", oPosZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosRX=%f WHERE Id=%d", oPosRX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosRY=%f WHERE Id=%d", oPosRY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET PosRZ=%f WHERE Id=%d", oPosRZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET Timestamp=%d WHERE Id=%d", oTimestamp[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET IsGate=%d WHERE Id=%d", oIsGate[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedX=%f WHERE Id=%d", oClosedX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedY=%f WHERE Id=%d", oClosedY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedZ=%f WHERE Id=%d", oClosedZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedRX=%f WHERE Id=%d", oClosedRX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedRY=%f WHERE Id=%d", oClosedRY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET ClosedRZ=%f WHERE Id=%d", oClosedRZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedX=%f WHERE Id=%d", oOpenedX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedY=%f WHERE Id=%d", oOpenedY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedZ=%f WHERE Id=%d", oOpenedZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedRX=%f WHERE Id=%d", oOpenedRX[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedRY=%f WHERE Id=%d", oOpenedRY[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	format(Query, 250, "UPDATE object_data SET OpenedRZ=%f WHERE Id=%d", oOpenedRZ[ObjectId], ObjectId), db_free_result(db_query(oDB, Query));
	db_close(oDB);

	printf("Object %d has saved.", ObjectId);

	oTimerId[ObjectId] = SetTimerEx("UpdateObject", 500, true, "d", ObjectId);
	return true;
}
Wish it was a little faster.
You only need one query!
Reply


Messages In This Thread
How to: SQLite (basic tutorial) - by __ - 17.06.2011, 22:54
Re: How to: SQLite - by __ - 17.06.2011, 23:06
Re: How to: SQLite - by Lorenc_ - 18.06.2011, 02:52
Re: How to: SQLite - by cessil - 18.06.2011, 05:33
Re: How to: SQLite - by __ - 18.06.2011, 11:32
Re: How to: SQLite - by Lorenc_ - 18.06.2011, 11:42
Re: How to: SQLite - by __ - 18.06.2011, 11:50
Re: How to: SQLite - by __ - 16.07.2011, 20:14
Re: How to: SQLite - by Jonny5 - 25.04.2012, 16:53
Re: How to: SQLite - by __ - 25.04.2012, 16:56
Re: How to: SQLite - by System64 - 25.04.2012, 17:33
Re: How to: SQLite - by ReneG - 13.05.2012, 17:32
Re: How to: SQLite - by __ - 14.06.2012, 10:08
Re: How to: SQLite - by Rudy_ - 14.06.2012, 10:12
Re: How to: SQLite - by Calgon - 14.06.2012, 10:17
Re: How to: SQLite - by __ - 14.06.2012, 10:18
Re: How to: SQLite - by Kindred - 14.06.2012, 10:44
Re: How to: SQLite - by __ - 14.06.2012, 10:47
Re: How to: SQLite - by TheLazySloth - 15.06.2012, 00:22
Re: How to: SQLite - by ReneG - 15.06.2012, 01:24
Re: How to: SQLite - by __ - 15.06.2012, 07:16
Re: How to: SQLite - by ReneG - 15.06.2012, 07:21
Re: How to: SQLite - by ReneG - 15.06.2012, 07:44
Re: How to: SQLite - by TheLazySloth - 15.06.2012, 16:14
Re: How to: SQLite - by Jonny5 - 15.06.2012, 16:29
Re: How to: SQLite - by ReneG - 15.06.2012, 17:11
Re: How to: SQLite - by kingchandio - 17.06.2012, 10:22
Re: How to: SQLite - by Calgon - 17.06.2012, 16:56
Re: How to: SQLite - by kingchandio - 17.06.2012, 21:01
Re: How to: SQLite - by Calgon - 17.06.2012, 22:50
Re: How to: SQLite - by Dodo9655 - 24.06.2012, 09:48
Re: How to: SQLite - by Kreatyve - 12.10.2012, 17:33
Re: How to: SQLite - by Guest4390857394857 - 22.02.2014, 13:46

Forum Jump:


Users browsing this thread: 1 Guest(s)