 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
guimas Membro Junior

Registrado: Quarta-Feira, 30 de Mai de 2007 Mensagens: 333
|
Enviada: Ter Set 24, 2019 3:34 pm Assunto: Tokyo+Postgre+multisql - RESOLVIDO |
|
|
Boa tarde a todos - nos delphis antigos vc podia executar vários sql num objeto TQuery, TZQuery - porém no tokyo, isso não funciona, fazer mais de 1 update ou mais de um insert ... alguém tem alguma dica.
Desde já muito obrigado 
Editado pela última vez por guimas em Qua Set 25, 2019 7:57 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Set 25, 2019 8:58 am Assunto: |
|
|
pelo q me lembro o TQuery (e seus derivados) nao permite executar varios comandos sql de uma vez so. vc teria q usar componente de script pra isso:
Citação: | TZSqlProcessor
TUniScript |
ou seu equivalente _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
guimas Membro Junior

Registrado: Quarta-Feira, 30 de Mai de 2007 Mensagens: 333
|
Enviada: Qua Set 25, 2019 12:57 pm Assunto: |
|
|
MUITO Obrigado pela dica Joemil, peguei um exemplo aqui
with DMConnection.FDScript1 do
begin
try
SQLScripts.Clear;
SQLScripts.Add;
with SQLScripts[0].SQL do
begin
Add(///sua instruição sql aqui);
end;
ValidateAll;
ExecuteAll;
except
on E: Exception do
GerarLog('C:\MeuSistema\ERRO_Script ' + TB_CADASTRO +
'.wcerro', E.Message, E.ClassName);
end;
end;
Só que se eu insiro 10 linhas de inserções e da pau na 4, tem q dar rollback ... e ele apenas insere 9 ... tentei NOT VALIDATEALL, mas não funciona o mesmo ...
Tentei várias outras formas ... mas não consigo dar ROLLBACK se alguma instrução falhar
Tens alguma ideia ?? |
|
Voltar ao Topo |
|
 |
guimas Membro Junior

Registrado: Quarta-Feira, 30 de Mai de 2007 Mensagens: 333
|
Enviada: Qua Set 25, 2019 7:55 pm Assunto: |
|
|
RESOLVIDO - obrigado a todos
with FDScript1 do
begin
try
SQLScripts.Clear;
SQLScripts.Add;
with SQLScripts[0].SQL do
begin
Add('insert into usuarios (cod_usuario,nome,senha,ativo)values(5,'+QuotedStr('AAA')+','+QuotedStr('111')+','+QuotedStr('S')+');');
Add('insert into usuarios (cod_usuario,nome,senha,ativo)values(6,'+QuotedStr('BáB')+','+QuotedStr('111')+','+QuotedStr('S')+');');
Add('insert into usuarios (cod_usuario,nome,senha,ativo)values(7,'+QuotedStr('CCC')+','+QuotedStr('111')+','+QuotedStr('S')+');');
end;
ValidateAll;
FDCon.StartTransaction;
if FDScript1.ExecuteAll then
FDCon.Commit
else
begin
//showmessage(inttostr(fdscript1.TotalJobSize)); // don't undertand these TotalJobSize and related values
ShowMessage('Error');
FDCon.Rollback;
end;
except
on E: Exception do
ShowMessage('Erro');
end;
end; |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|