AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit MySQL Direct
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit MySQL Direct

Ein Thema von endeffects · begonnen am 21. Aug 2005 · letzter Beitrag vom 22. Aug 2005
Antwort Antwort
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Problem mit MySQL Direct

  Alt 21. Aug 2005, 21:38
Datenbank: MYSQL • Version: 4.1 • Zugriff über: 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
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Problem mit MySQL Direct

  Alt 22. Aug 2005, 00:04
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
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
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.
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#3

Re: Problem mit MySQL Direct

  Alt 22. Aug 2005, 00:13
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...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#4

Re: Problem mit MySQL Direct

  Alt 22. Aug 2005, 00:43
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:01 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