Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

Delphi and MS Access

  • Denniswolt

    Ik ben bezig een applicatie te bouwen die een tekstbestand vol met gegevens in een MS Access database moet gaan inserten. In het tekstbestandje staan insert regels, maar access kan schijnbaar niet meer dan 1 regel tegelijk aan. Vandaar dat ik een loopje gebouwd heb, om zo regel voor regel te inserten, probleem is nu alleen dat het ontzettend traag gaat. Helaas moet ik voor Access kiezen en niet voor een andere database.

    Misschien heeft iemand een idee waarom het inserten zo traag gaat.

    Er wordt hieronder op button 4 geklikt en dan zou het inserten moeten gaan beginnen.

    procedure TForm1.Button4Click(Sender: TObject);

    var

    f:textfile;

    s:string;

    p:integer;

    t :integer;

    t1:integer;

    t2:integer;

    begin

    t1 := 0;

    t2 := 0;

    assignfile(f,'perltemp.txt');

    reset(f);

    while not (eof(f)) do begin

    p :=round(filepos(f)/filesize(f)*100);

    if p= 0 then if t1 = 0 then t1 := gettickcount ;

    if p= 10 then if t2 = 0 then t2 := gettickcount ;

    t:= t2-t1;

    setstatus('totaalverwachte tijd:'+INTTOstr(t div 100) + ‘sec’);

    readln(f,s);

    testje.CommandText := s;

    testje.Execute;

    progressbar1.Position := p;

    application.ProcessMessages;

    end;

    end;

  • Jeroen

    Volgens mij kun het beste via ADO een tabel openen en daar de records aan toevoegen.

    Het lijkt alsof je nu per regel een query uitvoert en dat is volgens mij niet zo nodig.

  • Pascal Huybers

    Als je niets aan de inhoud van het bestand wilt wijzigen is waarschijnlijk de snelste methode een macro in Access schrijven die een bestand importeert (m.b.v de functie DoCmd.TransferText)

    Het zou mogelijk moeten zijn om deze macro vanuit een Delphi applicatie aan te roepen met parameter (b.v. de filenaam), heb ik alleen zelf nog geen ervaring mee.

    Jeroen schreef:

    >

    > Volgens mij kun het beste via ADO een tabel openen en daar de

    > records aan toevoegen.

    > Het lijkt alsof je nu per regel een query uitvoert en dat is

    > volgens mij niet zo nodig.