Fórum Problemas com Firebird. #348889
13/11/2007
0
Opa pessoal,
Todas as vezes que mando executar o meu software, ele da o seguinte erro: ´Unsusccessful execution caused by system error that does not preclude successful execution of subsequent statements. Invalid transaction Handle. (expecting explicit start transaction).
Bem, e isso ai, pessoal. Abaixo esta a sintaxe da procedure.
Outra coisa, eu devo criar um transaction por Operacao (update, etc) ou um transaction por banco?
Grato!
Todas as vezes que mando executar o meu software, ele da o seguinte erro: ´Unsusccessful execution caused by system error that does not preclude successful execution of subsequent statements. Invalid transaction Handle. (expecting explicit start transaction).
Bem, e isso ai, pessoal. Abaixo esta a sintaxe da procedure.
Outra coisa, eu devo criar um transaction por Operacao (update, etc) ou um transaction por banco?
Grato!
procedure TFPrincipal.Migrar(); var I, J: Integer; TabelaAntiga:string; arTabelas:array of string; TamArray:integer; Begin DSMigra.First; for I := 0 to DSMigra.RecordCount - 1 do Begin if TabelaAntiga <> DSMigra.FieldByName(´TB_ANTIGO´).AsString then Begin TamArray:=Length(arTabelas) + 1; setLength(arTabelas,TamArray); //Aumento o tamanho do array arTabelas[TamArray-1]:=DSMigra.FieldByName(´TB_ANTIGO´).AsString; End; TabelaAntiga:=DSMigra.FieldByName(´TB_ANTIGO´).AsString; DSMigra.Next; end; DSMigra.First; TabelaAntiga:=DSMigra.FieldByName(´TB_ANTIGO´).AsString; for I := 0 to Length(arTabelas) - 1 do begin AbreTabela(DataSetBDANTIGO,arTabelas[I]);//Tabela antiga DSMigra.Locate(´TB_ANTIGO´,arTabelas[I],[]);//Posiciona o ponteiro na tabela de dicionario AbreTabela(DataSetBDNOVO,DsMigra.FieldByName(´TB_NOVO´).AsString); while not DataSetBDANTIGO.EOF do begin DataSetBDNOVO.Insert; for j := 0 to DataSetBDANTIGO.FieldCount - 1 do begin DSMigra.Locate(´TB_ANTIGO,CA_ANTIGO´,VarArrayOf([DSMigra.FieldByName(´TB_ANTIGO´).AsString,DSMigra.FieldByName(´CA_ANTIGO´).AsString]),[]); //Fazer testes do tipo aqui //????????? DataSetBDNOVO.FieldByName(DSMigra.FieldByName(´TB_NOVO´).AsString).AsString:=DataSetBDANTIGO.FieldByName(DSMigra.FieldByName(´TB_ANTIGO´).AsString).AsString; end; DataSetBDNOVO.Post; DataSetBDANTIGO.Next; end; end; end;
Sergiofigueras
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)