Zeos kann Datenbank DLL nicht laden?
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos kann Datenbank DLL nicht laden?
Es ist alles in den fixes Branchen gefixt (Ich habe Zeos8.0-fixes getestet). OPM natürlich noch nicht, das dauert natürlich..
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Kann man in Zeos die sybdb DLL's ebenfalls aktualisieren?
Damit haben dann andere nicht auch noch das gleiche Problem.
Damit haben dann andere nicht auch noch das gleiche Problem.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos kann Datenbank DLL nicht laden?
Das eine hat nur bedingt mit dem Anderen zu tun. Die DLL ist keine stabile Version.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
"Stabil" ist ohnehin relativ gesehen.
Immerhin hat die neuere DLL den von Zeos erzeugten Speicherleck gezeigt, die alte DLL hat das einfach ignoriert und mit einem Speicherleck irgendwie funktioniert.
Zeos V8 ist derzeit auch "Stabil", funktioniert leider dennoch (noch) nicht so wie ich es brauche.
Immerhin hat die neuere DLL den von Zeos erzeugten Speicherleck gezeigt, die alte DLL hat das einfach ignoriert und mit einem Speicherleck irgendwie funktioniert.
Zeos V8 ist derzeit auch "Stabil", funktioniert leider dennoch (noch) nicht so wie ich es brauche.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos kann Datenbank DLL nicht laden?
Zwischen 7 und 8 gibt es natürlich Unterschiede und sicher auch breaking changes.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Das sind so meine Problemchen, das war zumindest noch mit SVN 8320 so:
- TDBMemo: Gelöschter Text wird nicht in der DB gelöscht
- ReadOnly Fields werden nicht in die DB geschrieben
- Berechnete Felder: Sortierung nicht möglich (Quicksort)
- Update RefreshSQL liefert kein Ergebnis
- GetTabelNames bei OleDB
Ich habe dazu auch Bugreports geschrieben, die wurden jedoch noch nicht bearbeitet, sonst hätte ich eine Mail bekommen.
- TDBMemo: Gelöschter Text wird nicht in der DB gelöscht
- ReadOnly Fields werden nicht in die DB geschrieben
- Berechnete Felder: Sortierung nicht möglich (Quicksort)
- Update RefreshSQL liefert kein Ergebnis
- GetTabelNames bei OleDB
Ich habe dazu auch Bugreports geschrieben, die wurden jedoch noch nicht bearbeitet, sonst hätte ich eine Mail bekommen.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos kann Datenbank DLL nicht laden?
Hast du einzelne Testprogramme für die Sachen ?
Weil zB. ReadOnly Fields nicht in die DB geschrieben werden, erscheint mir nur logisch.
Und berechnete Felder zu sortieren ist für eine DB nicht möglich, das muss auf einer anderen Ebene gemacht werden, also direkt im lokalen Cache.
Aber genau deswegen braucht man Beispiele. Bzw. wenn es schon welche gibt, die Links dazu.
Weil zB. ReadOnly Fields nicht in die DB geschrieben werden, erscheint mir nur logisch.
Und berechnete Felder zu sortieren ist für eine DB nicht möglich, das muss auf einer anderen Ebene gemacht werden, also direkt im lokalen Cache.
Aber genau deswegen braucht man Beispiele. Bzw. wenn es schon welche gibt, die Links dazu.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Doch, ReadOnly Felder müssen zwingend auch geschrieben werden können.
Ich habe jede Menge Status Felder, die in der Tabelle mit angezeigt werden, jedoch der Benutzer nie ändern darf. Jedes dieser Felder sind per ReadOnly geschützt. Wenn ich die schreibe, dann wird ReadOnly auf False gesetzt, Wert gesetzt und wieder auf True.
Dieses Zeos Problem konnte ich selbst lösen:
Leider ist das Verständnis der Zeos Entwickler noch nicht so ganz klar was der Anwender so alles braucht.
Wenn man wenigstens in der TZConnecten ein Parameter setzen könnte, damit das wieder geht.
Nein, ich habe kein extra Testprogramm, ich hatte das in meine "große" EXE rein gemacht und viele Dinge habe ich selbst auch nicht bemerkt sondern erst andere User.
Die Berechnete Felder konnten früher mit der Zeos eigenen Quicksort Funktion lokal sortiert werden, doch von den berechneten Feldern kann die Funktion nicht mehr die richtigen Werte lesen. Es wird der im berechneten Feld deklarierten Datentyp nicht beachtet und der Wert einfach nur irgendwie als Pointer gelesen. Soweit hatte ich das raus gefunden, jedoch im Nirwana der Zeiger konnte ich den Fehler doch nicht finden, da muss ein echter Zeos Experte ran.
Ich habe jede Menge Status Felder, die in der Tabelle mit angezeigt werden, jedoch der Benutzer nie ändern darf. Jedes dieser Felder sind per ReadOnly geschützt. Wenn ich die schreibe, dann wird ReadOnly auf False gesetzt, Wert gesetzt und wieder auf True.
Dieses Zeos Problem konnte ich selbst lösen:
Code: Alles auswählen
procedure TZGenerateSQLCachedResolver.FillInsertColumnsPairList(NewRowAccessor: TZRowAccessor);
: : :
if (Tmp = '') or (* Metadata.IsReadOnly(I) or *) not Metadata.IsWritable(I) or
Wenn man wenigstens in der TZConnecten ein Parameter setzen könnte, damit das wieder geht.
Nein, ich habe kein extra Testprogramm, ich hatte das in meine "große" EXE rein gemacht und viele Dinge habe ich selbst auch nicht bemerkt sondern erst andere User.
Die Berechnete Felder konnten früher mit der Zeos eigenen Quicksort Funktion lokal sortiert werden, doch von den berechneten Feldern kann die Funktion nicht mehr die richtigen Werte lesen. Es wird der im berechneten Feld deklarierten Datentyp nicht beachtet und der Wert einfach nur irgendwie als Pointer gelesen. Soweit hatte ich das raus gefunden, jedoch im Nirwana der Zeiger konnte ich den Fehler doch nicht finden, da muss ein echter Zeos Experte ran.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeos kann Datenbank DLL nicht laden?
Nur zum Verständnis. Man hat eine Datenbank Schicht = Datenbank, eine Schicht für die Abfrage und Transport, wo auch der Zwischenspeicher liegt = SqlDb oder Zeos, die Schicht die die Daten verarbeitet bzw. aufbereitet = Dataset, Fields das ist Lazarus und die GUI = interagiert mit dem Benutzer ist auch Lazarus.
Beispiel
Wenn du ein ReadOnly Feld machst, wo ist es ReadOnly? Laut deiner Beschreibung jetzt ist das ReadOnly nur in den letzten beiden Schichten, also GUI und Dataset. Dann setz es dort durch und hänge es nicht SqlDb oder Zeos um, weil in der DB und in den Puffern willst du ja die Felder änderbar haben. Daher ist das aus der Sicht der DB und somit auch Zeos eine ganz normale Spalte.
Machst du die Trennung nicht, wirst das auch keinen Entwickler hinter den Ofen hervorholen, weil hier ist dein GUI und Business Logik Part verantwortlich und nicht ein Hilfskonstrukt an einer falschen Stelle.
Auch bei Sortierungen von berechneten Feldern, bist du genaugenommen schon wieder im Business Logik Bereich, weil die Daten wurden vom Server und Zeos (SqlDb) abgeholt und übergeben, das du jetzt ein Feld hinzugefügst ist schön, aber für die gelieferten Daten nicht mehr relevant. Eine Änderung der Sortierung ist jetzt in der Business Logik vorzunehmen oder du bringst es auf den Server als berechnetes Feld. Dann musst du dich aber Daum kümmern, falls das nicht RO ist, das geänderte Daten zerlegt und auf die richtigen Felder gebucht wird.
Beispiel
Wenn du ein ReadOnly Feld machst, wo ist es ReadOnly? Laut deiner Beschreibung jetzt ist das ReadOnly nur in den letzten beiden Schichten, also GUI und Dataset. Dann setz es dort durch und hänge es nicht SqlDb oder Zeos um, weil in der DB und in den Puffern willst du ja die Felder änderbar haben. Daher ist das aus der Sicht der DB und somit auch Zeos eine ganz normale Spalte.
Machst du die Trennung nicht, wirst das auch keinen Entwickler hinter den Ofen hervorholen, weil hier ist dein GUI und Business Logik Part verantwortlich und nicht ein Hilfskonstrukt an einer falschen Stelle.
Auch bei Sortierungen von berechneten Feldern, bist du genaugenommen schon wieder im Business Logik Bereich, weil die Daten wurden vom Server und Zeos (SqlDb) abgeholt und übergeben, das du jetzt ein Feld hinzugefügst ist schön, aber für die gelieferten Daten nicht mehr relevant. Eine Änderung der Sortierung ist jetzt in der Business Logik vorzunehmen oder du bringst es auf den Server als berechnetes Feld. Dann musst du dich aber Daum kümmern, falls das nicht RO ist, das geänderte Daten zerlegt und auf die richtigen Felder gebucht wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ich habe in einer Tabelle 10 Spalten. Eine davon soll ReadOnly sein.
Nun habe ich ein TDBGrid, in der will ich zulassen dass man die 9 Felder editieren kann. Wie bringe ich es dem TDBGrid bei, ohne extra viel Code, dass dieses eine Feld ReadOnly ist?
---> genau, man macht bei der Eigenschaft von TField.ReadOnly = TRUE.
Genau dafür ist auch die Eigenschaft in TField da, um Global sagen zu können dass man von keiner einzigen Verknüpfung, weder TDBEdit, noch TDBGrid, noch sonst eine dynamische Verknüpfung, das Feld von einer Benutzereingabe beschrieben werden darf.
Wenn jetzt Zeos einfach nur für sich beschließt, dass man solche Felder nieeeemals wieder in einer DB speichern darf dann ist das schlicht weg ein Fehler, ein absoluter Denkfehler von Leuten die mit gewalt wollen dass Features in Lazarus nicht mehr nutzbar sind.
Wenn man den absoluten Sonderfall hat, dass man so ein Feld mit 100% Sicherheit niemals in eine Datenbank schreibt, dann hat der Anwender ein TZUpdateSQL einzusetzen, damit hat er dann selbst unter Kontrolle was geschrieben und was nicht geschrieben werden darf.
Aber dass Zeos jetzt einfach von sich aus mal so entscheidet dass Felder jetzt einfach so nicht in die DB geschrieben werden, das ist nicht OK.
Sorry, für alle die das zu verantworten haben und dafür auch noch gerade stehen habe ich leider kein Verständnis.
Und ich habe bereits die Codeänderung als Bugreport geschrieben, von daher braucht der Zeos Entwickler das auch nur übernehmen.
Zeos bietet die Möglichkeit der Sortierung der Daten nachdem die Daten vom Server abgeholt werden. Ich nutze diese Möglichkeit sehr gerne, da es viel schneller ist als wie jedes mal beim umsortieren die Daten neu vom Server zu laden.
Früher konnte Zeos die Inhalte der berechneten Felder ebenfalls korrekt berechnen. Wenn das nun nicht mehr geht ist das ein Bug.
Alternative: Zeos kann natürlich auch diese ganze Funktionen für das Sortieren im RAM auch komplett löschen. Es wäre schade, jedoch deiner Aussage nach konsequent.
Ich verstehe jetzt nicht was jetzt das RO mit der Sortierung zu tun hat, mir fehlt da jetzt der Zusammenhang, wieso sollte ein ReadOnly Feld nicht auch sortierbar sein?
Nun habe ich ein TDBGrid, in der will ich zulassen dass man die 9 Felder editieren kann. Wie bringe ich es dem TDBGrid bei, ohne extra viel Code, dass dieses eine Feld ReadOnly ist?
---> genau, man macht bei der Eigenschaft von TField.ReadOnly = TRUE.
Genau dafür ist auch die Eigenschaft in TField da, um Global sagen zu können dass man von keiner einzigen Verknüpfung, weder TDBEdit, noch TDBGrid, noch sonst eine dynamische Verknüpfung, das Feld von einer Benutzereingabe beschrieben werden darf.
Wenn jetzt Zeos einfach nur für sich beschließt, dass man solche Felder nieeeemals wieder in einer DB speichern darf dann ist das schlicht weg ein Fehler, ein absoluter Denkfehler von Leuten die mit gewalt wollen dass Features in Lazarus nicht mehr nutzbar sind.
Wenn man den absoluten Sonderfall hat, dass man so ein Feld mit 100% Sicherheit niemals in eine Datenbank schreibt, dann hat der Anwender ein TZUpdateSQL einzusetzen, damit hat er dann selbst unter Kontrolle was geschrieben und was nicht geschrieben werden darf.
Aber dass Zeos jetzt einfach von sich aus mal so entscheidet dass Felder jetzt einfach so nicht in die DB geschrieben werden, das ist nicht OK.
Sorry, für alle die das zu verantworten haben und dafür auch noch gerade stehen habe ich leider kein Verständnis.

