Autor Beitrag
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 29.11.07 08:37 
Guten Morgen.

Ich habe meine Handbücher durchforstet. Ich habe gegoogelt. Ich habe bei MySQL AB :: MySQL 5.1 Reference Manual :: 12.2.1 DELETE Syntax nachgelesen. Aber ich habe keine entsprechende Antwort auf mein Problem gefunden. Nach 1 Woche frage ich doch mal im Forum.

Ich will nach einer UPDATE / DELETE - Query wissen, wieviel Datensätze von der Query betroffen waren. Eine Menge Queries, geben keine Ergebnistabelle zurück. Und irgendwie muss das doch möglich sein, da eine Zahl vom Server abzufragen?
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 29.11.07 08:51 
Kannst du nicht einfach vor dem DELETE ein SELECT COUNT(*) mit der gleichen WHERE-Bedingung machen, und die Zahl in ne Variable schreiben?!

_________________
Anonymes Eckenkind
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 29.11.07 08:52 
In der native API gibt es die Funktion mysql_affected_rows()

_________________
Markus Kinzler.
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 29.11.07 09:14 
Ich muss da schon mindestens 50 Mal drüber weggelesen haben. Und jetzt hole ich mein Handbuch raus, schlage es auf und lande auch noch auf genau der Seite mit Erläuterungen zu mysql_affected_rows( ). :!: C. G. Jung würde das jetzt als klassische Synchronizität bezeichnen.

Danke.
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: Do 29.11.07 10:22 
du führst einen update/delete-befehl ja über execsql bei der query durch. Und execsql liefert eine Zahl zurück, wieviele Datensätze betroffen sind. Aber man kann das eben auch wie eine Prozedur ohne Rückgabewert aufrufen.

edit: ist davon abhängig, mit welchen zugriffskomponenten du das machst...

_________________
- Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 29.11.07 12:29 
@user profile iconAmiga-Fan: Durch Deinen Beitrag wird mir erst mal mein Denkfehler klar. Ich habe mich unklar ausgedrückt, was ich wo möchte.

Ich möchte ja schon sehr gern wissen, wie ich direkt in MySQL, also mit einer MySQL-nativen Query die Anzahl, der betroffenen Datensätze ermitteln kann. user profile iconmkinzler hat mir eine Lösung aufgezeigt. Aber ich habe es so spät in der Nacht nicht bemerkt, dass es eine PHP-native Anweisung war.

Ja, und was Delphi betrifft muss ich erst mal in die Sourcen der MySQL-Direct hineinschauen, was die so anbieten. Das wären jene Routinen, die ich mittels Delphi verwende.

Aber wie schon gesagt. Mich interessiert eine MySQL-native Lösung. Wenn es denn eine gibt.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 29.11.07 13:47 
Die von mir genannte Funktion ist eine native MySQL-API des Clients und hat nichts mit PHP zu tun.

_________________
Markus Kinzler.
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 29.11.07 19:48 
OK. mysql_affected_rows() ist MySQL-nativ. Trotz allem kann ich diese Funktion in dieser Form nur innerhalb PHP verwenden. Aber wie Frage ich das ganze mit MySQL-Syntax ab? Es muss doch eine Möglichkeit geben, oder bleibt es etwa immer die Sache des Clients?

P.S.: MySQL-Direct veröffentlicht in TMySQLClient die Methode "AffectedRows()".