Results 1 to 6 of 6

Thread: Unable to open DBF file

  1. #1

    Unable to open DBF file

    In een klein Lazarus programma open ik de file STARTDATA.DBF als volgt:

    procedure TForm1.Button1Click(Sender: TObject);
    var Dens_SW: string;
    Dens_FW: string;
    MapJPG: string;
    Password:string;
    begin
    with Dbf1 do
    begin
    FilePathFull:=GetCurrentDir;
    TableLevel := 7;
    Tablename :='STARTDATA.DBF' ;
    Exclusive := True;
    Open;
    First;
    Dens_SW:=FieldByName('SG_SW').AsString;
    Dens_FW:=FieldByName('SG_FW').AsString;
    MapJPG:=GetCurrentDir;
    Password:=FieldByName('Wachtwoord').AsString;
    Close;
    Memo1.Lines.Add(Dens_SW);
    Memo1.Lines.Add(Dens_FW);
    Memo1.Lines.Add(MapJPG);
    Memo1.Lines.Add(Password);
    end;
    end;

    Op de ene computer onder Windows 10 werkt dit prima, op een laptop met Windows 10, krijg ik de melding 'Unable to open file C:\Brediep\STARTDATA.DBF'
    Het vreemde is als ik programmatje op de laptop als Administrator open werkt het wel, als ik het programmatje op de laptop van een USB stick open, werkt het ook!
    Wie kan me helpen met dit voor mij rare probleem.
    Alvast bedankt voor jullie reacties!

  2. #2
    Kennelijk geen lees/schrijfrechten in die map (op je laptop)?

    Bart

  3. #3
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    getcurrentdir is een tikje verdacht. De working directory kan wil varieren afhankelijk van hoe je de EXE opstart.

  4. #4
    Hallo marcov
    Is ExtractFileDir(Application.ExeName) dan een beter methode om de working directory te achterhalen?

  5. #5
    Hallo Bart,
    bedankt voor je reactie, Inderdaad lijkt het onder W10 een issue met lees/schrijfrechten te zijn. Als ik in W10 het programma'tje instel om altijd als Administrator op te starten, werkt het prima. Deze methode maar even gebruiken als work-around!

  6. #6
    Quote Originally Posted by Herman Anker View Post
    Hallo marcov
    Is ExtractFileDir(Application.ExeName) dan een beter methode om de working directory te achterhalen?
    Nee. Dat levert de locatie van je programma op.
    Daar wil je overigens zeker je dbf niet neerzetten, aangezien die locatie standaard alleen lezen is voor gewone gebruikers.
    Dus als gebruikers naar de dbf moeten kunnen schrijven gaat dat mis.

    Zie ook: http://wiki.lazarus.freepascal.org/M...guration_files en http://wiki.lazarus.freepascal.org/M...resource_files

    Bart
    Last edited by Bart B; 25-Apr-17 at 00:34. Reason: links naar wiki toegevoegd

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •