update одного поля
update одного поля
Добрый день.
Как мне обновить одно поле в записи оставив остальные поля без изменения?
как-то так работать не желает
[syntax=java5]
String strUPDATE = "UPDATE tbl SET field = false WHERE _id = 1";
db.execSQL(strUPDATE);
[/syntax]
Как мне обновить одно поле в записи оставив остальные поля без изменения?
как-то так работать не желает
[syntax=java5]
String strUPDATE = "UPDATE tbl SET field = false WHERE _id = 1";
db.execSQL(strUPDATE);
[/syntax]
Re: update одного поля
что значит "не хочет"? Поясни
И что значит false? в sqite полей с таким значением нет
И что значит false? в sqite полей с таким значением нет
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: update одного поля
WHERE _id = 1
означает что нужно обновить поле, у которого _id = 1 (где _id - это имя столбца, а 1 - это его значение)
Если нужно обновить весь столбец в таблице, тогда так:
UPDATE tbl SET field = false
или так (если обратить внимание на сообщение Foenix),
UPDATE tbl SET field = 0 // это false
UPDATE tbl SET field = 1 // это true
означает что нужно обновить поле, у которого _id = 1 (где _id - это имя столбца, а 1 - это его значение)
Если нужно обновить весь столбец в таблице, тогда так:
UPDATE tbl SET field = false
или так (если обратить внимание на сообщение Foenix),
UPDATE tbl SET field = 0 // это false
UPDATE tbl SET field = 1 // это true
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: update одного поля
обновился весь столбец.trew писал(а): или так (если обратить внимание на сообщение Foenix),
UPDATE tbl SET field = 0 // это false
UPDATE tbl SET field = 1 // это true
[syntax=sql]
UPDATE tbl SET field = 0[/syntax]
но в true не обновляется почему?
[syntax=sql]
UPDATE tbl SET field = 1[/syntax]
вообще странно что sqlite true и false не поддерживает..
Re: update одного поля
walle
SQLite
Не поддерживается тип boolean. Используйте числа 0 для false и 1 для true.
help
SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).
SQLite
Не поддерживается тип boolean. Используйте числа 0 для false и 1 для true.
help
SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: update одного поля
у меня только так заработало....trew писал(а):WHERE _id = 1
означает что нужно обновить поле, у которого _id = 1 (где _id - это имя столбца, а 1 - это его значение)
Если нужно обновить весь столбец в таблице, тогда так:
UPDATE tbl SET field = false
или так (если обратить внимание на сообщение Foenix),
UPDATE tbl SET field = 0 // это false
UPDATE tbl SET field = 1 // это true
[syntax=java5]
if(chkFavorite.isChecked())
strUPDATE = "UPDATE tblStation SET favorite='true' WHERE title='" + stationValues[position] + "'";
else
strUPDATE = "UPDATE tblStation SET favorite='false' WHERE title='" + stationValues[position] + "'";
[/syntax]
Re: update одного поля
favorite='false'
Значит поле у вас текстовое, а не число.
Такие поля обычно делают числовыми, чтобы компьютер быстрее работал, когда база большая.
Числа компьютер сравнивает быстрее, чем текст.
Программист запоминает для себя, что ноль - это будет false, а единица - true.
Значит поле у вас текстовое, а не число.
Такие поля обычно делают числовыми, чтобы компьютер быстрее работал, когда база большая.
Числа компьютер сравнивает быстрее, чем текст.
Программист запоминает для себя, что ноль - это будет false, а единица - true.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: update одного поля
[syntax=java5]trew писал(а):favorite='false'
Значит поле у вас текстовое, а не число.
db.execSQL("CREATE TABLE 'tblStation' ('_id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
"'id_country' INTEGER NOT NULL ," +
"'id_genre' INTEGER NOT NULL ," +
"'id_language' INTEGER NOT NULL ," +
"'title' NVARCHAR NOT NULL," +
"'description' NVARCHAR NOT NULL," +
"'sourceURL' NVARCHAR NOT NULL , " +
"'favorite' BOOL NOT NULL);"); // DEFAULT 'true'
[/syntax]
Re: update одного поля
walle, запомни такую штуку.. в sqlite, даже если ты объявляешь поле как string или integer, то все равно можешь туда записать все что угодно. Вот такая вот интересная особенность. Это раз.
А два то, что нельзя вписать в поле значение "SET favorite=true", потому что true для sqlite это не служебное слово. Таким образом чтоб оно его воспринимало как текст - нужно заключить это слово в кавычки"SET favorite='true'", если как число - то писать число "SET favorite=1"
И три. "NVARCHAR" - писать там совершенно бесполезно. В sqlite воспример любой "unusual" тип данных
Но все они будут приведены только к таким
http://www.sqlite.org/datatype3.html
по ссылке есть табличка, куда и как преобразовываются все любые типы к этим четырем.
Я не про то, что писать NVARCHAR не нужно.. нужно просто понимать - что разницы между
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
нету совершенно никакой. Поэтому лучше при описании структуры таблицы использовать вышепреведенные типы
TEXT
NUMERIC
INTEGER
REAL
А два то, что нельзя вписать в поле значение "SET favorite=true", потому что true для sqlite это не служебное слово. Таким образом чтоб оно его воспринимало как текст - нужно заключить это слово в кавычки"SET favorite='true'", если как число - то писать число "SET favorite=1"
И три. "NVARCHAR" - писать там совершенно бесполезно. В sqlite воспример любой "unusual" тип данных
Код: Выделить всё
CREATE TABLE ex2(
a VARCHAR(10),
b NVARCHAR(15),
c TEXT,
d INTEGER,
e FLOAT,
f BOOLEAN,
g CLOB,
h BLOB,
i TIMESTAMP,
j NUMERIC(10,5)
k VARYING CHARACTER (24),
l NATIONAL VARYING CHARACTER(16)
);Код: Выделить всё
TEXT
NUMERIC
INTEGER
REAL
NONEпо ссылке есть табличка, куда и как преобразовываются все любые типы к этим четырем.
Я не про то, что писать NVARCHAR не нужно.. нужно просто понимать - что разницы между
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
нету совершенно никакой. Поэтому лучше при описании структуры таблицы использовать вышепреведенные типы
TEXT
NUMERIC
INTEGER
REAL
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198