NEWS
[gelöst] Problem mit Javascript-Funktion in Blockly
-
Hallo zusammen,
ich versuche gerade eine Javascript Funktion in einem Blockly-Funktionsblock zu definieren. Leider lässt sich der Block nicht abspeichern. Es kommt aber auch keine Fehlermeldung. Wenn ich das Script komplett in Javascript schreibe funktioniert alles. Ich würde es aber gerne in Blockly definieren.
Hier ist das funktionierende Javascript. Kann mir bitte jemand sagen, wie ich es richtig umbauen muss?
function updateOrInsertBarcode(dbPath, barcode, name) { const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database(dbPath); db.serialize(() => { db.get("SELECT anzahl FROM produkte WHERE barcode = ?", [barcode], (err, row) => { if (err) { console.error('Fehler beim Ausführen der SELECT-Abfrage:', err.message); db.close(); return; } if (row) { db.run("UPDATE produkte SET anzahl = anzahl + 1 WHERE barcode = ?", [barcode], (err) => { if (err) { console.error('Fehler beim Ausführen der UPDATE-Abfrage:', err.message); } else { console.log(`Anzahl für Barcode ${barcode} wurde um 1 erhöht.`); } db.close(); }); } else { db.run("INSERT INTO produkte (barcode, name, anzahl) VALUES (?, ?, 1)", [barcode, name], (err) => { if (err) { console.error('Fehler beim Ausführen der INSERT-Abfrage:', err.message); } else { console.log(`Neuer Eintrag für Barcode ${barcode} hinzugefügt.`); } db.close(); }); } }); }); }
In Blockly will ich dann die 3 Variablen barcode, name, dbPath immer wieder neu definieren können, wenn die Funktion abgerufen wird.
-
@el-lutschi sagte in Problem mit Javascript-Funktion in Blockly:
Kann mir bitte jemand sagen, wie ich es richtig umbauen muss?
Du darfst natürlich nur den Inhalt der Funktion in einen Blockly-Baustein kopieren. Also die erste und letzte Zeile weglassen.
-
Vielen Dank für die schnelle Hilfe. Das hatte ich zwar bereits erfolglos versucht, aber nachdem ich es nun noch einmal probiert habe funktioniert es. Scheinbar hatte ich beim letzten Versuch doch noch irgendwo einen Fehler. Ich habe es direkt mit weiteren Funktionen getestet. Jetzt läuft alles. Vielen Dank!