Markus M. schrieb:> Nun kann unter Gehäuse/Lager ein Dialog zur Auswahl vom Gehäuse geöffnet> werden, siehe Screenshot.
Danke dir.
Markus M. schrieb:> Grob die Antwort: QT5 als Widegetset verwenden (nicht GTK3).
Autsch.
Frank L. schrieb:> eine QT5 Version bauen
Testen tun wir alles... Aber, ist denn GTK schon tot?
Den Compilerdurchlauf für die x86 könnte man sich sparen. Die 32-bit
wäre länger tot, töter :)
Außer für RasPi, die fährt immer noch 32-bit.
Mit dem qtchooser könnte man demnach eine Anwendung auch mit einer
anderen Version starten.
Irgendwie stehe ich gerade auf dem Schlauch. Kennt sich jemand hiermit
etwas aus?
Jaroslaw K. schrieb:> ich habe gerade versucht mit der aktuellen Version die Datenbank zu> sichern:
Warum nimmst du nicht einen Sqlite-Manager? Oder kopierst einfach die
(geschlossene) Datenbankdatei.
@Jaroslaw
Ich nutze ebenfalls diese Version, bei mir klappt der Backup. Ich
vermute da muss ein fehlerhafter Eintrag in der Tabelle "tree_typ" sein.
Kannst Du einmal ein Backup ohne die Tabelle "tree_typ" ausführen?
Und dann einmal nur die "tree_typ"?
Ansonsten kann EleLa ab V3.1 die Datenbank bereinigen, siehe Screenshot.
Damit werden ID-Verweise von gelöschten Datensätzen auf NULL korrigiert.
@ Mister A.
QT geht mit EleLa aktuell nicht, ich habe dafür bisher keine
Dateien/Quellen mit eingebunden. EleLa kann nur GTK, so viel ich weis.
Und Jaroslaw nutzt kein SQLite, denn damit geht dieser Dialog nicht auf.
Markus M. schrieb:> @ Mister A.> QT geht mit EleLa aktuell nicht, ich habe dafür bisher keine> Dateien/Quellen mit eingebunden. EleLa kann nur GTK, so viel ich weis.
Ahhh, OK. Dann passt ja alles.
> Und Jaroslaw nutzt kein SQLite, denn damit geht dieser Dialog nicht auf.
Stimmt, habe es spät erkannt.
Dann eben mit mysqldump oder grafisch mit phpMyAdmin.
Mister A. schrieb:> Warum nimmst du nicht einen Sqlite-Manager? Oder kopierst einfach die> (geschlossene) Datenbankdatei.
Ja, ich kann es auch direkt am Server sichern, aber ich denke dass
Markus am Feedback interessiert ist.
LG. JK
Markus M. schrieb:> Ansonsten kann EleLa ab V3.1 die Datenbank bereinigen, siehe Screenshot.> Damit werden ID-Verweise von gelöschten Datensätzen auf NULL korrigiert.
Ja, habe ich ausprobiert. EleLa meint, dass alles ok ist und es
funktioniert auch außer dem Export alles soweit ich das in so kurzer
Zeit bewerten kann.
Allerdings vermute ich, dass ich trotzdem ein mySQL Problem habe.
Der Export bricht jetzt jedes mal bei der Tabelle "foto" mit dieser
Fehlermeldung ab:
1
00:18:40 E: Cannot retrieve Resultset data (mnDBExportClick|TfrmImportExport.btnExportClick|Tbl: foto)/( $000000010005F142)
Allerdings scheitert auch mysqldump, und zwar immer in der gleichen
Zeile:
1
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `foto` at row: 4128
Ich muss mir das morgen genauer ansehen...
Vielen Dank!
LG. JK
In der INI von MySQL gibt es diverse Timeout-Parameter die man hoch
setzen kann. Wenn das Problem dennoch bestehen bleibt und es die Daten
sind und nicht ein Timeout, dann kann ich die Daten mir mal anschauen.
Jedoch der mysqldump sollte schon durchlaufen, das hat ja nichts mit
EleLa zu tun. Der Dump ist ja dafür das alles relativ "nackt" zu
sichern.
Markus M. schrieb:> Der Dump ist ja dafür das alles relativ "nackt" zu> sichern.
Das ist mir klar.
Das Backup mit mysqldump ist zuletzt am 12.05.2020 beim letzten
Versions-Wechsel noch einwandfrei gelaufen und ich habe seit damals am
Server nichts geändert. AutoUpdates sind auch keine eingerichtet.
Dass alles trotzdem auf den mySQL Server hindeutet, ist mir klar.
Alles was ich bis jetzt im Internet zum "mysqldump: Error 2013" gefunden
hat das Problem nicht behoben.
Der sqlcheck findet allerdings keine Fehler in der Tabelle, also liegt
es anscheinend nur am mysqldump:
EleLa Version hat schon sehr lange die Datenbank nicht mehr geändert,
die DB hat diese Version (Log von EleLa):
08:32:44 Database Version: V3.1.18B30
=> Datum 2018.11.30
Daher kann das vom neuen "Frontend" EleLa nicht kommen.
Erst ab EleLa V4 wird EleLa die Datenbankstruktur wieder anpassen.
Versuche einmal mit dem Tool "phpMyAdmin" oder "HeidiSQL" ein SQL Dump
zu erzeugen, vielleicht sagen diese noch einen anderen Fehler.
Jaroslaw K. schrieb:> und ich habe seit damals am Server nichts geändert.
Ich denke schon dass sich seither was geändert hat ... es gibt sicher
viel mehr Daten in der Datenbank, das ist zwar das einzige, könnte
jedoch Auswirkungen auf die Dauer der Sicherung haben -> Timeout Fehler.
Die Timeout Zeiten sind bei MySQL leider etwas "knapp" bemessen, siehe
auch hier:
Beitrag "Re: EleLa - Elektronik Lagerverwaltung V3.1"
Ich kann mir ehrlich gesagt nicht vorstellen dass ein fehlerhafter
Datensatz das ganze derart zum Abriss bringt. MySQL hat eine ordentliche
Konsistenz und kann mit derartigen Fällen gut umgehen.
Bei MariaDB bin ich mir mittlerweile nicht mehr so sicher. Das hat bei
mir enormen Schaden an den Datenbanken produziert. MySQL 8.0 (obwohl
relativ frisch) läuft wirklich sehr gut.
Jaroslaw, dein Server läuft nicht zufällig auf einem RasPi mit SDcard?
Oder in einer Sandbox wie Ampache (hieß die so?).
Oder ist es einfach nur eine instabile Wifi-Verbindung?
Jaroslaw K. schrieb:> table `foto` at row: 4128
Lösch' doch mal den einen Datensatz und schau was dann passiert.
Mister A. schrieb:> Jaroslaw, dein Server läuft nicht zufällig auf einem RasPi mit SDcard?
Raspi 4 (4GB) mit SSD, aber wie gesagt, die Datenbank scheint ok zu
sein.
Die Schwächen der SD-Karten sind mir bekannt.
> Oder in einer Sandbox wie Ampache (hieß die so?).
Nein, keine Sandbox, kein Docker.
> Oder ist es einfach nur eine instabile Wifi-Verbindung?
Nein. Gigabit-Kabel (auch wenn er es nicht ganz schafft).
Wifi und BT habe ich durch Einträge in "raspi-blacklist.conf"
deaktiviert, weil ich es nicht brauche. Die Wifi- und BT-Hardware lässt
sich leider ohne Lötstation nicht deaktivieren.
Allerdings entfällt die Netzwerkverbindung, wenn ich mysqldump direkt am
Server starte und nur auf lokalen Dateisystemen schreibe bzw. von denen
lese. Wenn er in diesem Fall Netzwerk statt Socket nimmt, dann ist
ohnehin keine echte Netzwerkschnittstelle in Verwendung.
> Lösch' doch mal den einen Datensatz und schau was dann passiert.
Darüber habe ich schon nachgedacht, allerdings sagt er, dass er beim Row
4128 aussteigt, aber er sagt sonst nichts. Hilfreicher wäre zb. der
primäre Schlüssel. Das muss ich mir zuerst noch genauer ansehen um den
Satz eindeutig zu identifizieren.
LG. JK
Mister A. schrieb:> Lösch' doch mal den einen Datensatz und schau was dann passiert.
Das ganze ist sehr eigenartig.
Ich habe jetzt die Sätze aus der Tabelle "foto" ermittelt, die seit dem
letzten Backup dazu gekommen sind (25 Fotos). Alle diese Fotos kann
EleLa ganz normal anzeigen.
LG. JK
Kannst Du mit der Backup-Funktion nur die Tabelle "Foto" sichern?
Kannst Du EleLa für den RaspberryPi auf dem Raspi starten und damit ein
Backup durchführen?
Ich habe eine Synology Discstation, da läuft MariaDB 10.3 drauf, diese
habe ich schon 7 Jahre 24/7 am laufen, ohne Probleme. Davor hatte ich
mir einen Server selbst zusammen gestellt -> nach 2 Jahre HW-Probleme
(obwohl ich dachte alle Komponenten sind in guter Qualität).
Es ist jetzt keine Werbung, nur ein Erfahrungsbericht.
Mit auf der DS läuft ein SVN Server für Quellcodeverwaltung.
Die von Mister gezeigten Probleme mit der MariaDB Datenbank kann ich
nicht bestätigen, da meine schon eine gefühlte Ewigkeit funktioniert.
Meine DS hat Server-Festplatten drin, die doppelt so teuer waren als die
Desktop-Platten, und noch kein einziger Ausfall. Das Teil hat eine ganze
Stange Geld gekostet ... nach so vielen Jahren und so wenigen Problemen
(einfache Administration) kann ich dies jedem empfehlen. Vor allem als
Firma, wenn man da 20..30 Stunden arbeitszeit spart, dann ist die DS
schon billiger als alles was man selbst zusammenstellt.
Jaroslaw K. schrieb:> Das muss ich mir zuerst noch genauer ansehen um den> Satz eindeutig zu identifizieren.
Ja ist schon doof, die Zeilennummer statt ID auszugeben
Die einzelne numerische Zeile 4128 wäre:
1
SELECT*FROM`foto`LIMIT4128,1;
zum löschen DELETE statt SELECT.
Nachtrag: oups, war zu langsam
Jaroslaw K. schrieb:> Allerdings entfällt die Netzwerkverbindung, wenn ich mysqldump direkt am> Server starte und nur auf lokalen Dateisystemen schreibe bzw. von denen> lese. Wenn er in diesem Fall Netzwerk statt Socket nimmt, dann ist> ohnehin keine echte Netzwerkschnittstelle in Verwendung.
Bitte was?
Entweder Socket oder TCP. Egal ob lokal oder per LAN. Socket sollte man
bevorzugen.
Markus M. schrieb:> Kannst Du EleLa für den RaspberryPi auf dem Raspi starten und damit ein> Backup durchführen?
Zu aufwendig.
Gehe einfach per ssh auf den Raspi und starte den mysqldump. Fertig.
Oder von deiner Arbeitsmaschine aus (mit -h ipadresse) aus, dann
bekommst du es lokal.
Mister A. schrieb:> Bitte was?
Ich meine das so:
- mysql server läuft am Raspi.
- mysqldump läuft am Raspi.
- Wo ist da eine Netzwerk-Verbindung dazwischen? (weil Du ja wg. WiFi
gefragt hast).
> Markus M. schrieb:>> Kannst Du EleLa für den RaspberryPi auf dem Raspi starten und damit ein>> Backup durchführen?> Zu aufwendig.
Muss ich mal checken.
> Gehe einfach per ssh auf den Raspi und starte den mysqldump. Fertig.
Was glaubst Du, was ich die ganze Zeit mache? :-)
Und genau das macht Probleme.
LG. JK
Jaroslaw K. schrieb:> Ich meine das so:> - mysql server läuft am Raspi.> - mysqldump läuft am Raspi.> - Wo ist da eine Netzwerk-Verbindung dazwischen? (weil Du ja wg. WiFi> gefragt hast).
Kenne deine Konfiguration nicht. Daher alles in Betracht gezogen.
Was ich noch nicht weis
- ob die Arbeitsmaschine Linux oder Windows ist?
- welchen MySQL Version läuft auf dem Server (RasPi)?
>> Gehe einfach per ssh auf den Raspi und starte den mysqldump. Fertig.> Was glaubst Du, was ich die ganze Zeit mache? :-)> Und genau das macht Probleme.
Zum Verständnis: Der lokale mysqldump, am raspi mit mysql server, hat
schon lokal das Problem, von sich - auf sich, den dump zu erstellen?
Krass!
Zeig mal bitte deine
~/my.cnf
/etc/mysql/my.cnf + mysql.conf bzw. mariadb.cnf
ggf. sind die verlinkt oder included, liegen dann ein Verzeichnis
drunter.
Markus M. schrieb:> Kannst Du mit der Backup-Funktion nur die Tabelle "Foto" sichern?
geht auch nicht. Er bricht in genau der gleichen Zeile ab.
Etwas eigenartig ist die Meldung "Lost connection to MySQL server". Der
Server ist danach aber weiterhin verfügbar (autom. Restarts habe ich
nicht eingerichtet. Wenn er stirbt, dann bleibt er auch inaktiv). Für
mich deutet das schon auf irgendein Timing-Problem hin...
Mich überrascht es nur, dass es bei einer 200MB Datenbank auftritt...
> Kannst Du EleLa für den RaspberryPi auf dem Raspi starten und damit ein> Backup durchführen?
Das werde ich mir noch ansehen.
> Ich habe eine Synology Discstation, da läuft MariaDB 10.3 drauf, diese
Das, was hier bei mir als DB-Server läuft ist "MariaDB 10.3.22".
> (einfache Administration) kann ich dies jedem empfehlen. Vor allem als> Firma, wenn man da 20..30 Stunden Arbeitszeit spart, dann ist die DS> schon billiger als alles was man selbst zusammenstellt.
Ich brauche das nur privat für mein Hobby.
Aber ich kann Deine Gedankengänge nachvollziehen. Beruflich habe ich
viel mit DB2 und SQL Server zu tun. Dort würde ich sicher keine
Datenbank am Raspi platzieren, aber privat in der Wohnung überwiegen
andere Argumente.
Ich will bei einem 24/7 System in der Wohnung keine Lüfter hören.
Das ist auch der Grund, warum bei mir der Raspi immer läuft und ein HP
ProLiant mit Tonnenweise SAS-Platten und LTO Tape-Library eine Ebene
tiefer im gleichen Rack nur bei Bedarf eingeschaltet wird.
LG. JK
Jaroslaw K. schrieb:> Etwas eigenartig ist die Meldung "Lost connection to MySQL server". Der> Server ist danach aber weiterhin verfügbar
Oh ooooh, ich ahne böses. u.U. laufen mehrere Server, die sich auf die
Füße treten.
1
sudosystemctlstopmysql
2
sudosystemctlstopmysqld
3
sudosystemctlstopmariadb
4
sudosystemctlstartmysql
5
undjetztmachmaldenmysqldump...
wenn das nicht hilft
- Bitte einen Auszug oder screenshot von der 'top'
- Welche Version ist (dir bekannt) im Einsatz, welche Version sagt
'mysql --version'
Mister A. schrieb:>> Etwas eigenartig ist die Meldung "Lost connection to MySQL server". Der>> Server ist danach aber weiterhin verfügbar> Oh ooooh, ich ahne böses. u.U. laufen mehrere Server, die sich auf die> Füße treten.> sudo systemctl stop mysql> sudo systemctl stop mysqld> sudo systemctl stop mariadb> sudo systemctl start mysql
Nein. Ich habe genau EINE installation und das ist:
1
mysql Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2
> wenn das nicht hilft> - Bitte einen Auszug oder screenshot von der 'top'
Es gibt keine weiteren Datenbank-Prozesse ausser einem einzigen
"/usr/sbin/mysqld". Und dieser gehört zu MariaDB:
1
# ps -ef|grep -i maria|grep -v grep
2
# ps -ef|grep -i mysql|grep -v grep
3
mysql 361 1 0 17:09 ? 00:00:02 /usr/sbin/mysqld
4
# dpkg -S /usr/sbin/mysqld
5
mariadb-server-core-10.3: /usr/sbin/mysqld
6
#
> - Welche Version ist (dir bekannt) im Einsatz, welche Version sagt> 'mysql --version'
Siehe oben.
Ich installiere nicht einfach alles, sondern nur das, was ich brauche.
LG. JK
Mister A. schrieb:> Sieht alles gut aus. Kein Problem, muss funktionieren :)
Das bestätigt meine Diagnose. :-)
Und trotzdem geht es nicht.
Allerdings habe ich in den Log's Meldungen gefunden, die doch auf eine
Daten-Corruption hindeuten.
Eigenartig ist nur dass der "Table Check" am Server (CHECK TABLE
`elela`.`foto` EXTENDED;) keine Probleme finden kann, beim Checksum
jedoch der gleiche Fehler kommt, wie beim mysqldump:
1
CHECKSUM TABLE `elela`.`foto`;
2
/* SQL Fehler (2013): Lost connection to MySQL server during query */
3
/* Verbindung zum Server beendet um 2020-05-19 17:41:55 */
Ich denke, es wird mir nichts anderes über bleiben, als das Backup vom
12.05. zu restoren und von dort die Tabelle "foto" zu übernehmen.
LG. JK
Merkwürdig, dass es nur die Bilder betrifft.
Anfangs dachte ich sie seien einfach nur korrupt. Header bzw tail. Dann
kam ja die Rückmeldung, sie können geöffnet werden.
Was wenn es welche mit Pixel-Tracking oder Corona included sind? :)
Wollen wir dann Markus schimpfen, warum er Bilder in die Datenbank
hineinbläst :)
Nachtrag: Die Idee ist gar nicht mal so weit hergeholt.
Vor ein paar Tagen hattest du doch SSL implementiert?
Wenn ein Tracking-Pixel die falsche Seite ansteuert... was dann? Wo
schlägt die Meldung auf? MySQL hat nirgends ein Backend um es
darzustellen.
Ja, EleLa speichert Bilder in der Datenbank, jedoch maximal bis zu 64 KB
je Bild, ist es größer wird das Bild verkleinert bis es passt, bzw.
automatisch konvertiert in JPG oder PNG je nach dem welches Format
kleiner wird.
Diese Bilder in der DB zu halten macht durchaus Sinn, denn wenn die wo
anders liegen, dann bräuchte EleLa nicht nur eine Datenbank-Verbindung
zum Server sondern auch noch eine Dateifreigabe zu den Bildern, was den
administrativen Aufwand deutlich erhöht.
Ich bin sogar am überlegen ob es nicht auch Sinn macht die Handbücher
(PDF's) mit in der Datenbank ab zu legen, so ein STM32-Reference-Manual
hat gleich mal 20MB.
Ich kenne einen EleLa-User dem seine DB ist ca. 800MB groß - und hat
damit keine Probleme.
@Jaroslaw:
Bitte lösche die Datenbank noch nicht, denn das bringt gar nichts.
Innerhalb weniger Tage hat man wieder diese Bilder drin und dann geht es
wieder nicht.
Ich versuche bei den Bildern eine spezielle Backup-Routine in EleLa zu
schreiben, die die Bilder dann einzeln von der Datenbank liest, damit
sollte das Timeout-Problem weg sein. Das mysqldump geht dann zwar immer
noch nicht, aber darauf habe ich ja keinen Einfluss.
Das "SSL" braucht es nur damit man HTTPS Internetseiten laden kann. Das
wird für die neue API von Mouser benötigt. Ansonsten braucht EleLa kein
SSL (auch nicht für die Datenbank).
(Bin Tagsüber viel draußen im Garten, nicht so viel am PC...)
Mister A. schrieb:> Merkwürdig, dass es nur die Bilder betrifft.
Sehe ich auch so.
> Anfangs dachte ich sie seien einfach nur korrupt. Header bzw tail. Dann> kam ja die Rückmeldung, sie können geöffnet werden.
Ja, das kann ich mir nicht erklären.
Vor allem warum sagt er bei der Prüfung dass alles ok ist?
Vielleicht haben die mariaDB Entwickler die Prüfung nicht ernst
genommen. Andererseits müsste ich nachlesen, was da genau geprüft wird.
> Nachtrag: Die Idee ist gar nicht mal so weit hergeholt.> Vor ein paar Tagen hattest du doch SSL implementiert?
Nein. Vor einigen Tagen hatte ich mit SSL Probleme obwohl ich nichts
verändert habe (so ähnlich wie jetzt). Und zuvor ist es ~2 Jahre lang
ohne Probleme mit SSL gelaufen.
Ich sage ja nicht, dass ich den Raspi gar nicht verändere da diverse
Updates und Fixes einfach manchmal installiert werden sollten.
Es ist nur damals wie jetzt genau dann etwas passiert, wenn ich gar
keine Updates, bzw. Änderungen vorgenommen habe.
Inzwischen habe ich die Sicherung vom 12.05. als neue Datenbank
wiederhergestellt, die betroffene Tabelle in der aktuellen Datenbank
gelöscht und durch die Version vom 12.05. aus der wiederhergestellten
Datenbank ersetzt.
Ich habe zwar um die 25 Bilder weniger, aber das ist jetzt nicht so
wichtig. Da ja EleLa auf diese Bilder ohne Probleme zugreifen konnte,
lag der Fehler vermutlich an einer anderen Stelle der Tabelle. D.h. ich
könnte die Bilder auch noch retten.
Jetzt funktioniert sowohl das Backup über EleLa als auch mysqldump
wieder.
Ich danke Euch für die Tipps!
LG. JK
Wegen:
> beim Checksum jedoch der gleiche Fehler kommt, wie beim mysqldump
Ist ja klar, denn bei beiden wird ein SELECT * FROM 'foto' ausgeführt,
und da der Server zu lahm ist um alles in das RAM zu laden, bzw. der RAM
beim RasPi einfach zu klein ist, deshalb stürzt das einfach ab.
Wenn ich jedoch die Bilder-Daten einzeln abfrage reicht der Speicher
aus, bzw. braucht nicht so viel Zeit.
Wenn unter Linux der Speicher aus geht passieren die kuriosesten Dinge,
bis hin zum "Ich kann das OS nicht mehr starten".
Jaroslaw K. schrieb:> Ich habe zwar um die 25 Bilder weniger, aber das ist jetzt nicht so> wichtig.
Nun bitte wieder das ausfühen:
Beitrag "Re: EleLa - Elektronik Lagerverwaltung V3.1"
Denn in der Datenbank gibt es noch jede Menge Verknüpfungen zu den
fehlenden 25 Bildern. Wenn man das nicht macht und man neue Bilder hinzu
fügt, dann tauchen diese plötzlich bei anderer Stelle mit auf und wenn
man dann diese dort löscht, dann ist das Bild bei einem anderen
Datensatz dann auch wieder weg.
Doch es ist wichtig ;-)
Jaroslaw K. schrieb:> Jetzt funktioniert sowohl das Backup über EleLa als auch mysqldump> wieder.> Ich danke Euch für die Tipps!
Bin mal gespannt ob es auch noch funktioniert wenn diese 25 Bilder
wieder neu in der Datenbank drin sind ...
Markus M. schrieb:> Diese Bilder in der DB zu halten macht durchaus Sinn, denn wenn die wo> anders liegen, dann bräuchte EleLa nicht nur eine Datenbank-Verbindung> zum Server sondern auch noch eine Dateifreigabe zu den Bildern, was den> administrativen Aufwand deutlich erhöht.
das hängt davon ab, was als Datenbank genutzt wird.
Im Fall des SQL Servers, den Du ja auch unterstützt, gibt es mit den
FILESTREAMS eine sehr elegante Möglichkeit. Der SQL-Server stellt Dir
selbst ein entsprechendes Share zur Verfügung und bei den Zugriffen
einen Dateinamen auf welchen Du aus dem Programm heraus zugreifen
kannst. Allerdings wenn Du auf Progress-Anzeigen beim Transfer großer
Dateien verzichtest, dann musst Du nicht mal diese Informationen haben.
Dort hat das den Vorteil, dass die Dateien dann zwar nicht in der
Datenbank sondern in einem FILESTREAM Folder liegen, aber der SQL Server
kümmert sich selbst auch um diesen Folder im Falle eines Backups bzw.
Restore wodurch die Konsistenz dieses Folders und der Datenbank
sichergestellt ist.
Ich könnte Dir dazu Beispielcode liefern, allerdings nur in C#.
Zum Thema ob es besser ist BLOBs in der Datenbank oder außerhalb der
Datenbank zu speichern kann ich auf folgende Seite verweisen:
[[https://www.microsoft.com/en-us/research/publication/to-blob-or-not-to-blob-large-object-storage-in-a-database-or-a-filesystem/]]
Damit musste ich mich auch schon mal während der Entwicklung einer
Applikation befassen.
> Ich bin sogar am überlegen ob es nicht auch Sinn macht die Handbücher> (PDF's) mit in der Datenbank ab zu legen, so ein STM32-Reference-Manual> hat gleich mal 20MB.
Da ich in einigen Fällen mehrere Dokumente pro Eintrag brauche, trage
ich in diesen Fällen nur den Link zu einem Folder ein, der die Dokumente
enthält. Das wäre dann nicht mehr möglich.
> Ich kenne einen EleLa-User dem seine DB ist ca. 800MB groß - und hat> damit keine Probleme.
800MB ist auch nicht groß.
Ich habe es normalerweise mit Datenbanken im TB-Berech zu tun und auch
das ist im Normalfall kein Problem (am Raspi eventuell doch :-)).
> @Jaroslaw:> Bitte lösche die Datenbank noch nicht, denn das bringt gar nichts.> Innerhalb weniger Tage hat man wieder diese Bilder drin und dann geht es> wieder nicht.
Ich habe sie ja nicht sichern können, also habe ich sie nur als
File-Backup des mysql-Data-Folders abgelegt.
> Ich versuche bei den Bildern eine spezielle Backup-Routine in EleLa zu> schreiben, die die Bilder dann einzeln von der Datenbank liest, damit> sollte das Timeout-Problem weg sein. Das mysqldump geht dann zwar immer> noch nicht, aber darauf habe ich ja keinen Einfluss.
Ich bin mir nicht sicher, ob das notwendig ist. Es war anscheinend
wirklich ein Datenfehler da. Ich weiß zwar nicht woher, aber er war
anscheinend da.
LG. JK
Markus M. schrieb:> Doch es ist wichtig ;-)
Ja, Du hast Recht.
Ich habe mich falsch ausgedrückt.
Mir war es nicht so wichtig, dem EleLa schon. :-)
Er hat die Referenzen auf die fehlenden Bilder entfernt.
LG. JK
Zitat:
objects smaller than 256K are best stored in a database
Na, dann habe ich es mit den Bildern ja richtig gemacht (64KB) ;-)
Abgesehen davon, wenn man ein Backp offline auf einem Laptop mitnimmt
und unterwegs arbeiten möchte sind die Bilder mit in der SQLite Datei,
was ein Mitnehmen der Daten in den Urlaub erleichtert.
Jaroslaw K. schrieb:> Ich bin mir nicht sicher, ob das notwendig ist. Es war anscheinend> wirklich ein Datenfehler da. Ich weiß zwar nicht woher, aber er war> anscheinend da.
Wenn das wieder zum Problem werden sollte, dann ändere ich den
EleLa-Backup, so dass Bilder einzeln vom Server abgefragt werden.
Markus M. schrieb:> Na, dann habe ich es mit den Bildern ja richtig gemacht (64KB) ;-)
So sehe ich das auch. :-)
> Abgesehen davon, wenn man ein Backp offline auf einem Laptop mitnimmt> und unterwegs arbeiten möchte sind die Bilder mit in der SQLite Datei,> was ein Mitnehmen der Daten in den Urlaub erleichtert.
Das stimmt.
> Wenn das wieder zum Problem werden sollte, dann ändere ich den> EleLa-Backup, so dass Bilder einzeln vom Server abgefragt werden.
Alles klar.
LG. JK
Markus M. schrieb:> da der Server zu lahm ist um alles in das RAM zu laden, bzw. der RAM> beim RasPi einfach zu klein ist, deshalb stürzt das einfach ab.
Das sehe ich auch so.
> Wenn ich jedoch die Bilder-Daten einzeln abfrage reicht der Speicher> aus, bzw. braucht nicht so viel Zeit.
Genau.
> Wenn unter Linux der Speicher aus geht passieren die kuriosesten Dinge
Beobachtet habe so einige Server die letzten Jahre, da liefen zahlreiche
Dienste und schaffen es selten die 1GB Grenze zu durchbrechen.
Anders ist es bei Applikation, die gönnen sich gerne einen Polster.
Extrem sind die Browser, die hauen sofort ordentlich rein, besorgen sich
childs so viel wie nur geht.
> bis hin zum "Ich kann das OS nicht mehr starten".
Das ist ein Mythos.
Der Speicher (RAM) geht nie aus. Dafür sorgt das Eco-System und die
Anständigkeit der Entwickler. Alles andere fängt die swap ab. Und die
kann man nicht mit so einer Windows pagefile vergleichen.
Auch beim Diskspeicher (Storage) gibt es seit Jahrzenten eingebaute
Schutzmaßnahmen.
Ich gebe einer root-Partition dennoch nur ein "mkfs -m 0.1%" auf
8..15GB. Dabei ist noch nie was übergelaufen.
Mister A. schrieb:> Wollen wir dann Markus schimpfen, warum er Bilder in die Datenbank> hineinbläst :)
Das war natürlich nur ein Scherz. In Problemsituationen muss man
irgendwoher ein Lächeln herzaubern.
Es spricht absolut nichts dagegen, Bilder in die Datenbank abzulegen.
Und bei dieser Mini Größenordnung erst recht nicht.
Alle anderen Anlagen sollten aber auf eine /data ausgelagert werden.
Natürlich kommt dann der Punkt Dokumentenmanagement.
Markus M. schrieb:> Ich kenne einen EleLa-User dem seine DB ist ca. 800MB groß - und hat> damit keine Probleme.
Ist auch keine Größe für eine Datenbank.
Jaroslaw K. schrieb:> Ich habe sie ja nicht sichern können, also habe ich sie nur als> File-Backup des mysql-Data-Folders abgelegt.
Schade, ich hätte sie testweise an ein anderes System gehängt. Dank
Linux ist das kein Problem. Bei Raspi entsprechend an eine andere ARM
Architektur.
Jaroslaw K. schrieb:> (armv8l) using readline 5.2
^^^^^^ Hoppala, du fährst die 64-bit Armbian? Weist schon dass die
noch ganz frisch ist und erst seit Raspi4 das coming-out hat? Auch wenn
die SoC seit Jahren schon 64-bit ist.
Das könnte ein Punkt werden. Behalte das mal im Auge.
Jaroslaw K. schrieb:> mysql Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnueabihf> (armv8l) using readline 5.2
Kommando zurück, da war ich zu schnell :)
Wie macht ihr es, bei Positionen im Projekt, die entweder
- optional (als Bestückungsvariante)
- oder alternativ (Ersatz)
vorkommen?
Anbei ein Beispiel der Zusammenstellung.
Gibt es andere Möglichkeiten, Vorgänge oder kann man es so anwenden?
Ich weis nicht was nachher noch kommt und folgt (Historie, Versionen,
Revisionen, Änderungen usw.).
Mister A. schrieb:> - optional (als Bestückungsvariante)
Dafür ist das Feld "Bestückungsvariante", damit kann man diese Bauteile
mit Ein-/Ausblenden.
> - oder alternativ (Ersatz)
Als Alternative (Ersatz weil ein anderes z.B. abgekündigt wurde) kann
man derzeit nur das neue Bauteil aus der Bauteil/Lager/Gehäuse Liste
auswählen, das man zuor angelegt hatte. Alles andere macht keinen Sinn.
Ab EleLa V4 kann man bei Bauteile/Variante die Ersatz-Typen direkt
zusammen fassen und EleLa zeigt einem beim Projekt die Lagerbestände des
gewählten Bauteils sowie der Ersatz-Typen.
Dies macht vor allem bei den sogenannten "Hünerfutter" Teilen Sinn, da
die Hersteller diese regelmäßig abkündigen und man schon wieder einen
neuen (gleichen) Typ heraussuchen muss. Damit muss man dann nicht mehr
die Positionen im Projekt anpassen.
Anbei ein Screenshot, damit man es sich vielleicht besser vorstellen
kann...
Bild1: Bauteilansicht
Bild2: Projektansicht mit Auswahl der verknüpften Bauteile
Aktuell ist diese EXE noch nicht veröffentlicht.
Markus M. schrieb:> Ab EleLa V4 kann man bei Bauteile/Variante die Ersatz-Typen direkt> zusammen fassen
Wow, das sieht ja richtig gut aus. Genau die fehlende Brücke freu.
Bei Alternativpositionen sah ich bisher primär nur pingleiche Bauteile
bzw. was das Lager gerade hergibt.
Nach langem Gröbeln hab ich hier etwas an der Ablagestruktur/Schema
verändert. Um eben möglichst eine ähnliche Gruppierfunktion zu
erreichen.
Bauteil wurde zu Meta-Bauteil. Lager/Gehäuse zu Bauteil. Library zu
Pinout.
- Die Meta-Bauteile (1. Ebene) sind eigentlich nur eine Gruppierung
einer Bauteil-Serie und/oder eines Typen (Kategorie).
- Die Bauteile (2. Ebene) stellen die einzelnen Bauteile dar. Egal
welches Gehäuse/Bauform.
- Der/das Pinout hilft einen kompatiblen Ersatz zu bestimmen.
- Und die TecData runden das ganze auf und gehen ins Detail.
Damit kann man relativ gut arbeiten (Screenshots).
Etwas fällt mir noch stark ins Auge. Da die Bildschirme immer weiter in
die Breite gehen, bleibt der Quadrant rechts relativ leer. Gut, im Lab
benutze ich auch einen alten 4:3 der hauptsächlich nur als Infoterminal
dient.
- Die Bildervorschau z.B. braucht man nicht unbedingt permanent. Die
könnte man ruhig auf ein drittel schrumpfen, bekäme so kleine 2x3 3x3
4x3 Thumbnails. Wenn man sie braucht, anklicken.
- Den Projektkopf vielleicht auch (sobald die Positionsliste unten
Einträge hat) weiter schrumpfen. So auf eine Zeile, komplett einfahren,
nach rechts quetschen oder irgendwas anders. Eigentlich braucht man hier
nur einen Indikator mit Version, ob man im richtigen Projekt ist.
Nchtrag: Die Übersetzungstexte werden nicht immer geladen. Im letzten
Bild (Widerstände) sieht man den Standard. Händisch einlesen geht
natürlich.
Ein paar Tipps ...
Eigentlich hat EleLa sogar 3 Ebenen, vor der Ebene 1 gibt es noch die
0te Ebene, die man als "Grobstrukturierung" bei "Typ-F8" einstellt.
Damit kann man sehr einfach z.B. alle Supressordioden gut
zusammenfassen.
das "Meta-Bauteile" (Ebene 1) würde ich etwas feiner strukturieren, also
z.B. Bezeichnung:
"C 100nF"
Dann unter Gehäuse/Lager kommen alle Gehäuse und Typ-Variationen von den
100nF rein, die man so hat.
Damit hat man einen Überblick welche 100nF man so alles hat (z.B. für
Ersatzteil oder Neudesign).
Bei Deiner Meta-Strukturierung müsste man erst in "C-Elko", dann
"C-Kerko" und noch "C-Tantal" und darin jeweils 100nF suchen, um zu
wissen was man hat.
Bei Widerständen habe ich bei mir es so eingerichtet:
Bauteil: "R 10,0 KOhm"
Gehäuse/Lager: alle THT und SMD Typen (ich habe 5 verschiedene, auch der
in CAY16 Gehäuse ist da mit dabei)
Überlege es Dir noch das zu ändern, denn bei Kondensatoren & Widerstände
wird es viele 100 Sorten mal geben und dann wird die Gehäuse/Lager
Tabelle bald unübersichtlich.
Vorgehensweise wenn ich irgend einen Widerstand finden will, der das
Gehäuse "CAY16" hat:
Ich suche unter "Typ-F8", wähle links im Baum "Widerstand" aus, rechts
in der Checkbox-Liste die Gehäuse "CAY16" und "TC164".
Die Tabelle zeigt dann alle Bauteile und Gehäuse/Lager Variationen an,
ich muss nicht bei "Bauteile-F2" die einzelne Widerstände durchsuchen.
Ähnlich auch bei Suche eines N-Mosfets in einem bestimmten Gehäuse, das
findet sich am besten bei "Typ-F8".
Zu TecData:
EleLa kann mit "Suchen-F5" in den Datenfeldern von TecData suchen, wenn
man sich bei Zahleneingabe an Zahlen hält kann EleLa auch ein ">=" oder
"<=" suche starten.
Beispiel: Man sucht einen Transistor mit PTot >= 100 Watt
Bei der Eingabe "Voltage forward Vf [V]" mit der Eingabe "0.5-0.8" ist
das dann keine Zahl mehr und die Suche schlägt somit fehl.
Man müsste das in 2 TecData Felder schreiben "Voltage forward min Vf
[V]" und "Voltage forward max Vf [V]".
Bei Projekt, rechts neben "Menge Offen" gibt es einen Pfeil mit der man
den unteren Teil "einklappen" kann und man sieht nur noch das
Wichtigste. "Bezeichnung", "Handbuch" -> damit man da ein Link ins
Projektverzeichnis setzen kann, "Termin" / "Mengen" -> wichtig für
Herstellung und das "Bemerkung"-Feld
Wegen Übersetzungstexte: Ist das der gleiche Rechner? Wenn man die
übersetzten Texte in die Datenbank in die Translate Tabelle rein nimmt,
ist das dann auch so?
Markus M. schrieb:> 0te Ebene, die man als "Grobstrukturierung" bei "Typ-F8" einstellt
Stimmt, die habe ich eingepflegt und dann raffiniert übergangen und
ausgeklammert.
Markus M. schrieb:> Bei Deiner Meta-Strukturierung müsste man erst in "C-Elko", dann> "C-Kerko" und noch "C-Tantal" und darin jeweils 100nF suchen, um zu> wissen was man hat.
Ja, geht aber immer noch schneller bzw. übersichtlicher als 100
Einzeltypen zu haben. Jetzt habe genau einen R Widerstand und 3 C
Kondensatoren im Hauptfenster. Zum Schluß werden es höchstend 5+5. Und
es gibt ja auch noch Transistoren, MOSFETS... Da muss es pro Typ bei der
groben Gruppe bleiben.
Markus M. schrieb:> Überlege es Dir noch das zu ändern, denn bei Kondensatoren & Widerstände> wird es viele 100 Sorten mal geben und dann wird die Gehäuse/Lager> Tabelle bald unübersichtlich.
Derzeit sind verhältnismäßig wenige Bauteile (nur die welche im Projekt
benötigt werden) angelegt.
Du hast völlig Recht. Ein Problem erschlagen, zweites geschaffen bzw. im
Zulauf.
Ich bewege mich primär im ersten/zweiten Bauteile-Fenster, dort war es
mir wichtig nicht von Einzel-Bauteilen überflutet zu werden. Es war auch
mehr eine Folgeaktion auf das Scrolling. Danach wurde sehr viel gekürzt
und umstrukturiert.
Die anderen Suchmöglicheiten muss ich noch praktisch entdecken.
Markus M. schrieb:> Bei der Eingabe "Voltage forward Vf [V]" mit der Eingabe "0.5-0.8" ist> das dann keine Zahl mehr und die Suche schlägt somit fehl.
Oups, schuldig. Wurde im Gefecht übersehen.
Markus M. schrieb:> Wegen Übersetzungstexte:
Das war ein kleiner Hoppala, in der ini war der Wert von "LanguageFile="
rausgeflogen. Nicht weiter schlimm. Evtl. ist in den Settings (nach
einem Besuch dort) irgendwo noch eine Kleinigkeit unsauber, dass es als
Null zurückgeschrieben wurde. Otto Normalo dürfte es kaum auffallen.
Markus M. schrieb:> Ist das der gleiche Rechner? Wenn man die> übersetzten Texte in die Datenbank in die Translate Tabelle rein nimmt,> ist das dann auch so?
Ist auf dem Dev/Spiele/Scripting-Rechner mit der lokalen sqlite. Dort
darf alles passieren und zerbrechen.
Mit dem großen Language-Editor komme ich irgendwie gar nicht klar. Die
vielen Knöpfe, Tasten, Spalten verlangen ein extra Wochenendkurs :)
Und dann noch das Verständnisproblem, kommen die Texte aus der Datei
(ini Pfad), der neuen *.po, der Datenbank oder aus dem System ROM.
Jedenfalls liest ein Neustart/Öffnen eine andere Quelle ein, als mir
lieb ist :)
Beim Client (Arbeitsplatzrechner) mit MySQL hab ich nicht geschaut. Auf
dem läuft auch nur die Stable, keine Nightlies.
---hidden---
Ich bereite mich langsam auf die große Import-Aktion vor. Ziel ist es
natürlich so viel wie möglich aus PartDB rüber zu holen. Zur Zeit geht
es um 4295 Bauteile, 4245 EK-Konditionen, 349 Kategorien (Typen), 126
Lagerorte, 434+21 Hersteller/Lieferanten, 58 Baugruppen (Projekte), 7780
Anlagen/Datasheets/Pinbelegungen/Schematiken/Bilder, u.a. Kleinigkeiten.
Dafür würde ich ein Feld benötigen um den Fortschritt/Status abzulegen.
Ich dachte da an das "Kennz". Nur sehe ich keine Möglichkeit es zu
editieren (ohne mühsam im SQL herumzufuhrwerken).
"Artikel-Nr2" hingegen ließe sich bequem in der Datentabelle editieren.
Davon nichts in der Maske.
Und dann stolpere ich (Mauszeiger im Screenshot) auf ein totes Feld,
ohne Bezeichnung und Inhalt. Es nimmt auch keine Eingaben entgegen.
Entsteht dort was neues? Falls nein, könnte man es auf "Kennz" legen?
Jedenfalls dachte ich, final die jeweilige PartDB ID ins "Kennz"
unterzubringen, welche auch später für eine Zuordnung sorgt. Wenn es
ganz gut läuft springt noch ein toller bidirektionaler Autosync heraus.
Das "Handbuch"-Feld ist auch sehr interessant, da es eine url aufnehmen
und öffnen kann. Hätte es den Vorteil, das Bauteil gezielt im Browser
d.h. PartDB zu öffnen.
Wo ich jetzt schon eine Funktion vermisse ist das Umsetzen von
Bauteilen. Nicht Lager, sondern Bauteil zu anderes (Unter)Bauteil.
Bauteil zu Meta, umgekehrt, kreuz und quer.
Soweit die ersten Theorieansätze.
---
Mister A. schrieb:> Ja, geht aber immer noch schneller bzw. übersichtlicher als 100> Einzeltypen zu haben.
Nein, das geht nicht schneller, man hat sicher 100 Untertypen und dazu
ist "Lager/Gehäuse" nicht ausgelegt, denn man kann darin nicht so
einfach Filtern. Bei der ersten Ebene gibt es das "Schnellsuchen"
Eingabefeld, das hat 2 Funktionen, beim einfachen Tippen springt EleLa
zu dem Datensatz, bei Eingabe von "*" wird automatisch gefiltert und die
Ansicht reduziert. Die Filter-Taste nebenan aktiviert eine Filterung, so
auch bei der Typ-Vorwahl.
Damit bekommt man seine Ansicht sehr schnell hin.
Siehe Bild1.
Mister A. schrieb:> es gibt ja auch noch Transistoren, MOSFETS
Das ist ja auch kein Problem, dazu gibt es die Eingabe von "Typ". Darauf
kann man dann filtern. Ich habe bei Typ-F8 eine Hauptgruppe "Transistor"
angelegt, darunter alles was es so gibt (bzw. was ich so habe) (Siehe
Bild2).
Mister A. schrieb:> Und dann noch das Verständnisproblem, kommen die Texte aus der Datei> (ini Pfad), der neuen *.po, der Datenbank oder aus dem System ROM.> Jedenfalls liest ein Neustart/Öffnen eine andere Quelle ein, als mir> lieb ist :)
Es gibt in EleLa 2 verschiedene Sprach-Dateien, die "*.po" Datei kommt
von Lazarus, diese macht die Übersetzung aller "System-Dialog" und wird
in der INI Datei bei "LanguageFileLCL" eingetragen, wie z.B. Datei
öffnen Dialog, oder "OK" Taste.
Die andere sind die benutzerdefinierten Texte. Die Regel ist im Prinzip
relativ einfach, diese wird nacheinander abgearbeitet, man kann die
Original Übersetzungsdatei in der INI bei "LanguageFile" eintragen. Wenn
man zusätzliche eigene Übersetzungen hat kann man eine zweite Datei bei
"LanguageFile2" rein schreiben. Danach schaut EleLa in der Datenbank
nach ob in der Spalte "Current" eine Übersetzung steht. In der
Übersetzungs-Datei muss nicht der komplette Satz drin stehen, es reicht
aus wenn da nur die Zeilen drin sind, die auch tatsächlich geändert
haben. Das macht das ganze auch übersichtlicher.
Beispiel Deine Übersetzung, Siehe Bild3
Du brauchtst nur in der Translate Tabelle die Zeilen anlegen, die Spalte
"BezName" beschreibt wie die Komponente auf dem Formular heißt (Der Name
wie es in der Programmierung vergeben hatte), dann in der Spalte
"Current" nur überall den Text "Pinout" rein schreiben. Damit kann man
auf die zusätzliche Sprach Datei in der INI verzichten und alle
Arbeitsplätze im Netzwerk sehen identisch aus.
Abgesehen davon ist die Übersetzung mit diesem Dialog viel leichter, da
man Sortieren und Filtern kann.
Im Feld "Kennz" kann man rein schreiben was man mag, auch die ID aus
Part-DB. Wenn das Feld in der Eingabemaske nicht ist kann man es in der
Tabelle eingeben. In der Maske sind nur die wichtigsten und Sinnvollsten
Felder, die Tabelle hat noch deutlich mehr, damit die Maske nicht zu
groß wird.
Extra-Info für Datenbank-Experten:
Du kannst in der EleLa Datenbank in der Tabelle natürlich auch ein
zusätzliches Feld anlegen, das kennt dann EleLa nicht, aber EleLa
meckert auch nicht wenn in der Datenbank plötzlich mehr Felder drin
stehen. Dann kann man es zwar von EleLa aus nicht bearbeiten, jedoch mit
einem externen Tool die Daten einfacher synchronisieren.
Mister A. schrieb:> Das "Handbuch"-Feld ist auch sehr interessant, da es eine url aufnehmen> und öffnen kann.
Eine URL kann auch das Memo aufnehmen und mit Strg-Klick öffnen
Siehe Hilfe bei Allgemeine Infos > Memo-Feld Eingabefunktionen
Damit ist kann man ziemlich viele Links sich merken.
Mister A. schrieb:> Wo ich jetzt schon eine Funktion vermisse ist das Umsetzen von> Bauteilen. Nicht Lager, sondern Bauteil zu anderes (Unter)Bauteil.> Bauteil zu Meta, umgekehrt, Kreuz und quer.
Du meinst das Menü, siehe Bild4?
Immer wenn bei EleLa irgendwo mit der rechten Maustaste ein Menü
geöffnet werden kann wird automatisch der Mauscursor auf "Pfeil mit
Menü" geändert. (Bild5)
Ohje. Danke Markus.
Ich brauche jetzt echt Urlaub, sonst platzt die Rübe.
Nach 2 Wochen Dauerinput, kein Wunder dass man die einfachsten Sachen
nicht mehr sieht :)
EleLa V3.1.20527 ist nun als Release fertig gestellt.
Über die in EleLa implementierte Download Funktion kann diese EXE
geladen werden.
Extras-F10 -> Info -> Versionsabfrage
Falls man die automatische Versionsabfrage aktiviert hat erscheint der
Dialog automatisch nach ein paar Sekunden nachdem man EleLa aktiviert
hat.
Entweder man lädt die jeweilige EXE die man benötigt oder das
Setup-Paket.
Die Voraussetzung für die Installation ist die Datenbank mit der
minimalen Version, siehe Bild1 oder hier:
http://www.mmvisual.de/Hilfe/EleLa/Install.htm
Wie immer vor einem Update ein Backup erstellen.
----------------------------------------------------------
Der Telegram Kanal "EleLa News" der Neuigkeiten:
https://t.me/elela_news
Fragen können gerne hier oder im Chat gestellt werden:
https://t.me/mmvisual_elela
*1 nicht empfohlen
*2 vorbehaltlich und bedingt, Installationsanleitung des DB-Entwicklers
sorgfältig beachten
Die Angaben beruhen auf praktischen Test- und Erfahrungswerten.
Hallo,
habe heute nach langem zögern nun auf die V3.1.20527 geupdatet, da es
mir auch inzwischen in der Aktualisierungsabfrage angezeigt wird. Soweit
Funktioniert noch alles, leider sind bei mir alle Lieferanten
verschwunden. Bzw. nur noch vereinzelt. Vor allem bei Bauteilen wo ich
mehrere Lieferanten hatte, wird entweder gar keiner oder nur einer
angezeigt. Bug? Oder funktioniert meine Datenbank nicht mehr (MySQL)
Auf die 3.0 kann ich auch nicht mehr zurück wechseln, da dann der Fehler
kommt, dass die Datenbank nicht gelesen werden kann. Backup habe ich
zwar, aber ich denke die Daten sind noch vorhanden werden nur nicht
angezeigt?
Falscher Alarm. Habe die neue Bedienweise erst nicht ganz kapiert
-peinlich-
Bei V3.0 werden alle Teile bei Lieferanten angezeigt. Bei V3.1 nur noch
von dem Teil wo man auf Gehäuse/Lager markiert hat.
Ja, das musste ich ändern. Wenn man 5 Bauteilvarianten hat und jeweils
noch 2 Lieferanten mit 4 Preisstaffeln, dann waren 40 Einträge zu sehen
und wurde unübersichtlich.
Werden in Zukunft auch weitere Versender in der Internetabfrage
unterstützt? Bsp. TME oder Digikey. TME und Digikey bieten soweit ich
weis eine API an. Eventuell dann nicht nur die Preisabfrage integrieren,
sondern wenn es die API erlaubt (bei Digikey geht das laut Beschreibung)
könnte man direkt aus ELELA heraus bestellen. Oder zumindest den
Warenkorb füllen lassen mit den Bauteilen, welche man bestellen
möchte/in der Bestellen Liste enthalten sind.
So muss ich halt händisch die Preise raussuchen und wenn es dann ans
Bestellen geht alle Bestellnummern und Stückzahlen manuell in den
Warenkorb des jeweiligen Versenders tippen. Geht zwar aber bei vielen
Bauteilen wird es auch wieder aufwändig.
Ich muss mir das anschauen wie das funktioniert.
Aktuell bereite ich V4 vor um diese veröffentlichen zu können, daher
haben diese Lieferanten erst mal kleinere Prio für die Implementierung.
Sebastian schrieb:> So muss ich halt händisch die Preise raussuchen und wenn es dann ans> Bestellen geht alle Bestellnummern und Stückzahlen manuell in den> Warenkorb des jeweiligen Versenders tippen.
Datenabfrage ist das eine, Bestellung das andere.
Datenabfragen schützen Dustributoren mit API-Schnittstellen. Jeder kocht
da seine eigene Suppe und möchte verhindern dass mühsam
zusammengetragene Daten frei abfließen. Die Verwendung eigener
Bauteilnr. sind auch ein Grund dafür bzw. der Versuch es zu erschweren.
Es ist also immer eine individuelle unikate Sache und relativ aufwändig.
Beim Bestellvorgang hingegen zeigen sich die meisten entgegenkommend. Es
sind ja Kunden, denen bietet fast jeder die Möglichkeit zum
Upload/Einlesen einer universellen BOM im txt/csv oder anderen Formaten.
Hier gibt es ein paar Lücken, Bauteile ohne expliziter Bestellnummern
werden dann durch die eigene Datenbank gejagt um möglichst Treffer zu
landen.
Hier kann jeder für sich relativ einfach ansetzen.
Guten Morgen!
Ist dieser Bug schon bekannt?
===
07:03:36 E: SQL Error: Data too long for column 'BestellNr' at row 1
(spSaveClick_qBAdr)/( $000000010005F142)
===
IMHO sollte die Applikation darauf achten, dass in dieses Feld nicht
mehr Zeichen eingegeben werden können, als die Datenbank zulässt...
Die von mir verwendete EleLa Version: V3.1.20517-64 für Windows.
LG. JK
Das ist nicht so einfach. Ein Zeichen kann bei UTF8 bis zu 4 Byte
Speicher belegen. Bei der Berechnung der maximalen Zeichenlänge
kontrolliert die Datenbank-Komponente daher auf das 4-Fache (anzahl
Bytes) der erlaubten Zeichen. Wenn man normalen ASCII Text ohne Umlaute
eingibt so ist 1 Zeichen 1 Byte. Sonderzeichen haben für 1 Zeichen bis
zu 4 Byte.
Ja ich ärgere mich auch schon seit Jahrzehnte darüber dass in den
50er/60er/70er Jahren alle Hochsprachenentwickler es komplett verbockt
haben einen Text "ordentlich" im Speicher zu halten, nicht nur 1 Zeichen
= 8 Bit. :-/
PS: Was ist das denn für eine Bestell-Nr die da nicht rein passt?
Markus M. schrieb:> Das ist nicht so einfach. Ein Zeichen kann bei UTF8 bis zu 4 Byte
Das kann ich nachvollziehen. Der aktuelle Zustand führt allerdings zu
einer inkonsistenten Datenbank, wenn der Fehler beim erstmaligen Anlegen
des Satzes auftritt, da die Daten anscheinend nur teilweise gespeichert
werden. Neben dem betroffenen Feld ist auch das Feld "Gehäuse/Lager"
danach leer, die anderen Felder sind aber befüllt.
Der DB-Konsistenz-Check kann so etwas finden und beheben.
> Speicher belegen. Bei der Berechnung der maximalen Zeichenlänge> kontrolliert die Datenbank-Komponente daher auf das 4-Fache (Anzahl> Bytes) der erlaubten Zeichen. Wenn man normalen ASCII Text ohne Umlaute> eingibt so ist 1 Zeichen 1 Byte. Sonderzeichen haben für 1 Zeichen bis> zu 4 Byte.
Gibt es in der von Dir verwendeten Sprache das Konstrukt try-catch
nicht?
Das könnte Dir erlauben den Fehler, den die Datenbank meldet,
abzufangen, auszuwerten und dementsprechend zu handeln... (z.B.
Cleanup+Fehlermeldung)
Bzw. um die Dateninkonsistenz zu verhindern, wären auch Datenbank
Transaktionen geeignet. In diesem Fall wäre Rollback+Fehlermeldung
sinnvoll.
> PS: Was ist das denn für eine Bestell-Nr die da nicht rein passt?
Ich hatte da keine Bestellnummer, also habe ich den Artikelnamen des
Verkäufers eingetragen. Ja, ich weiß, das ist Schwachsinn, aber es hat
eine Schwäche aufgezeigt. :-)
LG. JK
Try-Except und Try-Finally gibt es schon. Jedoch sollte EleLa schon
vorher alles korrekt abfangen. Wenn nicht, dann wirft die Application
ein "OnError", das erzeugt einen Log incl. Funktionsname innerhalb von
meinem Quellcode.
Einige wenige Fehler werden mit Try abgefangen, die, die unter Umständen
auftreten und die entsprechend behandelt werden können. Alle anderen
Fehler werden komplett geloggt und die muss ich dann per Quellcode
abfangen, bzw. sind Bugs. Daher bin ich in der Lage mit relativ knapper
Fehlerbeschreibung hier im Forum den Fehler schnell finden zu können.
Per Gieskannenprinzip Try-Except Blöcke ein zu bauen bringt nichts -
außer ein Kaschieren von Bugs, die man besser machen könnte. Zudem sehe
ich dann im Log nichts mehr (und alles sieht toll aus und es
funktioniert nicht).
Mal schauen, vielleicht finde ich ein relativ einfache praktikable
Lösung für das Problem.
Markus M. schrieb:> Zudem sehe> ich dann im Log nichts mehr (und alles sieht toll aus und es> funktioniert nicht).
Nicht unbedingt.
Du kannst ja das Problem abfangen und trotzdem im Log protokollieren.
Das Gießkannenprinzip ist nicht erforderlich, aber ein Insert, Update
oder Delete in die Datenbank damit abzusichern wäre IMHO ok.
Wie bekommst Du es derzeit eigentlich mit, dass bei einer
Datenbank-Operation ein Fehler aufgetreten ist?
Über den Return Code oder über eine Exception?
LG. JK
Hallo zusammen,
habe jetzt noch einen kleinen MiniPC mit eingebauten Barcodescanner.
Leider läuft da nur Windows 98 drauf auch wegen Treiber welche es nicht
für andere Systeme gibt. Ist ein Pentium 700 Mhz, gibt es da eine
Möglichkeit die Lagerverwaltung irgendwie damit zu nutzen. Möchte den
auch nur zum einpflegen und zum Checken des Lagerbestandes nutzen. Mehr
soll drauf auch nicht passieren. Netzwerk läuft aber natürlich nicht ins
Internet.
Hat da jemand ein tip ?
Max
Hallo zusammen,
habe einen kleinen Wandpc welcher in die Jahre gekommen ist. Darauf
läuft noch Windows 98, gibt es da eine Möglichkeit den für eintragungen
und abfragen zu benutzen?
Im Netz hängt der 98er aber natürlich nicht im Internet.
Max
Nein leider nicht. EleLa wurde mit Lazarus V2.0.8 und FPC 3.0.4
übersetzt, diese Compiller unterstützen leider dieses Betriebssystem
nicht mehr.
Mit einem älteren Compiller ist EleLa nicht ohne weiteres übersetzbar,
da einiges am Code für die neueren Compiller angepasstwerden musste,
bzw. neuere Features genutzt werden.
Vielen Dank für die Info, OK dann werde ich mal schauen ob sich
vielleicht doch irgendwie was mit Linux machen läßt. Wäre ebend schade
wenn der wech müsste.
Max
Hallo,
ich habe keine Ahnung von Datenbanken und muss mich in Elela
(SQlite)einarbeiten.
Wie kann ich ein Bauteil aus dem Reiter "Gehäuse/Lager" in einen anderen
Bauteiltyp aus dem Reiter "Bauteil" verschieben?
Z.B., mein Vorgänger hat einige Induktivitäten unter dem Bauteiltyp
"Ferrit" angelegt. Die möchte ich zu dem schon vorhandenen Typ
"Induktivitäten" verschieben.
Kann man aus einer Sicherung einzelne, versehentlich gelöschte
Datensätze zurück holen? Die Bauteile neu anlegen wäre kein Problem. Mir
geht es Hauptsächlich um die Historie.
Das geht mit Rechtsklick auf das "Kopieren" Symbol unter
"Gehäuse/Lager".
Ansonsten alle Funktionen sind in der EleLa Hilfe beschrieben, mit der
Taste "F1" öffnet die Hilfe und zeigt das Thema bei der
Programmposition.
Die Hilfe-Seite "Allgemeine Infos" sollte man lesen, darin sind die
wichtigsten Funktionen von EleLa beschrieben.
In der Hilfe unter "Installation > Tutorial - Erste Schritte" ist
beschrieben wie man mit EleLa am besten anfängt.
"Das Projekt kann mit einem Bauteil verknüpft werden. Damit ist das
Ergebnis dieser Produktion ein Gerät, das als "Bauteil" verwaltet wird."
Darüber habe ich in der Hilfe nichts gefunden.
Ja, dieses Problem kenne ich. Es liegt daran dass die Hilfe-Datei in
einem Netz-Laufwerk liegt und die Microsoft Hilfe meint dadurch ist die
Datei eine potentielle Gefahr und zeigt den Inhalt nicht mahr an.
Man kann das Umgehen indem man die Datei "EleLa.chm" auf eine lokale
Festplatte kopiert und dann mit Doppelklick öffnet, dann sollte diese
korrekt gezeigt werden.
Um das "richtig" Problem zu lösen gibt es 2 Ansätze:
1) Die Interneteinstellungen so einstellen dass CHM Dateien über
Netzlaufwerk "sichere" Dateien sind:
http://mmvisual.de/Hilfe/EleLa/FAQ.htm#7 (Punkt 7.)
Ich bin mit nicht sicher ob dieser "Hack" unter Win10 noch korrekt
funktioniert, anosnten ist die Lösung 2).
2) Dieses Tool verwenden:
Alternativ kann man den "KChmViewer" installieren. EleLa erkennt wenn
dieses Tool vorhanden ist automatisch und verwendet es, dann klappt es
auch über das Netzlaufwerk. Das Setup daz ugibt es hier:
http://mmvisual.de/elela/ -> Tools -> InstallKchmViewer-7.7-64bit.exe
(PS: KChmViewer wird als Hilfe-Viewer unter Linux verwendet, da Linux
das Microsoft Tool "HH.EXE" nicht kennt.)
Jürgen schrieb:> "Das Projekt kann mit einem Bauteil verknüpft werden. Damit ist das> Ergebnis dieser Produktion ein Gerät, das als "Bauteil" verwaltet wird.">> Darüber habe ich in der Hilfe nichts gefunden.
Die Verknüprung eines Projektes zu einem Bauteil geht unter "Projekt":
http://mmvisual.de/Hilfe/EleLa/Projekt.htm
Hier kann das "Bauteil" sowie der "Gehäuse/Lager" Eintrag hinterlegt
werden. Somit wird bei Fertigstellung des Projektes diese Menge von dem
"Gehäuse/Lager" Eintrag erhöht.
Danke, und dass das Tool zusammen mit Elela funktioniert, sehr gut.
Mit dem Projekt habe ich das in der Hilfe anders verstanden.
"Wenn ich ein Projekt einem anderen Projekt unterordne, wird das
Untergeordnete zu einem Bauteil (als Bauteil geführt)."
Ich habe also ein Projekt angelegt (z.B. ein Gehäuse aus mehreren
Teilen) und ein Unterprojekt (eine bestückte Platine).
Wenn ich das Gehäuse mit einer Auftragsnummer buche, wird das
Unterprojekt Platine nicht mitgebucht.
Unter Projekte F3 gibt es den Reiter Geräte. Darüber finde ich in der
Hilfe nichts.
Hallo,
ich bin noch bei Version 3.1 "hängengeblieben" und habe eine Frage dazu:
Gibt es einen Schalter beim Aufruf der Setup_Elela.exe, damit die
Installation unbeaufsichtigt ("silent") erfolgen kann?
Aktuell habe ich diverse Schalter ausprobiert, aber es bleibt am Ende
der Installation immer die Dialogbox, dass man doch die Hilfe lesen
möchte, manuell zu bestätigen.
Nein, ein "Slient" Setup gibt es nicht.
Man kann jedoch ein Setup ausführen, anschließend alle Dateien die im
EleLa Verzeichnis sich z.B. Zippen und einfach auf einem anderen Rechner
so wie sie sind entpacken.
Wenn es darum geht in einer Firma mehrere Arbeitsplätze mit EleLa aus zu
statten kann man EleLa auf einem Netzlaufwerk installieren und alle
nutzen diese EXE über den Server. Damit ist ein Update für den
Systemadministrator einfacher. Damit dennoch die einzelnen Benutzer das
eigene Layout haben kann in der INI-Datei die lokalen Pfade auf die
User-Environment Variable gesetzt werden, Beispiel EleLa.ini:
[Programm]
TableFile=%TEMP%\Tables.txt
TempDir=%TEMP%
Alternativ kann %LOCALAPPDATA% oder ein anderes im System hinterlegtes
Verzeichnis verwendet werden. Welche Systemvariablen angelegt sind kann
man sehen wenn man in der Dos-Box den Befehl "SET" eingibt.
Markus M. schrieb:> Wenn es darum geht in einer Firma mehrere Arbeitsplätze mit EleLa aus zu> statten kann man EleLa auf einem Netzlaufwerk installieren und alle> nutzen diese EXE über den Server.
Nein, es geht nicht um den Einsatz in einer Firma. Ich hab hier zuhause
2 Rechner (Laptop und den PC im "Bastelkeller") auf denen ich identische
Versionen von EleLa haben will.
Dafür passt die von Dir beschriebene Installation auf einem Netzlaufwerk
ganz gut.
Besten Dank!
Hallo Markus,
ich nutze EleLa seit einigen Tagen (V3.1.20527 auf Win7 32bit). Mir ist
eine Sache aufgefallen, was die Anzeige des Preis Chart betrifft. Bei
mehreren Lieferanten wird eine Kurve pro Lieferant angezeigt. Wenn man
aber bei einem Lieferanten verschiedene Bestellnummern hat werden die
Staffelungen aller Bestellnummern zu einer Kurve vermischt (siehe
Anhang). Zum Beispiel beim Relais PE014012: da gibt es bei RS die
Möglichkeit einzelne Relais zu bestellen oder Kartonweise mit 25 Stück.
Daher auch 2 verschieden Bestellnummern.
Wäre es nicht sinnvoll beim Preis Chart nur die Staffelungen zu einer
Kurve zusammen zu fassen die die gleiche Bestellnummer und den gleichen
Lieferanten haben?
Ansonsten muss ich sagen gutes Programm mit kleinen Schwächen. Ich finde
zum Beispiel ungünstig daß beim Scrollen die einzelnen Datensätze
durchlaufen werden (sehr langsam, bei meiner Maus zw. 3 und 9
Datensätze, je nach Scrollgeschwindigkeit, bevor man den Finger wieder
nachsetzen muss) anstatt nur die Ansicht zu verschieben und den
Datensatz durch anklicken zu wählen.
Silvio
Silvio G. schrieb:> werden die> Staffelungen aller Bestellnummern zu einer Kurve vermischt
Muss ich mir anschauen. Interessant wäre es welche Bestellnummer EleLa
für eine Menge von 125 Stück in der Bestellung vorchlägt, ist es Karton
oder der Einzelpreis. EleLa sollten hier die Bstellnummer zum
günstigsten Preis zeigen.
Silvio G. schrieb:> je nach Scrollgeschwindigkeit
Ja, das Scrollen bewegt den Datensatz und muss dabei alle verknüpften
Tabellen neu öffnen, daher dauert es leider ein wenig. Die Bilder zum
Datensatz werden im Hintergrund zeitversetzt geladen.
Ich überlege mir wie ich das optimieren kann.
Hallo,
habe gerade mal probiert was bei einer Bestellung gewählt wird.
1-18 einzeln
19-25 Karton
26-38 einzeln
39-50 Karton
51-57 einzeln
58-75 Karton
76 einzeln
ab 77 Karton
Scheint also richtig berechnet zu werden. Ist also nur ein optischer
Schönheitsfehler.
Silvio
Silvio G. schrieb:> optischer Schönheitsfehler
Dann ist gut :-)
EleLa fasst das Bauteil vom gleichen Lieferant in eine Kurve zusammen.
Es sieht optisch nur deshalb so unschön aus weil es extreme Sprünge
zwischen den Preisen gibt. EleLa selbst wählt entsprechend der
Preisstaffel dann den mit der besten Preis/Menge Relation aus. Wenn man
bei größerer Stückzahl lieber den Karton nehmen möchte sollte man die
Einzel-Stück Preise mit höherer Preisstaffel löschen. Oder wenn ohnehin
nur Kartonweise bestellt werden sollte weil man die Relais ständig
braucht, dann die Einzelstückpreise mit deren Bestellnummer komplett
löschen und nur noch den Karton Preis belassen.
Grad die Schwelle 76=Einzeln/77=Karton, bedeutet dass man 23 Relais im
Prinzip gratis bekommt wenn man statt 76 gleich 77 bestellt. Daher auch
der Preis-Chat damit man da sehen kann welche Preise man vielleicht
besser aus der EleLa Liste löscht.
Hallo,
mir ist gerade noch etwas aufgefallen. Beim Ändern der Technischen Daten
erscheint der Eintrag nicht immer gleich in der Liste beim Suchen oder
in der Konfiguration unter Globale Params.
Das Kreuz bei "Eingabe abbrechen" wird beim Druck auf Speichern grau
auch das Datum ändert sich, also gehe ich davon aus daß die Änderungen
auch gespeichert wurden. Die eingegebenen Daten stehen auch nach einem
Neustart des Programms noch im Bauteil drin, aber die Liste wird nicht
verändert.
Manchmal hat es scheinbar geholfen einen anderen Wert zu verändern, habe
aber noch kein Muster erkennen können.
Hab gerade bei einem Bauteil einen neuen Parameter hinzugefügt und
gespeichert. Keine Reaktion in der Suchliste oder der Konfiguration.
Den neuen Parameter bei dem Bauteil wieder gelöscht. Jetzt steht der
sonst nirgends verwendete Parameter in den Listen drin.
Hast du eine Idee was das Problem ist?
Silvio
Wenn man den Datensatz mit der "Speichern" Taste speichert sollte der
Datensatz mit Neuberechnung der Technische Daten Parameter erfolgen.
Wenn man nur de Datensatz wechselt geht das nicht zuverlässig.
Ab EleLa V4 ist das Problem behoben, ich hatte an der Stelle noch etwas
korrigiert.
Ansonsten sind alle hinterlegte Parameter unter
Extras-F10 > Log > Optionen > Globale Params > Technische Daten
hinterlegt, nicht mehr benötigte kann man aus dieser Liste löschen und
werden dann nicht mehr angezeigt.
Hallo,
hab mal bei dem Bauteil dessen Parameter nicht angezeigt wird einen
neuen Parameter mit gleicher Bezeichnung eingegeben, da kommt sofort die
Meldung der Parameter wäre schon vorhanden. Nach Eingabe eines neuen,
noch nicht benutzten Parameters tauchte nur der alte Parameter unter
Globale Params auf, dann unter Suche-F5 nachgesehen, da waren beide
vorhanden und dann auch in Globale Params.
Gibt es die V4 auch für Win 32bit? Würde das dann mal probieren.
Silvio
Ja, habe nun EleLa V4 Win-EXE als 32 Bit erstellt, sie kann von hier
geladen werden:
http://www.mmvisual.de/elela/ > EleLa_V4.0
Vorher zu Sicherheit ein Backup der Datenbank erstellen.
Ok Danke, werde ich testen.
Ich habe an dem Problem noch etwas weiter getestet. Der Fehler scheint
aufzutreten wenn man einen vorhanden und gespeicherten Parameter in
einen noch nicht vorhandenen umbenennt.
Silvio
Bei EleLa V4 funktioniert es.
Ausnahme:
Wenn bei Suchen-F5 ein Filter auf technische Daten hinzugefügt wird,
dann in Bauteil ein neuer Parametername hinzufügt, so wird dieser neue
nicht in das Drop-Down Auswahlfeld der Parametername mit hinzugefügt,
dazu müsste man erst die Filter-Zeile löschen und neu erstellen, in
dieser neues wird der neue Parametername dann auch gezeigt.
I have fix this mistake in EleLa V4.0.
You can download it from:
http://www.mmvisual.de/elela/ > EleLa_V4.0 >
EleLa_V4.0.21131_Linux64.zip
First: make a backup with EleLa V3.1
Second: change the EXE file and start the new EXE.
If you start new with EleLa, you can directly make the update without
backup.
Thanks, Markus! New interface looks good!
I don't understand about backup, its for what type of database? I try to
run new program without backup and it load postgres database fine.
Can old versions (3.1) and new(4.0) work with postgres database at same
time?
No, V3.x.xxxxx cannot run with V4.x.xxxx database. If you start EleLa
V3.1, it will blocking. All clients must chage to V4.x.xxxxx.
Make a backup with EleLa:
Extras-F10 > Database > Import/Export menu > Import/Export database
open a dialog to export the database into a file with format "SQLite".
If your postgres databse server goes broken and you must reinstall, then
you can import this backup into a new installation. A backup is very
important.
Yes, you have change the database correctly. EleLa make in this update a
lot of changes, in this chase the info side need change some SQL
commands. Normally, EleLa chage this commands, too, but if this are not
exact the same texts, it need to change it by hand.
Here I have write all changes from EleLa V3.1 to EleLa V4:
http://www.mmvisual.de/Hilfe/EleLa/EleLaV4.htm
You can translate this side with https://www.deepl.com
You need to change:
Extras-F10 > Log > Options > Global Params > Design > Info Statistik
and change all tabel names "bauteillager" into "bauteilvariante" or
"bauteilkiste", see the table from the side "EleLaV4.htm".
I follow that instruction and now all works fine, no errors.
Maybe somewhere exists a new file Lang_EN.txt? Now i am using that file
from 3.1 and in Components i have some Deutsch labels.
Ich verwende noch EleLa 3.1mit einer lokalen Datenbank und wollte diese
gerne auf einen SQL-Server (Version 5.6.51) übertragen.
Ich hatte diese Kombination früher schon mal am Laufen und funktionierte
so weit auch. Allerdings gibt es die alte Datenbank nicht mehr und der
SQL-Server hatte einiges Updates in der Zwischenzeit. Ich kann mit
phpMyAdmin eine Datenbank erstellen und auch verbinden. Teste Verbindung
zeigt grün an.
Start program V3.1.20527-64
Parameter [DB] Protocol=mysql
Connect database...
DB.Version: SQLite-DLL: 3.31.1 / MySQL: 5.6.51
Database Version: V3.1.18B30
19:47:37 Error: Cannot open database! Cannot access blob record in
column 34 with type String (qAdr)
Die Datenbank ist leer und mit Erzeuge neue Datenbank erscheint
folgender Fehler:
Start create Database and tables 192.168.201.250.elela
Create Table "adr"
CreateIndex (adr,ID_ID_Bezeichnung)
CreateIndex (adr,ID_ID)
E: SQL Error: The used storage engine can't index column 'ID_ID'
(btnKonfigClick|TfrmKonfig.btnErzeugeDBClick|CreateIndex (adr,ID_ID))/(
$000000010005F142)
Jemand eine Idee, woran es liegen könnte? Habe es auch schon mit V4.2.23
versucht, bekomme aber ähnliche Fehler.
Vermutlich ist der MySQL Server zu alt und kennt den Feld Datentyp JSON
noch nicht.
Hier sind die Mindestandorderungen der SQL Server beschrieben:
http://elela.de/Hilfe/Index.php
Dann auf der linken Seite "Installation" wählen, der dritte Einttag von
oben.
Diese Mindestanforderungen gelten für EleLa V3.1 sowie 4.x
Ich verwende erstmal meine alte lokale Datenbank bis ich den SQL
upgedated hab. Was mit aufgefallen ist:
In V3.1 hab ich keine Möglichkeit für den Export. Keine Ahnung wie ich
das dann mal in SQL migrieren soll.
In V4.2 habe ich diese Funktion aber.
Wenn ich die Datenbank (SQLite3) in V4.2 kopiere, kommt
"EleLa - Datenbankupdate 67"
und bricht mit dem Fehler
"Datenbank=Update Nr. 67 fehlgeschlagen! Führen Sie den Update manuell
aus." Weiter
"SQL Error: SQL logic error"
"Error" Cannot open database! qAdr" Field not found..."
Und seltsamerweise beschwert es sich, dass die Datenbank neuer als das
Programm ist und ich soll auf die neuere Version updaten. Neuer als
4.2???
Um ein Backup der SQLite Version von V3.1 zu erstellen reicht es den
kompletten EleLa Ordner zu sichern als ZIP Datei. Dann hat man die EXE
sowie die Datenbank Datei "EleLa.sq3" (die Daten) sowie die komplette
Konfigurationen gesichert.
Danach kann man eigentlich auch nichts mehr kaputt machen.
EleLa kontrolliert ab V4 deutlich strenger die Integrität der Daten, der
Update 67 prüft die Datenbank und löscht blinde Datensätze ohne
Zuordnung. Ich vermute mal dass in deinem Fall es noch Datensätze in
Tabellen gibt bei denen das nicht geht.
Die weiteren Fehlermeldungen
"Error" Cannot open database! qAdr" Field not found..."
und dass sich die Datenbank nicht öffnen lässt ist eine
Sicherheitsfunktion von EleLa. Damit wenn die Datenbank nicht korrekt
konvertiert wurde, dass man mit EleLa durch neueingaben von Daten die
Datenbank nicht noch beschädigen kann. Es ist somit eine gewünschte
Funktion für die Datensicherheit. Wenn ich die Datei "EleLa.sq3" als Zip
per E-Mail bekommen könnte, dann kann ich danach schauen was genau der
Fehler bei der Konvertierung auslöst und beheben. Meine Mail-Adresse
steht in EleLa unter Extras-F10 > Info.
Am besten mit der letzte Originalstand von EleLa V3.1 senden, vor dem
Update, dann kann ich es ab besten nachvollziehen und beheben.
Danke für die Erklärung.
Ich habe es jetzt hinbekommen. Zumindest den Teil mit der Datenbank auf
dem Server anlegen. Habe es auch geschafft meine lokale Kopie zu
importieren.
Habe auch noch eine alte Datenbank aber nur noch die frm und ibd files
und das wird etwas komplizierter diese zu rekonstruieren.
Habe V4 parallel installiert und funktioniert soweit auch mit dem
Datenbank-Server. Werde es jetzt auf V3.1 noch eine Weile beobachten und
dann vermutlich auf V4 updaten.
Eine Frage noch. Ich weiß, das Thema ist schon ewig alt und auch nie
wirklich fertiggestellt worden. Aber ich hatte EleLaPHP mal am Laufen
und hat auch soweit eigentlich ganz gut funktioniert. Verwende jetzt
MySQL 5.7 und PHP 7.x und zeigt mir nichts mehr an. Weißt du da auf die
Schnelle (ohne dich jetzt lange damit zu beschäftigen) was das Problem
sein könnte?
Bei EleLaPHP:
Vermutlich funktioniert das Öffnen der Datenbank nicht. PHP hat die
Eigenschaft dass ständig was geändert/verbessert wird und die alten
Sachen hinten runter fallen. PHP Entwicklung ist daher sehr aufwändig.
Es könnte an der Datei "globalfunc.php" liegen.
Ich habe mal einen alten Stand EleLaPHP angehängt, ich pflege den nicht
mehr, ich konzentriere mich mehr auf die EXE. Vielleicht hilft es.
Super. Danke. Nun funktioniert es.
Woran es genau lag, kann ich jetzt nicht sagen, da ich die alten Dateien
einfach überschrieben habe.
Muss aber irgendwas in der globalfunc.php sein, da es mit der alten
Version nicht mehr funktioniert, wenn ich es zurückkopiere.
Zwei Fehler sind mir aufgefallen:
Seite „Bauteile verwalten“
Wenn Umlaute in Namen sind, wird nur ein Ordner ohne Bezeichnung
dargestellt und lässt sich demnach auch nicht anklicken.
Bei allen anderen Einträgen übrigens auch.
Einfach in EleLa oder der Datenbank selbst die Umlaute entfernen und
dann geht es.
Das Sprachschema (verwende utf8_general_ci) umstellen hat jedenfalls
nichts gebracht.
Wenn dann ist es irgendwas in PHP und ich habe weder von HTML noch von
PHP null Ahnung.
Und die Suche funktioniert nicht. Seite kann nicht dargestellt werden.
In suche.php Zeile 68 die Klammer schießen vergessen.
Alt if (($P_DBTyp == "MsSQL")
Neu if (($P_DBTyp == "MsSQL"))
Für alle Anderen, die es vielleicht auch noch interessiert.
Mein Setup ist EleLa V3.1, MySQL 5.7.44, PHP 7.4.33 und apache 2.4.51
(wobei das wahrscheinlich egal ist).
Man kann die Seite sogar mit Windows 2000 problemlos aufrufen.
Eine mit V4.2.23 erstellte Datenbank funktioniert grundsätzlich auch
erstmal, habe ich aber noch nicht weiter getestet.
Wegen den Umlauten vermute ich dass ein "ä" zu einem "ä" für die
korrekte Darstellung im Webbrowser gemacht wird. Und ein Bauteil mit dem
Text "ä" gibt es natürlich in der DB nicht, da fehlt vielleicht nur
die Zurückwandlung.
Wenn ich etwas mit PHP mache muss ich fast jeden Befehl ergoogeln. Ich
weis was ich will, jedoch die Syntax und welcher der zig Befehle denn
nun korrekt oder der für mein Problem die ideale Lösung bietet weis nur
google.
Abgesehen davon würden andere "Modernere" Programmiersprachen verwenden
als PHP. Das Internet ändert sich fortlaufend und so schnell, damit so
komplexe Dinge wie EleLa rein zu bekommen ist enorm viel Arbeit. Im
vergleich dazu eine EXE zu bauen ist um Welten einfacher.
Die Unterschiede zwischen der alten Version der Datenbank und der neuen
habe ich hier beschrieben:
https://elela.de/Hilfe/Index.php?url=EleLaV4.htm
In diesen Links findet man den Aufbau der Datenstruktur/Datenbank der
jeweiligen Versionen:
https://elela.de/Hilfe/Index.php?url=TutorialDB/TutDB.htmhttps://elela.de/Hilfe/Index.php?url=TutorialDB/TutDBV4.htm
Wenn eine Ansicht nicht geht kann man damit herausfinden wie die Spalte
neu heißt. Wenn man SQL Befehle für die PHP Darstellung benötigt und
nicht genau weiß wie man die schreibt kann man innerhalb von EleLa mit
Rechtsklick auf die Tabelle "Kopiere SQL Befehl in Zwischenablage"
ausführen und sich den SQL Befehl unter Extras-F10 > Datenbank
einkopieren und modifizieren bis er das gewünschte Ergebnis zeigt:
https://elela.de/Hilfe/Index.php?url=ExtraDB.htm
Somit bietet EleLa die grundlegenden Werkzeuge für eigene Entwicklung
mit PHP. Man muss ja nicht das komplette EleLa per PHP nachbilden,
oftmals reicht es aus wenn man nur den Bauteilebestand sieht. Oder man
möchte Zugriff auf den "Wissen" Bereich haben um von der Ferne aus die
Infos lesen zu können. Den Bereich Projekte auf PHP zu bekommen ist
extrem aufwändig und komplex.
Hallo Leute,
ich würde die Elela gerne unter Linux Mint21 installieren.
Hat schon mal jemand Erfahrungen mit der Installation
dieses Programmes unter Ubuntu bzw. Mint?
Viele Grüße,
Georg
Gut ok ich habe jetzt nur noch diese Fehlermeldungen:
Aus der shell:
(EleLa.64:4635): Gdk-CRITICAL **: 19:25:28.842: IA__gdk_cursor_ref:
assertion 'cursor->ref_count > 0' failed
Aus der EleLa:
19:28:03 E: Error on Test Database.
19:28:04 OpenSSL "OpenSSL 3.0.2 15 Mar 2022" found
(libssl.so.3,libcrypto.so.3)
19:28:19 Error: Cannot open database! SQL Error: unable to open database
file (DB-Connect)
Also brauch das Programm Rechte oder fehlt SQL?