Fórum Firedac insersao #450666

02/08/2013

0

Alguem saberia me explicar o por que desse erro no firedac.
Trabalhava com o zeos a fazia assim e funcionava agora migrei pro faridac e isso nao funciona no firedac
ou sera que tem alguma propriedade pra mim configura pra ter esta opcao
with Query1 do //Componente query do ZeosLib
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (1,''CLIENTE''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (2,''FORNECEDOR''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (3,''TRANSPORTADORA''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (4,''VENDEDOR''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (5,''PRODUTOR RURAL''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (6,''MECÂNICO''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (7,''FUNCIONARIO''); ');
ExecSQL;
end;

Mesmo sql porem no firadac nao funciona

with ADQuery1 do //Componente quaery do firedac
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (1,''CLIENTE''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (2,''FORNECEDOR''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (3,''TRANSPORTADORA''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (4,''VENDEDOR''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (5,''PRODUTOR RURAL''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (6,''MECÂNICO''); '+
'INSERT INTO pri_tipo_pessoa(tippes_cod,tippes_nome)VALUES (7,''FUNCIONARIO''); ');
ExecSQL;
end;

Se alguem encontrou uma solucao favor me ajudar
o erro que aparece é o seguinte:
"Nao pode inserir multiplos comandos no caomando preparado".
Volmir Santos

Volmir Santos

Responder

Posts

02/08/2013

Deivison Melo

Não é que seja erro, o delphi não permite a inserção dessa forma...

Porque não utiliza um loop para inserir as informações desejadas?
Responder

Gostei + 0

12/11/2013

Luiz Junior

Volmir, você poderia tentar assim também...

INSERT INTO tabela (Codigo, Nome) VALUES(1,'teste1'), (2,'teste2'),(3,'teste3');


Eu acredito que fique até mais rápido, pois o Mysql vai executar apenas um insert.
Responder

Gostei + 0

11/11/2015

Josenilson Silva

Utilie o FDScript
Responder

Gostei + 0

11/11/2015

Josenilson Silva

Digo: Troque o componente FDQuery pelo FDScript e continue o mesmo procedimento anterior. Vai funcionar.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar