![]() |
Re: SQL ANweisung liefert leere Datenmenge
Welche Parameter?
|
Re: SQL ANweisung liefert leere Datenmenge
Zitat:
Parameter: Du sollst die Werte der Felder als Parameter in die Query einfügen DB: Ja was denn nun, Access oder Filemaker? :gruebel: Grüße, Uli |
Re: SQL ANweisung liefert leere Datenmenge
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 |
Re: SQL ANweisung liefert leere Datenmenge
Zitat:
|
Re: SQL ANweisung liefert leere Datenmenge
SQL-Code:
wenn im Feld ein NULL steht wirst Du nichts finden oder Du schreibst
CM_Sign=''
SQL-Code:
Zerflücke Deinen SQL-String und teste Stück für Stück.
CM_Sign IS NULL
Datum und Zeit sind auch immer bekannte Fehler.
SQL-Code:
Access will hier ein # vor und nach dem Datum, wenn Du es direkt zur
Geburtsdatum='24.08.1975'
Datenbank durchreichst. Eine Fehlermeldung kommt bei Deiner Schreibweise nicht, findet aber auch keinen Datensatz. Gruß Hartmuth |
Re: SQL ANweisung liefert leere Datenmenge
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. |
Re: SQL ANweisung liefert leere Datenmenge
Zitat:
|
Re: SQL ANweisung liefert leere Datenmenge
Zitat:
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
SQL-Code:
Gruss
SELECT * FROM Stammdaten WHERE CM_REC_NO= :AlteRecNo
wo |
Re: SQL ANweisung liefert leere Datenmenge
@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? |
Re: SQL ANweisung liefert leere Datenmenge
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 :wink: gruss wo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz