AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Feld nicht gefunden obwohl vorhanden!
Thema durchsuchen
Ansicht
Themen-Optionen

Feld nicht gefunden obwohl vorhanden!

Ein Thema von skoschke · begonnen am 10. Dez 2018 · letzter Beitrag vom 12. Dez 2018
Antwort Antwort
Seite 1 von 2  1 2      
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 12:47
Datenbank: sqlite • Version: ? • Zugriff über: FDQuery
Hallo,

bei folgendem Code (Ausschnitt) wird das Feld "zugang" beim Lesen nicht gefunden, obwohl vorher beschrieben wurde!

Delphi-Quellcode:
    FDQuery.SQL.Text := 'Select * from Settings';
    FDQuery.Open;
    if FDQuery.RecordCount = 0 then
    begin
      FDQuery.Append;
      FDQuery.Edit;
      FDQuery.FieldByName('zugang').AsString := '???'; // Beschreiben ohne Fehlermeldung
      FDQuery.Post;
    end;
    //... hier werden noch andere Felder gelesen
    // Zugang lesen
    settings.zugang := FDQuery.FieldByName('zugang').AsString; // <-- hier kommt Fehler, das Feld "zugang" wurde nicht gefunden
Ich habe keine Ahnung, wo ich suchen könnte!
Wenn ich in die DB schaue ist die Spalte zugang da und mit ??? gefüllt!

Tips?

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 13:01
Ändere den Source mal wie folgt:
Delphi-Quellcode:
    FDQuery.SQL.Text := 'Select * from Settings';
    FDQuery.Open;
    if FDQuery.RecordCount = 0 then
    begin
      FDQuery.Append;
      FDQuery.Edit;
      FDQuery.FieldByName('zugang').AsString := '???'; // Beschreiben ohne Fehlermeldung
      FDQuery.Post;
    end;
    settings.zugang := FDQuery.FieldByName('zugang').AsString;
    //... hier werden noch andere Felder gelesen
Wenn du den Fehler nicht mehr bekommst, ist der Fehler in den Bereich, wo du noch was mit mit den anderen Feldern machst.
Falls der Fehler aber immer noch da ist, kann ich spontan nicht sagen, was das sein kann.
Peter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 13:03
Vielleicht tritt der Fehler auch bei der Variable settings auf.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 13:05
Vielleicht tritt der Fehler auch bei der Variable settings auf.
War auch mein erster Gedanke. Aber dann hätte ja schon der Compiler gemeckert.
Peter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 13:07
Zitat:
War auch mein erster Gedanke. Aber dann hätte ja schon der Compiler gemeckert.
Es kommt darauf an, was hinter settings steckt.
Markus Kinzler
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 13:39
settings ist nur ein Record...

Jasocul hat recht!
Bei den Feldern, welche vorher gelesen werden, ist auch eines ala

settings.passwort := Decrypt(FDQuery.FieldByName('passwort').AsString);

wobei Decrypt nur eine einfache Entschlüsselungsroutine ist, die an dem Feld nichts tut!

Neue Variante:

Delphi-Quellcode:

settings.passwort := FDQuery.FieldByName('passwort').AsString;
settings.zugang := FDQuery.FieldByName('zugang').AsString;
//... weitere Felder lesen
settings.passwort := Decrypt(settings.passwort);
Und der Fehler ist weg

Danke für den Denkanstoß!

Ciao
Stefan

Nachtrag:
Der Code vom Anfang des Threads hat jahrelang funktioniert, erst nach einer Änderung im Programm an einer ganz anderen Stelle (Optik, die nichts mit dem DB-Handling zu tun hat!) kam der beschriebene Fehler!

Geändert von skoschke (10. Dez 2018 um 14:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 14:11
Das würde ich nicht ignorieren!

Du solltest genau prüfen, warum du diesen Fehler hattest. Wenn das Decrypt den Fehler verursacht hat, macht es auch irgendwas mit dem Feld, der Query, ... . Dann kann es beim nächsten Mal wieder zu Problemen kommen.
Oder der Fehler liegt doch noch woanders und es ist nur zufällig durch deine Änderung korrigiert worden. In dem Fall können Programmänderungen an dieser Stelle zu weiteren unvorhersehbaren Fehlern führen.

Vielleicht gibt es irgendwelche Ereignisse (z.B. OnChange), die dort etwas auslösen.
Peter
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 16:07
Hallo,
das sehe ich auch so.
Versuche lieber, den Fehler zu finden.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 10. Dez 2018, 19:24
Vielleicht kommt dein Decrypt ja nicht mit Sonderzeichen klar. Nur so als Hinweis....
Michael Kübler
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Feld nicht gefunden obwohl vorhanden!

  Alt 12. Dez 2018, 06:13
Nein, das Decrypt hat da keine Probleme!

Ich vermute der Compiler hat (scheinbar nur manchmal und warum auch immer) ein Problem den DB-Zugriff als Parameter einer Funktion weeiterzugeben:

settings.passwort := Decrypt(FDQuery.FieldByName('passwort').AsString);
Zitat:
Vielleicht gibt es irgendwelche Ereignisse (z.B. OnChange), die dort etwas auslösen.
Nein, gibt es definitiv nicht!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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