AIR SQLite IN выражение не работает - PullRequest
1 голос
/ 15 марта 2010

У меня проблема с выражением в выражении sql в SQLite для Adobe AIR

в основном у меня есть это

sql = "UPDATE uniforms SET status=@status WHERE customerId IN(19,20)";
updateStmt.parameters["@status"] = args[1];
updateStmt.execute();

если я запускаю приведенный выше код, он работает, обновляя статус, когда идентификаторы равны 19 и 20

но если я передам список идентификаторов в качестве параметра, подобного этому

sql = "UPDATE uniforms SET status=@status WHERE customerId IN(@ids)";
updateStmt.parameters["@status"] = args[1];
updateStmt.parameters["@ids"] = "19,20";
updateStmt.execute();

это дает мне и ошибку, говоря, что не удалось преобразовать текстовое значение в числовое значение, что имеет смысл, потому что я передаю и строку, но выражение IN должно преобразовать его соответственно, как это происходит, когда я передаю значения списка напрямую, почему не работает, спасибо за любую помощь!

1 Ответ

0 голосов
/ 15 марта 2010

Не уверен, но я думаю, что проблема в том, что ваш параметр @ids должен быть массивом при его использовании следующим образом. Попробуйте

updateStmt.parameters["@ids"] = new Array(19,20);
...