MySQL w Delphi

ZE
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
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.

ZE
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
0

No dobrze a jak mam np takie coś:

Kopiuj
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...

M2
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 17 lat
  • Postów:4
0

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


Marek Cywiński
ZE
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
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.

Loloki
  • Rejestracja:prawie 19 lat
  • Ostatnio:około 12 lat
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.


Nie łam się, i tak ktoś zrobił to za ciebie
<hr style="color: #B10C0C; width: 10%; margin-left: 0" />
LUDZIE goto NIE UŻYWA SIĘ WSZĘDZIE GDZIE MOŻNA, TYLKO TAM GDZIE TRZEBA
ZE
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 lat
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.

ikari
  • Rejestracja:prawie 22 lata
  • Ostatnio:prawie 2 lata
  • Postów:381
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 ;)


(po 20 latach wpiszę tu coś mądrzejszego, myślałem)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.