Fórum Duplicate database name ´Estoque´ #172987

04/08/2003

0

Olá...

Estou com um GRANDE problema. A área para backup do meu sistema parou de funcionar. Funcionava normalmente, deu o erro depois de eu ter feito algumas atualizações, mas nada tendo haver com os aliases, apenas inseri um cadastra do pedidos.

Não consigo entender o erro, eu criei uma área de backup para que, ao abrir o formulário, ele pegasse o caminho do alias, e colocasse os arquivos em uma list.

Só que começou a dar este erro:

[b:50e1133253]Duplicate database name ´Estoque´[/b:50e1133253]

Dêem uma olhada no código:

Ao abrir o formulário:

procedure TfrmBackup_Cria.FormShow(Sender: TObject);
var
vpath: string;
begin
vPath := GetAliasPath(´Estoque´);
label1.caption:=vPath + ´*.*´;
filelistbox.Items.Clear;
filelistbox.Items.Add(vPath+´*.*´);
end;


Agora o código para o GetAliasPath

function TfrmBackup_Cria.GetAliasPath( sAlias : String) : String;
var
  oDataBase : TDatabase;
  pszDir   : Pchar;
  sDir : String;
begin
  try
    oDataBase := TDatabase.Create(nil);
    With oDatabase do
    begin
      try
        pszDir := StrAlloc( 255 );
        AliasName := sAlias;
        DataBaseName := sAlias;
        Connected := true;
        DbiGetDirectory( Handle, true, pszDir );
        sDir := StrPas( pszDir );
        {$Ifdef Win32}
          Result := sDir;
        {$else}
          Result := sDir + ´\´;
        {$endif}
        Connected := false;
      except
        on E:EOutOfMemory do
          MessageDlg(´Problemas de memória ´ + E.Message, MtError,[MBOK],0);
      end;
    end;
  finally
    StrDispose( pszDir );
    oDataBase.Free;
  end;
end;


O erro dá na linha que chama a função GetAliasPath: (A primeira na ordem)

[b:50e1133253]vPath := GetAliasPath(´Estoque´);[/b:50e1133253]


Alguém já teve este problema? É só nesta parte, o resto do sistema (que se utiliza do alias) funciona normalmente.

Se alguém tiver uma solução, ou outra função para pegar o diretório de um alias, ficaria muito grato.

Abraços


Callegaro

Callegaro

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar