AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken KbmMemTable Problem, Lookup Felder bleiben leer
Thema durchsuchen
Ansicht
Themen-Optionen

KbmMemTable Problem, Lookup Felder bleiben leer

Ein Thema von BlackGuest · begonnen am 21. Jan 2016 · letzter Beitrag vom 11. Feb 2016
Antwort Antwort
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#1

KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 21. Jan 2016, 10:05
Datenbank: KbmMemTable • Version: 7.62 • Zugriff über: KbmMemTable
Ich bin dabei ein Projekt von ClientDataset auf KbmMemTable umzustellen.
Die Struktur der Datenbank habe ich von dem ClientDataset übernommen. Allerdings funktionieren meine Lookup Datenfelder nicht, sie bleiben einfach leer.

Das komische an der Sache ist, füge ich die Daten aus dem Clientdataset in die KbmMemTable ein, funktioniert alles. Die Lookupfelder werden richtig gefüllt. Speichere ich die KbmMemTable mit SaveToFile ab und lade sie wieder mit LoadFromFile, sind die Daten in den Lookupfeldern wieder weg. Also wird irgendetwas falsch geladen. Ich habe schon so ziemlich alle Kombinationen der Flags der kbmBinaryStreamFormat Struktur ausprobiert aber es funktioniert einfach nicht.

Was könnte ich übersehen?

Danke schon mal für alle Antworten.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 21. Jan 2016, 13:12
Lookupfelder werden für gewöhnlich aus einer anderen Tabelle gefüllt, da sie Nachschlagwerte enthalten.

Bei der Nutzung nur einer Tabelle kann das eigentlich nicht wirklich funktionieren.

Für die Lookup-Werte würd' ich hier eine zweite Tabelle erwarten.

Häng' doch bitte mal den Quelltext und das Formular hier an, damit man da mal reingucken kann. So abstrakt ist der (potentielle) Fehler kaum zu finden.
  Mit Zitat antworten Zitat
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#3

AW: KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 21. Jan 2016, 14:22
Danke für die Antwort.
Die Lookup Daten kommen natürlich aus einer anderen Tabelle. Geht ja gar nicht anders.

Das Projekt ist ziemlich umfangreich. Ich werde mal versuchen ob ich das Ganze mit einer einfachen Demoanwendung nachvollziehen kann. Die stelle ich dann hier rein. Wird aber erst am Montag was.

Falls zwischendurch jemand eine Idee hat, immer her damit.

Gruß
Steffen
  Mit Zitat antworten Zitat
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#4

AW: KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 25. Jan 2016, 10:23
Ich habe mal ein kleines Demoprojekt zusammengeklickt.
Tab1 ist die LookupTable. Fülle ich Tab2 mit Werten, werden die Lookupfelder sauber aus Tab1 übernommen.
Speichere ich Tab2 mit SaveToFile und Lade sie wieder zurück sind die Lookup-Felder komplett verschwunden.

Setzte ich sfSaveLookup und sfLoadLookup beim Format auf true bekomme ich bei LoadFromFile die Fehlermeldung "Opperation bei geschlosser Datenmenge nicht ausführbar.


Edit:
Bei der Demoanwendung habe ich gemerkt, dass die Felddefinition nach dem Laden komplett weg ist. Habe also an der falschen Stelle gesucht. Setze ich sfSaveDef und sfLoadDef auf false funktioniert es wie es soll.
Angehängte Dateien
Dateityp: zip Test kbmMemTable.zip (63,0 KB, 8x aufgerufen)

Geändert von BlackGuest (25. Jan 2016 um 10:38 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 25. Jan 2016, 15:16
Edit:
Bei der Demoanwendung habe ich gemerkt, dass die Felddefinition nach dem Laden komplett weg ist. Habe also an der falschen Stelle gesucht. Setze ich sfSaveDef und sfLoadDef auf false funktioniert es wie es soll.
Das ist ein Fehler, über den ich schon oft gestolpert bin. Je nach Änderung von Attributen im Objektinspektor, werden die Felddefinitionen entfernt, Indexdefinitionen bleiben erhalten.

Es empfiehlt sich die Felddefinitionen aus der DFM irgendwohin zu kopieren, damit man sie nach so einem "Unfall" einfach wieder einfügen kann und nicht komplett neu erstellen muss.
  Mit Zitat antworten Zitat
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#6

AW: KbmMemTable Problem, Lookup Felder bleiben leer

  Alt 25. Jan 2016, 20:16
Das Problem ist denke ich, dass während der Entwurfszeit durch Öffnen und Schließen der Tabelle diese ebenfalls incl. der Felddefinitionen geladen werden, wenn die Table persistent ist. Also man kann machen was man will aber so bald man active auf true setzt werden die Felddefinitionen überschrieben.

Das hat mir heute wieder alles mehrfach zerschossen.

Morgen also die kompletten Strukturen neu aufbauen aber diesmal nicht persistent sondern das Laden und Speichern mache ich im Programm selbst, so wie es vorher mit den ClientDatasets auch war.
Zwischendurch hat ein Teil wenigstens funktioniert und ich muss sagen es hat sich gelohnt auf KbmMemTable umzusteigen. Der Geschwindigkeitszuwachs ist enorm. Von dem Lehrgeld mal abgesehen.

Gruß
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:12 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