Я создал процедуру под названием details_inventory с 1 параметром «слово» в MySQL Workbench.Когда я выполняю, например, CALL details_inventory("5")
, результат покажет мне строку, содержащую 5. Отлично!Кажется, что это работает, но проблема, с которой я столкнулся, заключается в том, что Cygwin (код для командной строки см. Ниже) делает то же самое, что я делаю на MySQL, но я не знаю, как использовать параметр «word» из процедуры в моем коде.
--
-- Search inventory MySQL
--
DROP PROCEDURE IF EXISTS details_inventory;
DELIMITER ;;
CREATE PROCEDURE details_inventory(
word VARCHAR(20)
)
BEGIN
SELECT * FROM search_inventory WHERE namn =word OR produktid = word OR hylla = word OR antal = word OR pris = word;
END
;;
DELIMITER ;
-- test if its work
CALL details_inventory("5");
код Cygwin для чтения из командной строки
"user strict";
// Import terminal.js
const terminal = require("./src/terminal.js");
// Read from commandline
const readline = require("readline");
//Main function
(function () {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
showMenu();
rl.setPrompt("Type menu: \n");
rl.prompt();
rl.on("close", process.exit);
rl.on("line", async (line) => {
line = line.trim();
let lineArray = line.split(" ");
switch (lineArray[0]) {
case "quite":
case "exit":
process.exit();
break;
case "menu":
case "help":
showMenu();
break;
case "log":
await terminal.log(lineArray[1]);
break;
case "shelf":
await terminal.shelf();
break;
case "inventory":
if (lineArray[1]) {
return await terminal.inventorySearch(lineArray[1]);
} else {
return await terminal.inventory();
};
break;
default:
}
rl.prompt();
});
})();
function showMenu() {
console.info(
`Hi how can I help you \n`+
`You can type these commands: \n` +
`exit, quite: Exists from the program. \n` +
`help, menu: Show commands again. \n` +
`log <number>: Show log table. \n` +
`shelf: Type to see shelf. \n` +
`inventory: Show inventory \n` +
`inventory <str>: Show inventory than are u looking for. \n`
);
}
Здесь приведен код функции, показывающий, что я набираю в Cygwin, например «5», поэтому результатом будет строка, содержащая 5.
Где поместить параметр слова?Во-первых, я думал поставить CALL details_inventory (word);Это не работаетКогда я набираю log 5, в Cygwin ничего не происходит.
inventorySearch: async function () {
const db = await mysql.createConnection(config);
console.info("Inventory you are looking for: ");
let sql = `CALL details_inventory(word);`;
let res;
console.log(sql);
res = await db.query(sql);
res = res[0];
console.table(res);
db.end();
}