AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi rückmeldung von access, gibts sowas?

rückmeldung von access, gibts sowas?

Offene Frage von "oakley"
Ein Thema von oakley · begonnen am 19. Okt 2006 · letzter Beitrag vom 23. Okt 2006
Antwort Antwort
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

rückmeldung von access, gibts sowas?

  Alt 19. Okt 2006, 17:42
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hi, ich habe ein kleines (naja mittelschweres) Problem...

Ich habe eine Accessdatenbank, in die ich ein paar Datensätze per Schleife reinschreibe.

Sieht wie folgt aus:

Delphi-Quellcode:
For i := 1 to Form2.WKGRID1.RowCount-2 do
begin
Form2.ADOCommand1.CommandText := 'INSERT INTO ' + Form6.NAME.Text + ' (ID, ARTIKELNR, ARTIKELTEXT, MENGE, EPREIS, GPREIS, UVP, VERFUEGBAR, FREITEXT) VALUES (''' + InttoStr(i) + ''', ''' + Form2.WKGRID1.Cells[1,i] + ''', ''' + Form2.WKGRID1.Cells[2,i] + ''', ''' + Form2.WKGRID1.Cells[3,i] + ''', ''' + Form2.WKGRID1.Cells[4,i] + ''', ''' + Form2.WKGRID1.Cells[5,i] + ''', ''' + Form2.WKGRID1.Cells[6,i] + ''', ''' + Form2.WKGRID1.Cells[7,i] + ''', ''' + Form2.WKGRID1.Cells[8,i] + ''')';
Form2.ADOCommand1.Execute;
end;
Ich möchte nun wissen, wann Access das letzte INSERT eingefügt hat, damit danach eine andere Aktion starten kann.

Access ist ja bekanntlich nicht die schnellste DB und daher muß ich warten bis alle INSERTS geschrieben sind.

Oder hat jemand ne bessere IDee wie man das hinbekommt als auf ne Rückmeldung von Access zu warten, falls es sowas überhaupt gibt.

Gruß

Mirko
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: rückmeldung von access, gibts sowas?

  Alt 19. Okt 2006, 18:08
Hast Du Probleme oder wie kommst Du darauf dass Du warten musst?

Ich glaube das musst Du nicht - probier's einfach mal.

Und wenn Du Access für zu langsam hälst, dann nehm halt eine andere DB. Meine Erfahrung sagt mir, dass auf Access immer gerne geschimpft wird - vor allem weil Access von MS ist. Aber die die da schimpfen haben in der Regel leider gar keine Ahnung. Für große Prjekte nimmt man einfach andere Datenbanken, aber das ist Entwicklern mit Ahnung auch klar. Aber für kleine Projekte habe ich mit Access noch nie Probleme gehabt - auch nicht in Sachen Tempo.

Und falls Du doch warten musst: Gibt Execute nicht einen Boolean zurück, der Erfolg oder Mißerfolg bedeutet? Dann mach doch if ADOCommand.Execute then...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: rückmeldung von access, gibts sowas?

  Alt 19. Okt 2006, 18:20
Die Einfügegeschwindigkeit bei Access beträgt etwa 30 bis 200 Datensätze pro Sekunden (für "normale" Tabellen, AccessDB auf lokaler Platte).
Access braucht dir also keine Rückmeldung geben, da ein einzelner Datensatz schnell eingefügt ist.
Erst durch Einfügen vieler Datensätze wird die Sache träge.
Dafür gibt es eine einfache und bewährte Lösung:
einen Progressbar anzeigen, damit der Benutzer weiss, wie lange die Sache noch ungefähr dauert und nicht die Geduld verliert.

PS: bitte in deinem Beispielcode das Form2. weglassen; das kann nur Schwierigkeiten bringen
Andreas
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#4

Re: rückmeldung von access, gibts sowas?

  Alt 19. Okt 2006, 20:12
Ja ich weiß das hört sich komisch an und ich finde Access auch ok egal ob MS oder nicht.

Das Problem ist eigentlich folgendes:

Mit o.g. Schleife speichere ich ab. Dann öffne ich nachdem die Meldung kam, daß gespeichert wurde ein Form, in der ich mit in einem ListView die datensätze anzeigen lasse, die gerade gespeichert wurden. Wenn ich weniger als 2 Sekunden warte, werden die DAtensätze nicht ode rnicht vollständig angezeigt. Nach ca. 2 Sekunden ist alles alles da.

Wie kann das sein?

Gruß

Mirko
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: rückmeldung von access, gibts sowas?

  Alt 19. Okt 2006, 22:39
Zitat von oakley:
Mit o.g. Schleife speichere ich ab. Dann öffne ich nachdem die Meldung kam, daß gespeichert wurde ein Form, in der ich mit in einem ListView die datensätze anzeigen lasse, die gerade gespeichert wurden. Wenn ich weniger als 2 Sekunden warte, werden die DAtensätze nicht ode rnicht vollständig angezeigt. Nach ca. 2 Sekunden ist alles alles da.
Irgendwie kommt diese Frage auch alle paar Wochen: Access-Caching.. Kann sich jeder seine Meinung über so ein "Feature" machen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: rückmeldung von access, gibts sowas?

  Alt 23. Okt 2006, 14:46
Man darf nur eine (globale) ADO-Connection für die Anwendung benützen; dann sind Änderungen an Tabellen für andere Abfragen sofort sichtbar.
Andreas
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz