Piradox !!!
Olá pessoal , gostaria de saber se vcs já passaram por esta situação com esse maravilhoso banco de dados.
Eu tenho uma rotina de manutenção de dados onde ela excluirá os registros das tabelas de acordo com seus respectivos relacionamentos numa determinada data para traz Ex : <=10/01/2000.Antes de eu excluir
eu passo um pack Table nas tabelas para diminuir o tráfego daqueles registros ´sombras´ e depois eu começo a excluir os registros, chega uma determinada hora que acontece o seguinte erro : Invalid Parameter
na instrução Sql , eu conferir o comando dado para o TQuery e esta correto , abaixo segue o comando !!
Try
Dm.StartTransaction;
While Query1.eof = false do
begin
Sql:=´Delete from tabela where codigo=´;
Sql:=Sql+IntToStr(Query1.FieldByName(´Codigo´).AsInteger);
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add(Sql);
Query2.ExecSql;
Query1.Next;
end;
Dm.Commit;
Apllication.messagebox(´Operação efetuada com
Sucesso !!´,´Atenção´,0+32);
Except On E: Exception
begin
ShowMessage(E.Message);
Dm.Rollback;
end;
end;
Eu tenho uma rotina de manutenção de dados onde ela excluirá os registros das tabelas de acordo com seus respectivos relacionamentos numa determinada data para traz Ex : <=10/01/2000.Antes de eu excluir
eu passo um pack Table nas tabelas para diminuir o tráfego daqueles registros ´sombras´ e depois eu começo a excluir os registros, chega uma determinada hora que acontece o seguinte erro : Invalid Parameter
na instrução Sql , eu conferir o comando dado para o TQuery e esta correto , abaixo segue o comando !!
Try
Dm.StartTransaction;
While Query1.eof = false do
begin
Sql:=´Delete from tabela where codigo=´;
Sql:=Sql+IntToStr(Query1.FieldByName(´Codigo´).AsInteger);
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add(Sql);
Query2.ExecSql;
Query1.Next;
end;
Dm.Commit;
Apllication.messagebox(´Operação efetuada com
Sucesso !!´,´Atenção´,0+32);
Except On E: Exception
begin
ShowMessage(E.Message);
Dm.Rollback;
end;
end;
Solider
Curtidas 0
Respostas
Aroldo Zanela
10/03/2003
If InTransaction is True, indicating that a transaction is already in progress, a subsequent call to StartTransaction without first calling Commit or Rollback to end the current transaction raises an exception.
Updates, insertions, and deletions that take place after a call to StartTransaction are held by the server until an application calls Commit to save the changes or Rollback is to cancel them.
Não conheço Paradox. Ele tem suporte a transações?
Updates, insertions, and deletions that take place after a call to StartTransaction are held by the server until an application calls Commit to save the changes or Rollback is to cancel them.
Não conheço Paradox. Ele tem suporte a transações?
GOSTEI 0
Okama
10/03/2003
Aparentemente a rotina está correta, o que posso sugerir é que teste cada exclusão verificando se o código existe.
Antes do Query2.ExecSql; digite um Showmessage( Query2.Sql.Text );
Verifique quando a tabela alcança o fim se executa a rotina ou pára.
Antes do Query2.ExecSql; digite um Showmessage( Query2.Sql.Text );
Verifique quando a tabela alcança o fim se executa a rotina ou pára.
GOSTEI 0
Anonymous
10/03/2003
Olá pessoal , gostaria de saber se vcs já passaram por esta situação com esse maravilhoso banco de dados.
Eu tenho uma rotina de manutenção de dados onde ela excluirá os registros das tabelas de acordo com seus respectivos relacionamentos numa determinada data para traz Ex : <=10/01/2000.Antes de eu excluir
eu passo um pack Table nas tabelas para diminuir o tráfego daqueles registros ´sombras´ e depois eu começo a excluir os registros, chega uma determinada hora que acontece o seguinte erro : Invalid Parameter
na instrução Sql , eu conferir o comando dado para o TQuery e esta correto , abaixo segue o comando !!
Try
Dm.StartTransaction;
While Query1.eof = false do
begin
Sql:=´Delete from tabela where codigo=´;
Sql:=Sql+IntToStr(Query1.FieldByName(´Codigo´).AsInteger);
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add(Sql);
Query2.ExecSql;
Query1.Next;
end;
Dm.Commit;
Apllication.messagebox(´Operação efetuada com
Sucesso !!´,´Atenção´,0+32);
Except On E: Exception
begin
ShowMessage(E.Message);
Dm.Rollback;
end;
end;
Também estou enfrentando o mesmo problema e já detectei que o ´Invalid Parameter´ ocorre sempre que o arquivo Pdoxusrs.lck atinge 25 mb e isso ocorre ligeiro. Ainda não achei solução p/ que ele não cresça assim.
Flávio.
GOSTEI 0
Total Sistemas
10/03/2003
Tenho um sistema bem antigo que preciso atualizá-lo, e estou com o mesmo problema, alguém descobriu alguma solução?
GOSTEI 0