22.08.2015, 01:44
En MySQL hay un tipo de dato llamado BLOB para guardar datos binarios. Tambien existe una forma (no muy elegante) pero que es mбs fбcil de aplicar en pawn con mysql: Guardarlo como si fuera un "varchar" con comas.
Ejemplo, tenes el array "new x[] = {1, 2, 3};" entonces lo guardбs como "1,2,3" en un campo varchar (usando format) y despues lo lees usando unformat o sscanf.
Ej en la tabla test "CREATE TABLE test (array1 VARCHAR(40))"
Este metodo puede ser mas claro de comprender, su desventaja es que desperdicia memoria, ya que en cada caracteres decimales en vez de bytes. No deberia ser un problema.
Para leer, se lee como un varchar normal. Ejemplo, cargas el varchar en "arrayVarchar":
Y ya cargaste el array
Ejemplo, tenes el array "new x[] = {1, 2, 3};" entonces lo guardбs como "1,2,3" en un campo varchar (usando format) y despues lo lees usando unformat o sscanf.
Ej en la tabla test "CREATE TABLE test (array1 VARCHAR(40))"
pawn Код:
new sqlStatement[200], arrayToSave[] = {1, 2, 3};
format(sqlStatement, 200, "insert into test array1 values ('%d,%d,%d')", arrayToSave[0], arrayToSave[1], arrayToSave[2]);
Para leer, se lee como un varchar normal. Ejemplo, cargas el varchar en "arrayVarchar":
pawn Код:
new myArray[3];
sscanf(arrayVarchar, "p<,>iii", myArray[0], myArray[1], myArray[2]);