Вход

Просмотр полной версии : SQLite не воспринимает числа


SorryHanzoMain
04.08.2018, 20:48
У меня есть таблица. В ней есть столбик ''определение''. В него при помощи кода
client.on("message", request => {
const REQUIRED_PREFIX='?';
const message=request.content.toString().trim();

if(message.substr(0,1)!==REQUIRED_PREFIX)
return false
request.reply('Bad request');

sql.run("INSERT INTO вопросы (определение) VALUES (?)" ,[test]);
sql.run('INSERT INTO вопросы (вопрос) VALUES (?)',[message]);


return request.reply('Saved successfully');
});
Должно попадать число, создаваемое этим кодом
function rand ( min, max, except ) {
var number = except;
while (number == except) {
number = Math.floor( Math.random() * ( max + 1 - min ) + min );
}
return number;
}

var test = [];
while ( test.length < 9 ) {
test.push( rand( 1, 8, 0 ) ); // от 1 до 5 включительно, но кроме 4
}
Число создается, но в таблицу оно вносится как пустое место. Строка появляется, а само число нет.Хотя сообщение в таблицу попадает. И вопрос тем кто хорошо знаком с sqlite. Это число будет сравниваться с другим числом. Когда я вытащу из таблицы "определение" сравнение будет со всеми числами(если так то все сразу или по очереди) или одно число(какое по номеру в таблице)?

Белый шум
04.08.2018, 22:20
Должно попадать число, создаваемое этим кодом
говорите про число, а суёте ему массив чисел...

SorryHanzoMain
04.08.2018, 23:34
Белый шум
Да я заметил, что цифры в чат идут не строкой, а столбцом. Как можно переделать этот код. Я новичок и сам код взял как самый подходящий не для сайта.

SorryHanzoMain
04.08.2018, 23:39
говорите про число, а суёте ему массив чисел...
Самое интересное, если я напишу message+test то сработает. Сообщение
будет вместе с числами.

Белый шум
04.08.2018, 23:58
sql.run("INSERT INTO вопросы (определение) VALUES (?)" ,[""+test]);
Варианты:
test.toString()
test.join(",")

SorryHanzoMain
05.08.2018, 00:01
sql.run("INSERT INTO вопросы (определение) VALUES (?)" ,[""+test]);
Варианты:
test.toString()
test.join(",")
А в чём будет принципиальная разница?

Белый шум
05.08.2018, 00:33
да ни в чём. Первый вариант короче, но использует неявное преобразование. Второй - явное. Используйте тот вариант, который вам понятнее.

SorryHanzoMain
05.08.2018, 00:38
Большое спасибо за помощь.