Und ich habe bereits die Codeänderung als Bugreport geschrieben, von daher braucht der Zeos Entwickler das auch nur übernehmen.
Zeos bietet die Möglichkeit der Sortierung der Daten nachdem die Daten vom Server abgeholt werden. Ich nutze diese Möglichkeit sehr gerne, da es viel schneller ist als wie jedes mal beim umsortieren die Daten neu vom Server zu laden.
Früher konnte Zeos die Inhalte der berechneten Felder ebenfalls korrekt berechnen. Wenn das nun nicht mehr geht ist das ein Bug.
Alternative: Zeos kann natürlich auch diese ganze Funktionen für das Sortieren im RAM auch komplett löschen. Es wäre schade, jedoch deiner Aussage nach konsequent.
Ich verstehe jetzt nicht was jetzt das RO mit der Sortierung zu tun hat, mir fehlt da jetzt der Zusammenhang, wieso sollte ein ReadOnly Feld nicht auch sortierbar sein?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 294
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Zeos kann Datenbank DLL nicht laden?
Hast du schon mal versucht, nur TColumn.ReadOnly zu setzen...?Wie bringe ich es dem TDBGrid bei, ohne extra viel Code, dass dieses eine Feld ReadOnly ist?
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Wie kann man bei TColumn zur Designzeit deklarieren?
Bei TField kann man das mit Rechtsklick auf TZQuery mit "Felder bearbeiten..." ganz einfach machen. Da drin nochmals Rechtsklick und kann alle Felder laden, die DisplayWith, DisplayFormat, unsw. einstellen und die Ereignisse OnGetText verwenden. Das ganze ist innerhalb weniger Sekunden eingestellt/programmiert.
Ich nutze die Möglichkeiten die eine Datenbank so bietet komplett aus.
Bisher hat mich noch niemand davon überzeugen können warum diese ReadOnly Felder nicht auch in die Datenbank geschrieben werden sollen.
Für mich sieht das nur so aus, dass Zeos V8 versucht krampfhaft schneller zu werden, bei diesem jedoch wurde eher zu viel optimiert, was schlussendlich die Möglichkeiten die Komponente gut zu benutzen enorm einschränkt.
Wie schon vorgeschlagen:
Bei TZConnection einen Parameter einfügen UpdateReadOnlyFields: Boolean, damit kann man dem Anwender überlassen ob er diese Zeos Optimierung haben möchte oder nicht. Da sollte Zeos nicht einfach so blockieren.
Ein Traum habe ich auch noch ... dass man für einzelne Datenätze deklarieren kann ob das einzelne Feld ReadOnly ist.
Bei TField kann man das mit Rechtsklick auf TZQuery mit "Felder bearbeiten..." ganz einfach machen. Da drin nochmals Rechtsklick und kann alle Felder laden, die DisplayWith, DisplayFormat, unsw. einstellen und die Ereignisse OnGetText verwenden. Das ganze ist innerhalb weniger Sekunden eingestellt/programmiert.
Ich nutze die Möglichkeiten die eine Datenbank so bietet komplett aus.
Bisher hat mich noch niemand davon überzeugen können warum diese ReadOnly Felder nicht auch in die Datenbank geschrieben werden sollen.
Für mich sieht das nur so aus, dass Zeos V8 versucht krampfhaft schneller zu werden, bei diesem jedoch wurde eher zu viel optimiert, was schlussendlich die Möglichkeiten die Komponente gut zu benutzen enorm einschränkt.
Wie schon vorgeschlagen:
Bei TZConnection einen Parameter einfügen UpdateReadOnlyFields: Boolean, damit kann man dem Anwender überlassen ob er diese Zeos Optimierung haben möchte oder nicht. Da sollte Zeos nicht einfach so blockieren.
Ein Traum habe ich auch noch ... dass man für einzelne Datenätze deklarieren kann ob das einzelne Feld ReadOnly ist.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1154
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Zeos kann Datenbank DLL nicht laden?
Das gleiche/ähnliche System gibt es auch auf der Ebene von TDBGrid.MmVisual hat geschrieben: Do 7. Aug 2025, 08:53 Bei TField kann man das mit Rechtsklick auf TZQuery mit "Felder bearbeiten..." ganz einfach machen. Da drin nochmals Rechtsklick und kann alle Felder laden, die DisplayWith, DisplayFormat, unsw. einstellen und die Ereignisse OnGetText verwenden. Das ganze ist innerhalb weniger Sekunden eingestellt/programmiert.
Rechtsklick auf TDBGrid und "Felder bearbeiten..."
Damit kannst du jede TColumn zur Designzeit einstellen.
Auch ReadOnly