Bug no delphi ou erro de codigo?

Delphi

07/11/2007

Ola,

Bem, quando rodo o seguinte codigo estou enfrentando um error do Delphi falando ´Transaction is active.´ E nada mais.

procedure TFPrincipal.DicionarioDeDados();
// Esta procedure tem como objetivo criar um arquivo de texto em aonde o migrador esta sendo executado e, em seguida,
// escrever o nome dos campos da tabela antiga e o nome da tabela, tal como tipo do campo, etc.
var
  ArquivoTexto            : TextFile;                        //Declarando var do arquivo de texto.
  CamposBDANTIGO_Temp     : TStringList;                     //Declarando a variavel que armazenara o nome dos campos, temporariamente.
  TabelasBDANTIGO_Temp    : TStringList;                     //Declarando a variavel que armazenara o nome dos campos, temporariamente.
  CamposBDNOVO_Temp       : TStringList;                     //Declarando a variavel que vai armazenar  o nome dos campos do Banco novo.
  TabelasBDNOVO_Temp      : TStringList;                     //Declarando a variavel que armazenara o nome das tabelas.

  I,J,K: Integer;                                            //Declarando o contador.
begin
  CamposBDANTIGO_Temp     := TStringList.Create;
  TabelasBDANTIGO_Temp    := TStringList.Create;

  CamposBDNOVO_Temp       := TStringList.Create;
  TabelasBDNOVO_Temp      := TStringList.Create;

  AssignFile(ArquivoTexto, ´C:\BD.txt´);
  Richlog.Lines.Add(´Arquivo do dicionario de dados criado.´);
  Rewrite(ArquivoTexto);
  DataBaseANTIGO.GetTableNames(TabelasBDANTIGO_Temp, FALSE);  // Armazenando o nome das tabelas na variavel.
  DataBaseNOVO.GetTableNames(TabelasBDNOVO_Temp, FALSE);  // Armazenando o nome das tabelas na variavel.
  for I := 0 to TabelasBDANTIGO_Temp.Count - 1 do
  Begin
    DataSetANTIGO.Active := False;
    DataSetANTIGO.SQLs.SelectSQL.Clear;
    DataSetANTIGO.SQLs.SelectSQL.Add(´SELECT FIRST 1 * FROM ´+TabelasBDANTIGO_Temp.Strings[I]);
    DataSetANTIGO.Active := True;
    DataSetANTIGO.GetFieldNames(CamposBDANTIGO_Temp);           // Armazenando o nome dos campos na variavel.

    DataSetNOVO.Active := False;
    DataSetNOVO.SQLs.SelectSQL.Clear;
    DataSetNOVO.SQLs.SelectSQL.Add(´SELECT FIRST 1 * FROM ´+TabelasBDNOVO_Temp.Strings[I]);
    DataSetNOVO.Active   := True;
    DataSetNOVO.GetFieldNames(CamposBDNOVO_Temp);
      for J := 0 to CamposBDANTIGO_Temp.Count - 1 do
        begin
          WriteLn(ArquivoTexto, TabelasBDANTIGO_Temp.Strings[I]+´;´+CamposBDANTIGO_Temp[J]+´;´+RetornaTipo(DataSetANTIGO.Fields[J].DataType)+´;´+CamposBDNOVO_Temp[J]+RetornaTipo(DataSetNOVO.Fields[J].DataType));
        end;
  end;

  Closefile(ArquivoTexto);


Usando Delphi 2007 e palheta de Componentes IBPlus.
Alguem imagina o que pode estar acontecendo?


Icarus

Icarus

Curtidas 0

Respostas

Icarus

Icarus

07/11/2007

Up =)


GOSTEI 0
Icarus

Icarus

07/11/2007

Up =)


GOSTEI 0
POSTAR