Only a theory about that, and you might've found a bug in a_mysql.inc .
pawn Код:
native orm_addvar_string(ORM:id, &{Float, _}:var, var_maxlen, varname[]);
Basically the second argument requires reference to a single celled variable, and it doesn't raise an error when used with enumerated array only because either the compiler doesn't know it's an array (but usually it does), or the variable has a new tag - the enums one. That was sphagetti statement, let me demonstrate:
pawn Код:
new Foo[16];
enum Bar {
Foobar[16]
}
new Barfoo[Bar];
//(...)
//No can do, we want a single cell and you give us an array! - Error
orm_addvar_string(oid, Foo, 16, "foobarfoo");
//Compiler is confused! Compiler hurts itself in its confusion! - No dimensions mismatch? No idea why though
orm_addvar_string(oid, Barfoo[Foobar], 16, "foobarfoo");
The 'fix' I gave you, works because it's a plugin function. In memory every string cell is set in a row, so we pass the address of first one, and read the memory until MAX_PLAYER_NAME cells. If orm_addvar was a pawn function, there would be a lot of "dimensions do not match" stuff.