Discussion:
Tabelle abarbeiten
(zu alt für eine Antwort)
Wolfgang Fieg
2022-05-09 06:35:32 UTC
Permalink
Zunehmende Kompatibilitätsprobleme werden mich wohl zwingen, von meinem
"geliebten" PARADOX mit der Sprache ObjectPAL auf MS-Access oder eine
andere DB-Anwendung umzusteigen.

Eine Standard-Aufgabe in meinen Anwendungen ist das zeilenweise
Abarbeiten einer Tabelle, wobei dann, ggf. wenn zusätzlich bestimmte
Bedingungen erfüllt sind, bestimmte Operationen vorgenommen werden.

Der dafür in ObjectPAL standardisierte Weg ist ein sog. T-Cursor, ein
Handle, durch das eine Verbindung zu einer Tabelle hergestellt wird und
das das Abarbeiten der Tabelle ermöglicht.

In Klarsprache geht das etwa so:

Tabellenvariable einer real exitierenden Tabelle zuordnen
T-Cursor mit der Tabellenvariable verbinden und öffnen
T-Cursor, wenn erforderlich, d. h., wenn Änderungen an der Tabelle
selbst vorgenommen werden sollen, in den Editiermodus versetzen

dann:

SOLANGE das Tabellenende nicht erreicht ist

jetzt folgt das, was je Datensatz gemacht werden soll

ggf. nur, wenn bestimmte Bedingungen erfüllt sind
(WENN-DANN-SONST)

T-Cursor auf den nächsten Datensatz weitersetzen

ENDE SOLANGE

Editiermodus des T-Cursor beenden
T-Cursor schließen
Zuordnung Tabellenvariable zu physischer Tabelle aufheben

Ich habe einiges gelesen (z. B. "Keine Angst vor MS-Access" und Held,
VBA mit Access) aber keinen dieser Vorgehensweise vergleichbaren Weg
gefunden.

Lag das an mir? Kann da jemand helfen? Gibt es eine unter aktuellen
Windows-Versionen problemlos laufende DB-Anwendung, die der von mir
eingeübten Form der Programmierung vielleicht eher entspricht, als
MS-Access mit VBA?

Schon vorweg danke für jede Hilfe.

Wolfgang
HR Ernst
2022-05-09 08:02:57 UTC
Permalink
Post by Wolfgang Fieg
Zunehmende Kompatibilitätsprobleme werden mich wohl zwingen, von meinem
"geliebten" PARADOX mit der Sprache ObjectPAL auf MS-Access oder eine
andere DB-Anwendung umzusteigen.
Eine Standard-Aufgabe in meinen Anwendungen ist das zeilenweise
Abarbeiten einer Tabelle, wobei dann, ggf. wenn zusätzlich bestimmte
Bedingungen erfüllt sind, bestimmte Operationen vorgenommen werden.
Der dafür in ObjectPAL standardisierte Weg ist ein sog. T-Cursor, ein
Handle, durch das eine Verbindung zu einer Tabelle hergestellt wird und
das das Abarbeiten der Tabelle ermöglicht.
Tabellenvariable einer real exitierenden Tabelle zuordnen
T-Cursor mit der Tabellenvariable verbinden und öffnen
T-Cursor, wenn erforderlich, d. h., wenn Änderungen an der Tabelle
selbst vorgenommen werden sollen, in den Editiermodus versetzen
SOLANGE das Tabellenende nicht erreicht ist
jetzt folgt das, was je Datensatz gemacht werden soll
ggf. nur, wenn bestimmte Bedingungen erfüllt sind
(WENN-DANN-SONST)
T-Cursor auf den nächsten Datensatz weitersetzen
ENDE SOLANGE
Editiermodus des T-Cursor beenden
T-Cursor schließen
Zuordnung Tabellenvariable zu physischer Tabelle aufheben
Ich habe einiges gelesen (z. B. "Keine Angst vor MS-Access" und Held,
VBA mit Access) aber keinen dieser Vorgehensweise vergleichbaren Weg
gefunden.
Lag das an mir? Kann da jemand helfen? Gibt es eine unter aktuellen
Windows-Versionen problemlos laufende DB-Anwendung, die der von mir
eingeübten Form der Programmierung vielleicht eher entspricht, als
MS-Access mit VBA?
Schon vorweg danke für jede Hilfe.
Wolfgang
Schau vor allem mal bei Karl Donaubauer (Der ist so eine Art "Nerd" für
Access wie dieser fürchterliche Stefan Kanthak für Windows..., nur halt
nicht so ekelhaft und hochnäsig, sondern sehr lieb und ausdauernd) vorbei:
https://www.donkarl.com/
--
Gruß

