AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Werte in einem Datenbankfeld prüfen?

Werte in einem Datenbankfeld prüfen?

Ein Thema von romber · begonnen am 5. Okt 2010 · letzter Beitrag vom 18. Okt 2010
Antwort Antwort
Seite 1 von 2  1 2   
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 11:56
Datenbank: MSSQL Sever • Version: 2008 • Zugriff über: ADO
Hallo!

Ich habe mit den Datenbanken bis jetzt nur sehr selten etwas gemacht und das waren auch ganz simple Sachen. Nun habe ich ein Datenbankfeld vom Typ varchar, das kommagetrennte Zahlenwerte enthält und muss beim SELECT prüfen, ob bestimmte Zahlenwerte in diesem Feld vorhanden sind. Z.B. hier das Inhalt des Feldes: 25,11,144,108,115,6,34. Ich muss prüfen, ob die Werte 144, 28 und 136 drin sind. Wie mache ich das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 11:59
Ist die DB-Struktur von Dir? Falls ja, dann ändere sie, kommaseparierte Werte in einem Feld lassen so gut wie immer auf schlechtes Design (unzureichende Normalisierung) schließen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:03
Ist es gegeben dann prüfe wie folgt
Code:
where Feld like "144,%" or Feld like "%,144,%" or Feld like "%,144"
Jetzt kannst du das erweitern, dass er auch die anderen Werte prüft
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:06
Und damit würde er auch 1144, 2144 usw. ermitteln.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:07
Und damit würde er auch 1144, 2144 usw. ermitteln.
Dann erklär mir bitte warum er das machen sollte
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:09
Brille nicht geputzt, ich hab da ein "%" gesehen, wo keins war . Nichtsdestotrotz ist das mehr als suboptimal, an seiner Stelle würde ich mit dem DB-Designer mal ein ernstes Wort reden (falls er es nicht selbst ist).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:17
Vielen Dank für die schnelle Raktionen!

...an seiner Stelle würde ich mit dem DB-Designer mal ein ernstes Wort reden (falls er es nicht selbst ist).
Doch, das bin ich...
Wie soll ich es wieder gut machen? Soll ich am besten für jede Zahlenwert eins Feld erstellen, wenn ich eine alle möglichen Zahlenwerte kenne? Denn genau das wollte ich vermeiden. Ich habe 155 Werte, für die ich dann jeweils einen Feld erstellen muss.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:17
Ich stimme dir ja zu, was das Design angeht, aber manchmal hat man da Null Einfluß drauf
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 12:20
Vielen Dank für die schnelle Raktionen!

...an seiner Stelle würde ich mit dem DB-Designer mal ein ernstes Wort reden (falls er es nicht selbst ist).
Doch, das bin ich...
Wie soll ich es wieder gut machen? Soll ich am besten für jede Zahlenwert eins Feld erstellen, wenn ich eine alle möglichen Zahlenwerte kenne? Denn genau das wollte ich vermeiden. Ich habe 155 Werte, für die ich dann jeweils einen Feld erstellen muss.
Nein, erstelle eine Zusätzliche Tabelle mit einer Parent Spalte und der Wert Spalte
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Werte in einem Datenbankfeld prüfen?

  Alt 5. Okt 2010, 13:40
Richtig, evtl. dann noch die Kombination dieser beiden Felder als UNIQUE oder gleich als PrimaryKey definieren, das sorgt für Eindeutigkeit (sofern gewünscht, ich kenne ja die Anforderung nicht).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:23 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