AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensatz suchen, mit SQL Integrität prüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz suchen, mit SQL Integrität prüfen

Ein Thema von ils566 · begonnen am 22. Apr 2006 · letzter Beitrag vom 23. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Datensatz suchen, mit SQL Integrität prüfen

  Alt 23. Apr 2006, 19:48
Zitat von Jelly:
...Mir brauchst Du das nicht sagen. Aber so "laienhaft" die Frage vom Threadersteller gestellt war (nicht bös gemeint), wollt ich nur darauf hinweisen, dass deine Methode nicht zwangsläufig in jedem Fall passt.
Die Problematik ist alles andere als laienhaft ! Allerdings mit sehr einfachen Mitteln zu bewältigen. Die Methode paßt schon, es sein denn es werden keinerlei Regeln betreffend Datenintegrität eingehalten, e.g. nicht eindeutige IDs. Siehe hier :

Zitat von Jelly:
Deine Frage hat nix mit Integritätsprüfung zu tun... Aber um einen Datensatz auf Existenz zu prüfen, mach ich immer so:

select count(id) as N from Tabelle where id = 123 Steht nachher in N = 0, so gibts den Datensatz net.

Alterativ kannst Du natürlich auch.. können viel zu viele Datensätze übermittelt werden, was ja für die reine Existenzfrage irrelevant ist... Deshalb ist erstere Abfrage auf jeden Fall vorzuziehen.
Mit meinem Parameter :vorhanden mache ich ja noch einiges mehr. Z.B. lasse ich die DB entscheiden, ob ein Insert oder Update gemacht wird. Bei -1 Insert usw. Ich kann mir einzelne Felder rauspicken und direkt beim Insert vorbesetzen oder noch ganz andere Dinge machen. Du wirst auch von jedem anständigen Programmierer hören, wo es nur geht, SPs zu verwenden. Das hier ist ein Paradebeispiel dafür.

Es fehlt übrigens noch eine Antwort auf diese Frage :

Zitat von Hansa:
@Jelly : erkläre mir mal wie Du folgendes löst : x Rechnungen haben eine bestimmte Artikelposition. Genau díe Art.Nr. dieses Artikels muß geändert werden. Was passiert mit den Rechnungen ? Die sollen nämlich mit der neuen Art.Nr. wieder neu gedruckt werden.
Ach ja, fehlt auch noch. Ich mache das so : die Art.Nr. wird eben geändert.
Gruß
Hansa
  Mit Zitat antworten Zitat
ils566

Registriert seit: 3. Dez 2005
28 Beiträge
 
#12

Re: Datensatz suchen, mit SQL Integrität prüfen

  Alt 23. Apr 2006, 21:11
@all

danke für die rege Beteiligung. Es freut mich, dass die Fragestellung grünlich analysiert wird und verschiedene Lösungsansätze diskutiert werden.

In meinem Fall ist die Id eineindeutig und als PRIMARY key definiert.

Was uns alle interessieren dürfte, ist die Frage ob der 'Count' auf dem Server oder dem Client läuft. Bei einem Btree+ indizierten Feld würde die Suche nach ein paar wenigen Zugriffen durchgeführt sein und höchstens die Indexdaten (für die Suche auf dem Client) über das Netzwerk transportiert werden.

Performant ist es aus meiner Sicht, wenn der SQL-Server genau ein Byte zurückgibt: 0 oder 1. Das heißt, im Idealfall läuft die Suche über den Index auf dem Server, da dort die Indexdaten i.d.R. sowieso im Cache stehen und die Suche mit "~Lichtgeschwindigkeit" erfolgt. In dem Fall würde netto nur 1 Byte (true oder false) übers Netz transportiert werden.

Somit ergeben sich 2 Fragen:
1. Wieviel Traffic löst der Count aus, wieviel die StoredProcedure?
2. Gibt es eine Möglichkeit zu messen, wieviel Traffic eine SQL-Abfrage tatsächlich auslöst?

grüße
ils
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:42 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