Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit MySQL Direct (https://www.delphipraxis.net/51908-problem-mit-mysql-direct.html)

endeffects 21. Aug 2005 20:38

Datenbank: MYSQL • Version: 4.1 • Zugriff über: MYSQL Direct

Problem mit MySQL Direct
 
Hallo,

ich habe heute eine MySQL 4.1 Datenbank
auf meinem lokalen Server aufgesetzt und
möchte nun dort über MySQL Direct Datensätze
hinzufügen. Das Verbinden zum Server und
das selektieren der vorhandenen Datenbanken
funktioniert ohne Probleme. Da haben mir
diverse Tutorials auch gut weitergeholfen.

Nun stecke ich allerdings fest. Meine Datenbank
besteht aus 2 Spalten, die Erste enthält
einen String, die Zweite ist ein Counter
der die Zugriffe auf diesen Datensatz zählt.

Ich möchte nun also prüfen ob der String in
der Datenbank bereits vorhanden ist, sollte
das der Fall sein soll der Counter um Eins erhöht
werden, ist dies nicht der Fall soll der String
der DB hinzugefügt werden und der Counter auf 0
gesetzt werden. Ich habe leider nur keine
Ahnung wie das geht. Kann mir dabei
vielleicht Jemand weiter helfen?

MfG

Jelly 21. Aug 2005 23:04

Re: Problem mit MySQL Direct
 
Ich kann dir nicht helfen, wie das in MySQL Direct funktioniert, aber wie du das im Prinzip anpacken kannst.

1. Mach ein Count auf deine Tabelle, ob der String schon existiert. Einfach mit
SQL-Code:
select count(*) as N from Tabelle where StringFeld='dein wert'
Ist N=0, machst du ein Insert in die Tabelle, und setzt dein StringFeld auf den gewünschten Wert.

Ist N <> 0, einfach ein
SQL-Code:
select * from Tabelle where StringFeld='dein wert'
und anschliessend ein Edit

In beiden Fällen nur noch die Zählerspalt füllen, etweder auf 0 setzen im 1. Fall, oder um 1 erhöhen im 2. Fall, und dein Record posten... Fertig.

yankee 21. Aug 2005 23:13

Re: Problem mit MySQL Direct
 
du kannst sogar noch einen schitt weitergehen und das ganze in mysql scripten:
SQL-Code:
SELECT @cnt :=COUNT(*) FROM tabelle WHERE ...
IF (@cnt =0, INSERT INTO tabelle (stringfeld,counter) VALUES ('string',0), UPDATE tabelle SET counter=counter+1 WHERE ...)
Beide Zeilen dieses querys sperat, aber in einer Verbindung ausführen. Ich hoffe die mysql-Syntax ist korrekt. Das ... bei dem WHERE musst du nat. ersetzen...

endeffects 21. Aug 2005 23:43

Re: Problem mit MySQL Direct
 
hallo =),
ich danke euch beiden für eure schnelle hilfe =),
ähnliche beispiele zur mysql syntax habe ich auch
schon wärend meiner stundenlangen suche mit google gefunden,
momentan ist das allerdings nicht das hauptproblem.
(obwohl es mir sicher später noch helfen wird)

zurzeit bin ich einfach völlig unfähig derartige
anfragen über 'mysql direct' zu stellen und
auf eine lösung in php möchte ich verzichten


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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