Forum: Projekte & Code EleLa - Elektronik Lagerverwaltung V3.1


von Drago S. (mratix)


Lesenswert?

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
von Jaroslaw K. (root666)


Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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?

von Drago S. (mratix)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

@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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@ 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.

von Drago S. (mratix)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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"

von Drago S. (mratix)


Lesenswert?

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
von Jaroslaw K. (root666)


Lesenswert?

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

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Drago S. (mratix)


Lesenswert?

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
von Drago S. (mratix)


Lesenswert?

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
von Jaroslaw K. (root666)


Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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'

von Jaroslaw K. (root666)


Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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
von Jaroslaw K. (root666)


Lesenswert?

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

von Jaroslaw K. (root666)


Lesenswert?

Mister A. schrieb:
> [mysqldump]
> quick
> quote-names
> max_allowed_packet  = 16M

Das schaut bei mir identisch aus.

LG. JK

von Drago S. (mratix)


Lesenswert?

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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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...)

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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".

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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 ...

von Jaroslaw K. (root666)


Lesenswert?

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

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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.

von Drago S. (mratix)


Lesenswert?

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

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

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.).

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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.

von Drago S. (mratix)



Lesenswert?

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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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)

von Drago S. (mratix)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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

von Drago S. (mratix)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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?

von Sebastian (Gast)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Drago S. (mratix)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Jaroslaw K. (root666)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Exception

von Jaroslaw K. (root666)


Lesenswert?

Dann sollte es kein Problem sein. Die exceptions enthalten alles, was 
man zum protokollieren braucht...
LG. JK

von Max (Gast)


Lesenswert?

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

von Max (Gast)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Max (Gast)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Alternativ könnte ein RaspberryPi genutzt werden. Ist zwar nicht so 
schnell wie ein Desktop-PC, dafür relativ günstig.

von Jürgen (Gast)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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.

von Jürgen (Gast)


Lesenswert?

Danke.

unter F1 habe ich nur das Inhaltsverzeichnis. Wie komme ich an den Rest?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bitte sende ein Screenshot, wie es aussieht.

von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

Links der Baum, rechts alles weiß.

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Vielleicht WinHlp32 neu installieren?
https://www.microsoft.com/en-us/download/details.aspx?id=91

von Jürgen (Gast)


Lesenswert?

"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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Jürgen (Gast)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

von Thomas V. (tomv)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Thomas V. (tomv)


Lesenswert?

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!

von Silvio G. (technofreak)


Angehängte Dateien:

Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Silvio G. (technofreak)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Silvio G. (technofreak)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Silvio G. (technofreak)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Silvio G. (technofreak)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Kost (Gast)


Angehängte Dateien:

Lesenswert?

Hello!

Thanks for very good program!
What i can do with this? All working fine, but that overlaping fields 
looks bad.

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Maybe your Windows scaling factor is too high.

von Kost (Gast)


Lesenswert?

I try to change scale factor in ini file, scale is changed, but overlap 
not changed. My os is Ubuntu 20.04.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Kost (Gast)


Lesenswert?

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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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.

von Kost (Gast)


Lesenswert?

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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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
von Kost (Gast)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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
von Kost (Gast)


Lesenswert?

Danke schön!

von Michael D. (michael86)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

von Michael D. (michael86)


Lesenswert?

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???

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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.

von Michael D. (michael86)


Lesenswert?

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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

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.

von Michael D. (michael86)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Wegen den Umlauten vermute ich dass ein "ä" zu einem "&auml;" für die 
korrekte Darstellung im Webbrowser gemacht wird. Und ein Bauteil mit dem 
Text "&auml;" 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
Noch kein Account? Hier anmelden.