powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Запись LONG в sqllite. То ли лыжи не едут, то ли ...
12 сообщений из 12, страница 1 из 1
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040238
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь записать в SQLite текущую дату в unix формате, но получается какая-то ерунда. Документация вроде как пишет, что INTEGER может "расширяться" до 8 байт, то-есть значение типа LONG должно прекрасно в себе умещать.
По факту же new Date().getTime() возвращает 1441091125091, а в соответствующее поле в БД пишется -2017886365.
Где туплю ?
Можно, конечно, записывать не в мс, а в сек, но хотелось бы просто разобраться.
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040252
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня все нормально вставляется, правда я попробовал не на устройстве, а в локальной базе. впрочем глупо предполагать, что в sqlite невозможно хранить long. однако независимо от - проще хранить в секундах, поскольку функции для работы с датой в sqlite тоже работают с секундами
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040454
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спокойно работаю с такими датами в long и храню их в sqlite
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040481
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибсспокойно работаю с такими датами в long и храню их в sqlite+1
(даты храню как раз в миллисекундах - т.е. явные long-и)
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040582
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ерунда какая-то..
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040619
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой функцией устанавливаете параметр. ?
на сколько я понимю для SqlLite все равно какой тип поля ( можно спокойно хранить строки в INTEGER )
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040892
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создание таблицы:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + DB_TABLE_SIGNALS
                + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
                + "number TEXT UNIQUE NOT NULL, "
                + "file TEXT NULL, "
                + "date INTEGER NOT NULL, "
                + "complite_status INTEGER DEFAULT 0);");
    }



Запись строки:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    private void writeItemToDb(String str) {
        DbHelper dbHelper =                         new DbHelper(getActivity(), Settings.DB_NAME, Settings.DB_VERSION);
        SQLiteDatabase db =                         dbHelper.getWritableDatabase();

        long currentTimeInSeconds =                 new Date().getTime() / 1000;

        db.execSQL("INSERT OR REPLACE INTO " + DbHelper.DB_TABLE_SIGNALS + " (number, date) " +
                "VALUES (" +
                str + ", " +
                currentTimeInSeconds + ")");
        dbHelper.close();
    }
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040963
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshunСоздание таблицы:


Запись строки:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    private void writeItemToDb(String str) {
        DbHelper dbHelper =                         new DbHelper(getActivity(), Settings.DB_NAME, Settings.DB_VERSION);
        SQLiteDatabase db =                         dbHelper.getWritableDatabase();

        long currentTimeInSeconds =                 new Date().getTime() / 1000;

        db.execSQL("INSERT OR REPLACE INTO " + DbHelper.DB_TABLE_SIGNALS + " (number, date) " +
                "VALUES (" +
                str + ", " +
                currentTimeInSeconds + ")");
        dbHelper.close();
    }



попробуйте
Код: java
1.
2.
3.
4.
        db.execSQL("INSERT OR REPLACE INTO " + DbHelper.DB_TABLE_SIGNALS + " (number, date) " +
                "VALUES (" +
                str + ", " +
                String.valueOf(currentTimeInSeconds)  + ")");


или убедитесь что Java корректно преобразовывает long в String
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39040965
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pand,

или используйте параметры
Код: java
1.
2.
 db.execSQL("INSERT OR REPLACE INTO " + DbHelper.DB_TABLE_SIGNALS + " (number, date) " +
                "VALUES (?,?) ;",  new Object[] {str,currentTimeInSeconds}  );
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39041071
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за совет, но история та же.
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39041207
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshun,

Я делаю insert через SQLiteDatabase.insert(java.lang.String, java.lang.String, android.content.ContentValues) .
Соответственно в ContentValues добавляю long-поля через put(java.lang.String, java.lang.Long) .

Кстати а ты уверен, что данные именно пишутся в базу криво? Может ты их криво потом читаешь?
Попробуй выкачать файл базы с эмулятора и открой его сторонней утилитой (я например в Firefox юзаю плагин "SQLite Manager").
...
Рейтинг: 0 / 0
Запись LONG в sqllite. То ли лыжи не едут, то ли ...
    #39042003
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем это не лыжи не едут, это я дурак :)
Dim666Может ты их криво потом читаешь?
Угу. С помощью getInt() вытаскиваю и сижу довольный))
Спасибо!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Запись LONG в sqllite. То ли лыжи не едут, то ли ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]