AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Doppelte Datensätze nicht zuslassen (Paradox)!
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelte Datensätze nicht zuslassen (Paradox)!

Ein Thema von plautzer · begonnen am 22. Jun 2004 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#1

Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 22. Jun 2004, 16:29
HI,

ich habe noch eine kleiens problem.
Bei der eingabe der ID soll er prüfen ob es die id schon gibt.
ich hatte mir gedacht das es so gehen würde:

Delphi-Quellcode:
  if e_id.Text = 'then
  begin
    MessageDlg('Eingabe erforderlich', mtError, [mbOk], 0);
    e_id.SetFocus;
  end
else ...post!
Das problem hier ist, das immer die fehlermeldung kommt, da ja immer ein eintrag drin, nämlich genau dieser!

Kann man es machen, das die fehlermeldung kommt wenn mal die gleich id drinn ist?
Oder gibts noch andere vorschläge? SQL kann ich ja in verbindung mit paradoxtabellen nicht nutzen.

Thx,

plautzer
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 22. Jun 2004, 16:36
Warum kannst du SQL nicht nutzen. Ich nutze das auch bei meinen Paradox Tabellen ??
Ansgar
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#3

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 22. Jun 2004, 18:06
hmm, keine Ahnung.
-> da muss ich mich wohl erstmal schlau machen, wie ich das integriere.

na wie würde denn das ganze mit sql aussehen?

Plautzer
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#4

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 22. Jun 2004, 18:16
Hallo,

Wenn du eine ID nehmen willst, warum läßt Du diese nicht einfach von der Paradox erstellen. Dann brauchst Du nicht nachschauen ob diese schon ist.

Ansonsten kannst Du einfach eine Abfrage schreiben. So in etwa:

SQL-Code:
Select Count(ID) From Table WHERE ID = '+e_id.Text+'

If Query1.Fields[0].asInteger > 0 Then
ShowMessage('ID bereits vergeben!')
else
Query1.post;
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#5

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 22. Jun 2004, 22:37
Wie aber deklariere ich SELECT?

Ich habe nur tables, keine queries.
In der Hilfe finde ich auch nichts.


Ausserdem:
Bei mir entsteht immerwieder eine leerer Eintrag (ausser datum ist drin),
wie lösche ich die einträge wo id='' sind?


Plautzer
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#6

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 23. Jun 2004, 00:24
hallo plautzer!

Zitat:
Bei der eingabe der ID soll er prüfen ob es die id schon gibt.
die lösung, den user eine ID vergeben zu lassen ist nicht sehr geschickt, da sind fehler schon so gut wie sicher.
lass den pc selbst einen eindeutigen schlüssenbegriff errechnen und den trag dann im BeforePost-Event des tables ins feld ID.
falls dir kein eindeutiger begriff einfallen sollte, hol dir einfach die höchste bisherige ID und inkrementiere sie um eins...

von der verwendung eines autoinc-feldes rate ich ab, es macht mehr probleme als es vorteile bringt.

mfg, stefan
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#7

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 23. Jun 2004, 13:22
Das problem bei mir ist, das die ID eine funktion bei mir hat, sie dient als nummer der (hausnummer) des Klienten, und die soll ja nicht doppelt vorkommen.
Und ich möchte die tabelle nach dieser nummer geordnet habe, da das ganze ja ein bizzl system haben soll.

Wenn ich das richtig verstanden habe, soll ich neben der ID(wohungsnr) noch eine ID, die der Computer bestimmt.

Trotzdem, muss ich überprüfen ob WHGnr. nicht doppelt ist und sie danach ordnen, damit kommt es doch dann auf selbe hinaus oda?

Wie mache ich das mit dem Select? geht das bei tables?
Ich habe bis jetzt nur in verbindung mit queries gefunden
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#8

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 23. Jun 2004, 16:16
hallo plautzer!

wennn die wohnungsNr ein eindeutiger schlüsselbegriff ist, dann kannst ihn ohne weiteres als index verwenden. nur ist das aus deinem ersten beitrag nicht hervorgegangen.

nachdem du deinem daten über eine TTable komponente erfasst, macht es wenig sinn, eine TQuery zum überprüfen dazwischenzuschalten. mach die überprüfung auf doppelte datensätze im OnBeforePost-Event - dort kommst du vorm datensatz_in_die_tabelle_schreiben ohnehin vorbei. btw bekommst du ohnehin von der BDE die meldung, dass der schlüsselbegriff doppelt verwendet würde. ok, das ist zwar keine schöne lösung, aber eine doppelerfassung wird auf diese art schon mal verhindert.

wozu willst du die datensätze noch nach der wohnungsnummer sortiert einschlichten? das macht doch überhaupt keinen sinn.
wenn ich es richtig verstanden habe, ist 'wohnungsNr' als primary key definiert - und die datensätze werden beim anzeigen ohnehin nach dem primary key gereiht. in welcher reihenfolge sie in der tabelle liegen ist doch egal, oder?

nochmal: bei tables gibts grundsätzlich kein select. (ich hab mal gelesen, dass es bei den zeos-tables sowas geben soll, aber die verwendest ja nicht)

bleib beim erfassen, editieren bei TTable, zum erstellen von abfragen & auswertungen verwende ein TQuery. infos zu den sql-befehlen findest du hier im forum jede menge, zusätzlich hast du das file 'localsql.hlp' in deinem BDE-verzeichnis ...

mfg, stefan
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#9

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 23. Jun 2004, 17:17
Wie aber stelle ich fest das dieser der eitnrag doppelt ist?

Ich hatte das so probiert:
Delphi-Quellcode:
procedure TMietverwaltung.Table1BeforePost(DataSet: TDataSet);
begin
if e_whg.Text=TABLE1['whg'] then showmessage('Doppelte ID);
end;
..funzt aber nicht wirklich.

Plautzer
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#10

Re: Doppelte Datensätze nicht zuslassen (Paradox)!

  Alt 23. Jun 2004, 20:20
sei mir bitte nicht bös, aber so wird das nichts...
ich versteh allerdings nicht, wieso du doppelte datensätze erfassen kannst.
nachdem du 'Whg' als primären & eindeutigen index definiert hast, wird der
versuch, den indexwert doppelt zu verwenden mit der fehlermeldung

'indexfehler'

quittiert und die daten nicht in die tabelle übernommen. ok, es ist nicht
grad das gelbe vom ei, aber für den anfang würds schon mal reichen.

mfg, stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:24 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