MySQL w Delphi

0

Mam problem z MySQL w Delphi.
Mianowicie jak mógłbym zrobić by dane które są zapisywane do tabeli były zapisywane tylko raz?
Chodzi mi o to że mam np. Edit1 i po kliknięciu na button1 zawartość Edit1.Text jest wprowadzana do jakiejś tabeli w bazie danych MySQL lecz to nie jest problemem. Problem stanowi pojedyńczy zapis czyli tak by dwa razy w bazie danych nie mogły znaleŹć się identyczne rekordy...
Jak tego dokonać?

0

Na przykład sprawdzać czy w bazie już znajduje się taki rekord?
Powinien wystarczyć prosty SELECT

Pzdr.

0

No dobrze a jak mam np takie coś:

SQLQuery := Format('INSERT INTO baza SET tresc="%s"', [Edit1.Text]);

To jak do czegoś takiego dodać SELECT tak by sprawdzało czy pozycja już istnieje i jak istnieje by nic nie robiło a jak nie by wstawiło dane do bazy?

No już 40 osób odwiedziło ten temat... Proszę o jakąś pomoc...

0

O ja też właśnie tego potrzebuj. Zna ktoś odp?

0

heh a już myślałem że ktoś mi odpowiedział :D

0

SELECT count(*) FROM baza WHERE Tresc='nowa tresc'
Oczywiście 'nowa tresc' to wartosc, ktora chcesz wrzucic do bazy. Pobierasz wynik tego zapytania i sprawdzasz czy jest > 0. Jeśli tak to znaczy, że już jest w bazie, jeśli nie to dodajesz.

Pzdr.

0

Albo pole tresc ustawiasz na unique i baza sama sprawdzi czy takie coś już nie zostało wpisane. Przy próbie ponownego dodania wypluje wyjątek/błąd zależy przez co się łączysz.

0

Ustawiłem UNIQUE lecz w związku z tym mam pytanie czy można jakoś zmienić treść wyskakującego komunikatu gdy klucz już istnieje?

0
Zeelof napisał(a)

Ustawiłem UNIQUE lecz w związku z tym mam pytanie czy można jakoś zmienić treść wyskakującego komunikatu gdy klucz już istnieje?

http://4programmers.net/Delphi/Artyku%C5%82y/Wyj%C4%85tki
i/lub
http://4programmers.net/Delphi/Kompendium/Rozdzia%C5%82_3#id-Wyj%C4%85tki

Pzdr.

0

Zamiast INSERT INTO robcie REPLACE INTO

To dziala tak:

  • jesli wartosc juz jest (MySQL patrzy na klucz glowny tabeli, np. pole ID), to ją zedytuje
  • jesli jej nie ma, doda nowy rekord

To cos pomiedzy insert, a update ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1