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.
:
Bearbeitet durch User
Guten Abend Markus, ich habe gerade versucht mit der aktuellen Version die Datenbank zu sichern:
1 | 23:40:56 E: SQL Error: constraint failed (mnDBExportClick|TfrmImportExport.btnExportClick|Tbl: tree_typ)/( $000000010005E0F2) |
Tritt das nur bei mir auf? LG. JK
1 | mratix@crodevo:~$ qtchooser -l |
2 | 4
|
3 | 5
|
4 | default
|
5 | qt4-x86_64-linux-gnu |
6 | qt4
|
7 | qt5-x86_64-linux-gnu |
8 | qt5
|
Besagt dass die Qt4+5 Unterstützung vorhanden ist. Qtconfig meldet zudem, aktiv die 4.8.7. Und EAGLE z.B. läuft auch unter Qt. Also unter Qt4.
1 | mratix@crodevo:~$ qtchooser --help |
2 | Usage: |
3 | qtchooser { -l | -list-versions | -print-env } |
4 | qtchooser -install [-f] [-local] <name> <path-to-qmake> |
5 | qtchooser -run-tool=<tool name> [-qt=<Qt version>] [program arguments] |
6 | <executable name> [-qt=<Qt version>] [program arguments] |
7 | |
8 | Environment variables accepted: |
9 | QTCHOOSER_RUNTOOL name of the tool to be run (same as the -run-tool argument) |
10 | QT_SELECT version of Qt to be run (same as the -qt argument) |
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:
1 | # mysqlcheck -c elela foto -u root -p |
2 | Enter password: |
3 | elela.foto OK |
4 | # |
LG. JK
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.
:
Bearbeitet durch User
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` LIMIT 4128, 1; |
zum löschen DELETE statt SELECT. Nachtrag: oups, war zu langsam
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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 | sudo systemctl stop mysql |
2 | sudo systemctl stop mysqld |
3 | sudo systemctl stop mariadb |
4 | sudo systemctl start mysql |
5 | und jetzt mach mal den mysqldump... |
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
Sieht alles gut aus. Kein Problem, muss funktionieren :)
1 | cat /etc/mysql/conf.d/mysqldump.cnf |
2 | [mysqldump] |
3 | quick
|
4 | quote-names |
5 | max_allowed_packet = 16M |
:
Bearbeitet durch User
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
Mister A. schrieb: > [mysqldump] > quick > quote-names > max_allowed_packet = 16M Das schaut bei mir identisch aus. 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.
:
Bearbeitet durch User
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 ;-)
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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?
:
Bearbeitet durch User
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. ---
:
Bearbeitet durch User
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
Markus M. schrieb: > EleLa V3.1.20527 ist nun als Release fertig gestellt. Yeah, eine neue Release. Danke Markus! Für die Linux-Freunde:
1 | Hardware | Sqlite | MySQL | MariaDB | PostgreSQL | MSSQL |
2 | ----------------------+--------+-------+---------+------------+-------
|
3 | Raspberry 3+4 SDcard | x | *1 | *1 | *1 | - |
4 | Raspberry 3+4 HDD/SSD | x | x | *2 | x | - |
5 | Desktop | x | 5.8 | *2 | x | - |
6 | Server | x | 8.0 | *2 | x | - |
7 | Virtualisierung | x | 5.8 | *2 | x | x |
8 | ----------------------+--------+-------+---------+------------+-------
|
*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?
:
Bearbeitet durch User
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
Dann sollte es kein Problem sein. Die exceptions enthalten alles, was man zum protokollieren braucht... 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
Alternativ könnte ein RaspberryPi genutzt werden. Ist zwar nicht so schnell wie ein Desktop-PC, dafür relativ günstig.
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.
Danke. unter F1 habe ich nur das Inhaltsverzeichnis. Wie komme ich an den Rest?
"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.
Ab heute gibt es EleLa V4.0 öffentlich als Beta-Version. Fragen dazu bitte in diesem Thread stellen: Beitrag "EleLa - Elektronik Lagerverwaltung V4.0" Oder im Telegram-Chat: https://t.me/mmvisual_elela
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.
:
Bearbeitet durch User
Hello! Thanks for very good program! What i can do with this? All working fine, but that overlaping fields looks bad.
I try to change scale factor in ini file, scale is changed, but overlap not changed. My os is Ubuntu 20.04.
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.
:
Bearbeitet durch User
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.
Thanks, i understand about backup. Now i have 1 error on page Extras-Info
1 | 18:03:24 E: Statistik SQL Error[2]: SELECT COUNT(ID) FROM bauteillager |
2 | 18:03:24 ErrRaise: SQL Error: ОШИБКА: отношение "bauteillager" не существует |
3 | LINE 1: SELECT COUNT(ID) FROM bauteillager |
4 | ^ (pgExtraChange|CalcInfoStatistik) |
5 | 18:03:24 E: Statistik SQL Error[3]: SELECT SUM(Menge) FROM bauteillager |
6 | 18:03:24 ErrRaise: SQL Error: ОШИБКА: отношение "bauteillager" не существует |
7 | LINE 1: SELECT SUM(Menge) FROM bauteillager |
8 | ^
|
9 | 18:03:24 E: Statistik SQL Error[4]: SELECT SUM(EPreis * Menge) FROM bauteillager |
10 | 18:03:24 ErrRaise: SQL Error: ОШИБКА: отношение "bauteillager" не существует |
11 | LINE 1: SELECT SUM(EPreis * Menge) FROM bauteillager |
Its because i migrate database incorrectly?
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".
:
Bearbeitet durch User
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.
Here the files for EleLa V4.0 english and russia. But the translation is now not complete, the most texts are translated.
:
Bearbeitet durch User
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.htm https://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.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.