HR Ernst
Winfried Sonntag
2022-05-09 16:52:37 UTC
Permalink
Post by Wolfgang Fieg
SOLANGE das Tabellenende nicht erreicht ist
jetzt folgt das, was je Datensatz gemacht werden soll
ggf. nur, wenn bestimmte Bedingungen erfüllt sind
(WENN-DANN-SONST)
T-Cursor auf den nächsten Datensatz weitersetzen
ENDE SOLANGE
In https://gmi.at/howtovba/datenbank.html hilft dir das Beispiel
sicherlich: Im folgenden Beispiel gehen wir in einer Schleife über
alle Datensätze und geben den Nachnamen aus. Auch hier solltest Du
Beispiele finden:
https://stackoverflow.com/questions/5864160/code-to-loop-through-all-records-in-ms-access
Und das Beispielkönnte auch helfen: https://www.donkarl.com?FAQ6.17
Post by Wolfgang Fieg
Ich habe einiges gelesen (z. B. "Keine Angst vor MS-Access" und Held,
VBA mit Access) aber keinen dieser Vorgehensweise vergleichbaren Weg
gefunden.
Da gibt es sicherlich sehr viel Material zum Lesen, du hast es wohl
nur nicht gefunden. Auf alle Fälle lohnt ein Blick in diese Datenbank:
https://freeaccess.de/knowhow.asp Und natürlich die Access-FAQ darf
auch nicht fehlen: http://www.donkarl.com/FAQ/FAQStart.htm
Post by Wolfgang Fieg
Lag das an mir? Kann da jemand helfen? Gibt es eine unter aktuellen
Windows-Versionen problemlos laufende DB-Anwendung, die der von mir
eingeübten Form der Programmierung vielleicht eher entspricht, als
MS-Access mit VBA?
Man kann mit Access + VBA schon sehr viel auf die Beine stellen, da
braucht man eigentlich nichts anderes dazu.

Servus
Winfried
--
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de
Ulrich Möller
2022-05-10 21:08:41 UTC
Permalink
Hallo Wolfgang,

Access ist in Prinzip ein Entwicklungswerkzeug oder, wenn du willst, ein
Werkzeugkasten, womit man Frontends für Datenbanken entwickeln kann,
u.a. für reine Access-DBs selbst, aber auch für "richtige" SQL
Serverdatenbanken. Der Zugriff erfolgt dann i.d.R. über die JET Database
Engine per ADO/DAO. In ADO kannst du dann, wie in anderen Anwendungen
auch, eine Cursortyp einstellen, das war es dann auch. Richtig mit
Cursor wird heute im Client eher nur noch selten per API programmiert,
z.B. in C/C++. Die andere Variante wäre dann noch in Stored Procedures
in SQL selber.

Die eigentliche Frage ist vielmehr, warum möchtest du immer noch mit
Cursors programmieren? Verarbeitung größerer Datenmengen macht man
eigentlich vorzugsweise direkt in SQL, optimalerweise auf/mit dem
SQL-Server selber und nicht durch sequentielle Verarbeitung auf der
Client Seite.

Gruß Ulrich

Loading...