AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler mit der Funktion "Lookup"

Fehler mit der Funktion "Lookup"

Ein Thema von barnti · begonnen am 20. Nov 2003 · letzter Beitrag vom 20. Nov 2003
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 12:21
Hallo Alle,

ich habe wieder einmal ein Problem mit der Funktion "Lookup". Ich möchte ermittelt, ob ein Wert schon in der Tabelle Unterpartie vorhanden ist.

Die QueryUnterpartie_ID setzt das folgende Statement ab:
SQL-Code:
Select *
from Unterpartie
In der Funktion "UPartienummerExistiert" habe ich mal eine Whileschleife eingebaut, die mir alle vorhandenen Werte in "Ergebnis" anzeigt.

Im Moment sind zwei Werte in der Tabelle vorhanden:
1,
2

Diese werden auch korrekt in "Ergebnis" angezeigt.

Delphi-Quellcode:
function TDMUnterpartie.UPartieNummerExistiert(nummer: String): boolean;
var V: Variant;
    Ergebnis: String;
begin
  QueryUnterpartie_ID.Open;
  while not QueryUnterpartie_ID.Eof do
  begin
    Ergebnis:= Ergebnis + char(13)+ QueryUnterpartie_ID.
               FieldByName('Unterpartie_ID').AsString;
    QueryUnterpartie_ID.Next;
  end;
  showmessage(Ergebnis);
                                  //Spalte //Wert //Rückgabewert
  V := QueryUnterpartie_ID.Lookup('Unterpartie_ID', nummer, 'Unterpartie_ID');
  result:= not(VarType(V) in [varNull]);
  QueryUnterpartie_ID.Close;
end;
Das Problem: Die Funktion liefert für den Wert "1" false zurück, obwohl der Wert bereits in der Tabelle vorhanden ist.

Was mache ich falsch?

Gruß,

Barnti
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 13:01
Hi,

vorab noch Fragen:

1. Welche Klasse verbirgt sich hinter QueryUnterpartie_ID?

2. Sind die Datenfelder Unterpartie_ID mit genau der gleichen Anzahl Zeichen gefüllt wie deine Variable Nummer (Leerzeiche?)

Sonnst kenne ich keine Probleme mit Lookup.

Gruß oki
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 13:04
Hi, ich sehe in meinem Browser schon wieder mal den Edit-Button nicht.

Eigentlich verwende ich immer Locate. Da hatte ich nie ein Problem.

Gruß oki
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 13:09
Hi oki,

QueryUnterpartie ist vom Typ TQuery. Die Werte stimmen überein:

In Nummer wird ein String mit '1' übergeben. Die Datenfelder dder Tabelle enthalten ebenfalls diesen Wert...?!

Ich bin absolut ratlos!

Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 14:00
Hallo,

Gefahr erkannt, Gefahr gebannt:

Habe mir einen Fehler eingebaut - Klammern vergessen:
Delphi-Quellcode:
...
result:= not VarType(V) in [varNull];
...
muss heißen:

Delphi-Quellcode:
...
result:= not (VarType(V) in [varNull]);
...
Ansonsten steht im result immer false! Tja, wen das interessiert...!

Trotzdem Danke!

Gruß,

Barnti

P.S.: Kann hier jemand mal die Erklärung posten, wie der Ausdruck falsch ausgewertet wird, sprich ohne die Klammern?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 14:46
Hi,

ja, so simpel ist es manchmal.

Die Erklärung für dein Result und Klammern ist folgende:

bei ersterem wird auf auf VarType(V) die Negation durchgeführt und dann erst geprüft ob dieses Resultat in VarNull enthalten ist.

bei der zweiten Variante wird erst geprüft ob VarType(V) in VarNull ist und dann negiert.

Gru0 oki
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Fehler mit der Funktion "Lookup"

  Alt 20. Nov 2003, 14:57
Hi oki,

danke für Dein Interesse.

Gruß,

Barnti
  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 14:27 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