Erro no Insert Mysql (MariaDB)
24/03/2022
0
Seguindo meu dilema aqui.
Estou tendo um problema em fazer uma inserção no Mysql.
Esta é a minha query.
SQLCampo.SQL.Add(''INSERT INTO campo(id, campo) VALUES ('' + FieldByName(''Código'').AsString + '', '''''' + FieldByName(''campo'').AsString + '''''')''); SQLCampo.ExecSQL;
First chance exception at $7790ECE2. Exception class TDBXError with message ''You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''INSERT INTO campo(id, campo) VALUES (111, ''SEM DEFINIÇÃO'')'' at line 2''. Process ConectorGB.exe (4024)
Se eu pego essa mesma query e insiro diretamente no gerenciador do Mysql, ela roda sem problemas
INSERT INTO campo(id, campo) VALUES (111, ''SEM DEFINIÇÃO'')
Como eu poderia resolver essa situação? Teria a ver com a acentuação?

Oswaldo
Curtir tópico
+ 0Posts
24/03/2022
Emerson Nascimento
SQLCampo.SQL.Add('INSERT INTO campo(id, campo) VALUES ( :ValorID, :ValorCampo )'); SQLCampo.ParamByName('ValorID').AsInteger := FieldByName('Código').AsInteger; SQLCampo.ParamByName('ValorCampo').AsString := FieldByName('Campo').AsString; SQLCampo.ExecSQL;
Gostei + 0
24/03/2022
Oswaldo
SQLCampo.SQL.Add('INSERT INTO campo(id, campo) VALUES ( :ValorID, :ValorCampo )'); SQLCampo.ParamByName('ValorID').AsInteger := FieldByName('Código').AsInteger; SQLCampo.ParamByName('ValorCampo').AsString := FieldByName('Campo').AsString; SQLCampo.ExecSQL;
Olá Emerson, Bom dia. Obrigado pela ajuda.
Fiz os ajustes, mas continua o erro. Agora, a acentuação bagunçou, como se tivesse mudado o charset.
First chance exception at $7790ECE2. Exception class TDBXError with message 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO campo(id, campo) VALUES ( '111' , 'SEM DEFINIÇÃO' )' at line 2'. Process ConectorGB.exe (26300)
Gostei + 0
24/03/2022
Emerson Nascimento
coisa estranha: '111' deveria ser apresentado como 111 (supondo que o campo id seja numerico). por isso coloquei AsInteger.
Gostei + 0
24/03/2022
Oswaldo
coisa estranha: '111' deveria ser apresentado como 111 (supondo que o campo id seja numerico). por isso coloquei AsInteger.
Sim, ele é um INT
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)