Должен ли я в Titanium Mobile закрыть результаты, заданные перед созданием нового, или он автоматически «закрывается» после того, как нет ссылки на него?Должен ли я закрыть Result Set перед созданием нового?
Например, что-то вроде этой безопасности и утечки памяти?
var db = db.open("db_name");
var rs = db.execute("SELECT * FROM table");
while(rs.isValidRow()){ /* working with the resuls... */ }
// I make another select before closing the previous (current) results set
rs = db.execute("SELECT * FROM another_table");
while(rs.isValidRow()){ /* working with the results... */ }
// Once I am completely done I close the RS and DB
rs.close();
db.close();
Или мне нужно закрыть набор результатов каждый раз, когда требуется новый выбор.
var db = db.open("db_name");
var rs = db.execute("SELECT * FROM table");
while(rs.isValidRow()){ /* working with the resuls... */ }
// Close RS and then initialize a new one
rs.close();
rs = db.execute("SELECT * FROM another_table");
while(rs.isValidRow()){ /* working with the resuls... */ }
rs.close();
db.close();
Спасибо, и что с этим, все в порядке? 'var db = db.open (" ... "), \t someName = db.execute (" SELECT column FROM table WHERE id = 1 "). field (0); // Выбираем только один элемент db.close(); ' – 0101
Вызывая' db.execute() ', вы все равно создаете ресурс, который занимает пространство внутри памяти до тех пор, пока не вызывается' .close() '. Не назначать ресурс переменной не поможет. Также я не понимаю, чего вы пытаетесь достичь. Если вы будете писать open() и close() после каждого запроса, вы создадите какую-нибудь приятную функцию, которая принимает запрос как параметр. – daniula