MySQL como atribuir valor nulo via SA-MP -
ViniKuliveguisky - 03.02.2017
Boa noite,
Estou voltando a trabalhar com SA-MP no meu antigo projeto e estou fazendo mudanзas significativas no mesmo, como por exemplo passando todo o sistema de arquivo DOF2 para MySQL. O problema й que possuo uma variбvel em que o jogador pode ou nгo ser dono dessa empresa, sendo assim o campo pode ser nulo. Pesquisei em diversos tutoriais aqui do forum sa-mp e nгo vi nenhum explicando isso ou alguйm que jб passou por essa situaзгo.
Segue um trecho de cуdigo para exemplificar o que estб acontecendo:
Код:
...
new sQuery[128];
mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa set proprietarioEmpresa = '%e' WHERE idEmpresa = %i",
EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
mysql_query(db, sQuery, false);
O campo
proprietarioEmpresa ele pode ser
nulo ou
possuir o nome de um jogador que no caso й uma
foreign key, porйm se eu jogar a variбvel com o format
'%e', ele atribuiria o valor
NULL como string (errado) e o nome do jogador seria como string
(certo). Agora se passar com o format %e (sem aspas simples), ele interpretaria o valor
NULL como
nulo (certo) e o
nome do jogador como uma
coluna invбlida (errado).
* No exemplo acima estou fazendo o update apenas de um campo, mas no meu cуdigo original tem muitos outros.
Respuesta: MySQL como atribuir valor nulo via SA-MP -
ViniKuliveguisky - 03.02.2017
Por favor, se nгo souber responder nгo responda, o pessoal lк a quantidade de posts e ignora achando que foi resolvido
Re: MySQL como atribuir valor nulo via SA-MP -
TheBob - 03.02.2017
se eu soubesse MYSQL te ajudaria namoral
Re: MySQL como atribuir valor nulo via SA-MP -
RodrigoMSR - 03.02.2017
Coloque um nick padrгo como "Ninguem" e o bloqueie no servidor, depois no sistema faзa a checagem do nick para ver se possui ou nгo dono.
Jб que estб utilizando MySQL, recomendo colocar o ID da conta do jogador em vez de seu nick, alйm de ser mais fбcil o manuseio (troca de nick e variбveis) os IDs comeзam a partir do 1, entгo o 0 pode ser usado para empresa sem dono.
Re: MySQL como atribuir valor nulo via SA-MP -
F1N4L - 03.02.2017
Код:
if(EmpresaDono[i][0] == '\0')
mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = NULL WHERE idEmpresa = %i", EmpresaInfo[i][idEmpresa]);
else
mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = '%e' WHERE idEmpresa = %i", EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
Este cуdigo vai verificar a cada loop se a variбvel EmpresaDono й nula ou nгo, caso for, serб inserido valor NULL а coluna, caso nгo for, serб inserido o valor contido na variбvel EmpresaDono.
Gostaria de esclarecer a razгo pela qual esse cуdigo nгo pode utilizar Operaзгo Ternбria: Usando essa operaзгo, o cуdigo ficaria menor, mas daria o mesmo resultado, ao invйs de inserir um valor nulo na coluna, seria inserido o valor NULL como string. Desta forma, a maneira mais adequada й criar uma condiзгo que verifique se a variбvel й nula para definir valor nulo corretamente а coluna.
Respuesta: Re: MySQL como atribuir valor nulo via SA-MP -
ViniKuliveguisky - 03.02.2017
Quote:
Originally Posted by F1N4L
Код:
if(EmpresaDono[i][0] == '\0')
mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = NULL WHERE idEmpresa = %i", EmpresaInfo[i][idEmpresa]);
else
mysql_format(db, sQuery, sizeof(sQuery), "UPDATE empresa SET proprietarioEmpresa = '%e' WHERE idEmpresa = %i", EmpresaDono[i], EmpresaInfo[i][idEmpresa]);
Este cуdigo vai verificar a cada loop se a variбvel EmpresaDono й nula ou nгo, caso for, serб inserido valor NULL а coluna, caso nгo for, serб inserido o valor contido na variбvel EmpresaDono.
Gostaria de esclarecer a razгo pela qual esse cуdigo nгo pode utilizar Operaзгo Ternбria: Usando essa operaзгo, o cуdigo ficaria menor, mas daria o mesmo resultado, ao invйs de inserir um valor nulo na coluna, seria inserido o valor NULL como string. Desta forma, a maneira mais adequada й criar uma condiзгo que verifique se a variбvel й nula para definir valor nulo corretamente а coluna.
|
Pensei nesse modo, porйm continua sendo um modo "feio" se й que me entende... Mesmo assim obrigado.
+rep.