AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL ANweisung liefert leere Datenmenge

SQL ANweisung liefert leere Datenmenge

Ein Thema von Moony · begonnen am 3. Mär 2009 · letzter Beitrag vom 4. Mär 2009
Antwort Antwort
Seite 3 von 4     123 4   
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#21

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 13:26
Welche Parameter?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 13:32
Zitat von Moony:
Welche Parameter?
Sag mal, kann es sein, daß Du mit Datenbanken noch nicht viel gemacht hast? Dann würd ich sagen, schau Dir erst mal ein DB-Tutorial an.
Parameter: Du sollst die Werte der Felder als Parameter in die Query einfügen
DB: Ja was denn nun, Access oder Filemaker?

Grüße,
Uli
  Mit Zitat antworten Zitat
Bentissimo

Registriert seit: 25. Apr 2006
Ort: Friedenfels
82 Beiträge
 
Delphi 11 Alexandria
 
#23

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 13:58
Hallo zusammen,

also ich finde die Variante eines dynamischen SQL-Strings nicht schlecht. Manchmal ist die Verwendung sogar unumgänglich. Man denke z.B. nur an die Existenz von ExecuteImmediate in Oracle für genau solche Fälle.

Allerdings sind als String übergebene Datumsfelder immer zumindest verdächtig. Selbst wenn es am Ende tatsächlich mit mehreren Datenbanken klappen sollte, kann u.U. eine andere Spracheinstellung auf einem anderen DB-Server oder sogar nur eine andere Landeseinstellung des Rechners das gesamte Kartenhaus zum Einsturz bringen.

Die Fehlersuche in einem anscheinend sauber laufenden Programm, das aber in einer anderen Umgebung plötzlich und unerwartet aussteigt, kann einen buchstäblich in den Wahnsinnn treiben.

Also würde ich vorschlagen, Du nimmst Dir den Rat von ULIK zu Herzen. Falls das aber aus irgendeinem Grunde nicht möglich sein sollte, ist äußerste Sorgfalt beim Erstellen des SQL-Statements vonnöten.

Ich kenne FileMaker zwar nur dem Namen nach, aber dass es dort keine Möglichkeit geben soll, seine SQL-Statements zu testen kann ich gar nicht glauben. Ein adäquates Tool für diesen Zweck würde ich in jedem Fall auch empfehlen. Ich bin auch ziemlich sicher, dass Du damit dem Problem relativ schnell auf die Schliche kommen wirst.

Viel Glück!

Gruß,
Stephan
Stephan Schmahl
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#24

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:03
Zitat von Bentissimo:
also ich finde die Variante eines dynamischen SQL-Strings nicht schlecht. Manchmal ist die Verwendung sogar unumgänglich.
Für diesen fall aber nicht! Man kann auch dynamische SQL-Strings mit Parametern aufbauen!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#25

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:11
CM_Sign='' wenn im Feld ein NULL steht wirst Du nichts finden oder Du schreibst CM_Sign IS NULL Zerflücke Deinen SQL-String und teste Stück für Stück.
Datum und Zeit sind auch immer bekannte Fehler.
Geburtsdatum='24.08.1975' Access will hier ein # vor und nach dem Datum, wenn Du es direkt zur
Datenbank durchreichst. Eine Fehlermeldung kommt bei Deiner Schreibweise nicht, findet aber auch keinen Datensatz.

Gruß Hartmuth
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#26

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:20
Welche Datenbank das jetzt ist, ist irrelevant, wichtig ist erstmal dass es grundsätzlich funktiert. Anschließend soll es für unterschiedliche funktionieren!

Ich habe schon mehrfach mit Datenbanken gearbeitet, aber mit Parameter bzw. variablen Paramtern noch nicht.

Ich werde versuchen nach Datentyp zu erfragen und dann die richtigen Werte zu setzen. Andererseits bei einem leeren Inhalt nach NULL ebenfalls zu überprüfen.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#27

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:22
Zitat von Moony:
Welche Datenbank das jetzt ist, ist irrelevant, wichtig ist erstmal dass es grundsätzlich funktiert. Anschließend soll es für unterschiedliche funktionieren!
Viel Spaß damit das sich jedes DBMS etwas anders damit. Wenn eine Abfrage bei einer DB funktioniert heißt es nicht das sie bei einer anderen Funktioniert. Und ohne Verwendung von parametrisierten Abfragen noch viel weniger.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#28

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:24
Zitat von Moony:
SELECT COUNT(*) FROM Stammdaten WHERE CM_REC_NO='3' ....
Wenn ich Moony's ursprüngliche Frage richtig verstehe will er doch nur wissen ob sein Datensatz unverändert existiert.
Sollte das Feld CM_REC_NO ein PK sein, ist es doch sinnvoller die Be(Aus)wertung die er machen möchte in der Funktion selber durchzuführen.
Das hätte auch den Vorteil, dass sämtliche Inhalte in dem Format vorliegen die er eh schon hat und zusätzlich kann er einzelne Felder darauf untersuchen ob er sie ändern darf.

deswegen würde sich folgendes anbieten
 SELECT * FROM Stammdaten WHERE CM_REC_NO= :AlteRecNo Gruss
wo
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#29

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:29
@Bernhard:
Ich weiß dass es zwischen den DBMS Unterschiede gibt. Wie soll ich das denn deiner Menung nach parametrisieren? Ich weiß nicht wie das geht. Hatte ich aber schon erwähnt...

@Woge:
Prinziell könnte man das auch so machen. Was ist wenn ich das Indexfeld nicht kenne? Oder schlimmer es gibt kein Indexfeld?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#30

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:55
Hat die Tabelle einen PK reicht es völlig alle PK relevanten Felder abzufragen.
Hat sie keinen: Ist ein Konstruktionsfehler....

Das gilt eigentlich auch für das nichtvorhandensein eines ID-Feldes

gruss
wo
  Mit Zitat antworten Zitat
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 06:57 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