Firedac insersao

Delphi

02/08/2013

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

Curtidas 1

Respostas

Deivison Melo

Deivison Melo

02/08/2013

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?
GOSTEI 0
Luiz Junior

Luiz Junior

02/08/2013

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.
GOSTEI 0
Josenilson Silva

Josenilson Silva

02/08/2013

Utilie o FDScript
GOSTEI 0
Josenilson Silva

Josenilson Silva

02/08/2013

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