Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Структура файла БД повреждена? / 15 сообщений из 15, страница 1 из 1
06.08.2014, 21:34
    #38714547
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Обнаружил проблему с файлом БД. В коде собственного приложения есть процедуры удаления записей из таблиц и вакуума.
Используемый движок - от synopse.info
По нужде возникла необходимость поизвлекать данные с помощью matlab-а и SQLiteStudio v2.1.2 и были обнаружены "левые" строки.
При попытке выполнить
Код: sql
1.
delete FROM r_tau WHERE izm_time = 997028


SQLiteStudio сообщает, что удалено 15 строк. Это и есть левые.
Но удаление по факту не происходит, и выполнение
Код: sql
1.
SELECT * FROM r_tau WHERE izm_time = 997028


возвращает эти же 15 строк. Подозреваю, что и движок их таким же образом "удалил".
Выполнение повторного удаления сообщает, что нет записей, удовлетворяющих условиям.
Тем не менее, удаление всех строк, без условий, выполняется корректно во всех таблицах. Т.е. коммит происходит, но вакуум не меняет размер файла.
В SQLite Expert-е тоже самое, за исключением того, что "удаленные" им записи видны для SQLiteStudio.
Коллеги, ваше мнение, что происходит с файлом ?
...
Рейтинг: 0 / 0
06.08.2014, 22:56
    #38714589
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег Третьяков,

Какое-то волшебство с типами. Приатачил новую базу, слил исходные данные с r_tau в новую, аналогичный эффект.
Ещё интересность, работаю через SQLite Expert (sqlite3.dll 3.8.4.1)
Код: sql
1.
2.
select * from r_tau where r_tau.izm_time between 612 and 614 -- Находит с значением 613
select * from r_tau where r_tau.izm_time = 613 -- Не находит
...
Рейтинг: 0 / 0
07.08.2014, 15:02
    #38714985
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Может быть, есть смысл обновиться до актуальной версии ?
...
Рейтинг: 0 / 0
08.08.2014, 11:11
    #38715707
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
VSVLADОлег Третьяков,

Какое-то волшебство с типами. Приатачил новую базу, слил исходные данные с r_tau в новую, аналогичный эффект.
Ещё интересность, работаю через SQLite Expert (sqlite3.dll 3.8.4.1)
Код: sql
1.
2.
select * from r_tau where r_tau.izm_time between 612 and 614 -- Находит с значением 613
select * from r_tau where r_tau.izm_time = 613 -- Не находит



покажи определение таблицы r_tau
...
Рейтинг: 0 / 0
08.08.2014, 19:04
    #38716341
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
MaratIsk,

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE R_TAU (
	RPOS 	  INTEGER 	  DEFAULT ( 0 ), 
	IZM_TIME  INTEGER         DEFAULT ( 0 ),
	IZM_NUM   INTEGER         DEFAULT ( 0 ),
	TEMPR     NUMERIC( 5, 2 ) DEFAULT ( 0 ), 
	FREQ      DOUBLE          DEFAULT ( 0 ) 
);
...
Рейтинг: 0 / 0
08.08.2014, 21:24
    #38716389
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
VSVLADMaratIsk,

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE R_TAU (
	RPOS 	  INTEGER 	  DEFAULT ( 0 ), 
	IZM_TIME  INTEGER         DEFAULT ( 0 ),
	IZM_NUM   INTEGER         DEFAULT ( 0 ),
	TEMPR     NUMERIC( 5, 2 ) DEFAULT ( 0 ), 
	FREQ      DOUBLE          DEFAULT ( 0 ) 
);



могу предположить, что в IZM_TIME ты записываешь время, а оно дробное значение
если возможно дай таблицу с проблемными данными
...
Рейтинг: 0 / 0
08.08.2014, 21:26
    #38716390
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
MaratIsk,

Я ничего не записываю, я не автор топика А файл с БД ТС прикрепил в первом посте
...
Рейтинг: 0 / 0
08.08.2014, 21:49
    #38716396
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег ТретьяковОбнаружил проблему с файлом БД. В коде собственного приложения есть процедуры удаления записей из таблиц и вакуума.
Используемый движок - от synopse.info
По нужде возникла необходимость поизвлекать данные с помощью matlab-а и SQLiteStudio v2.1.2 и были обнаружены "левые" строки.
При попытке выполнить
Код: sql
1.
delete FROM r_tau WHERE izm_time = 997028


SQLiteStudio сообщает, что удалено 15 строк. Это и есть левые.
Но удаление по факту не происходит, и выполнение
Код: sql
1.
SELECT * FROM r_tau WHERE izm_time = 997028


возвращает эти же 15 строк. Подозреваю, что и движок их таким же образом "удалил".
Выполнение повторного удаления сообщает, что нет записей, удовлетворяющих условиям.
Тем не менее, удаление всех строк, без условий, выполняется корректно во всех таблицах. Т.е. коммит происходит, но вакуум не меняет размер файла.
В SQLite Expert-е тоже самое, за исключением того, что "удаленные" им записи видны для SQLiteStudio.
Коллеги, ваше мнение, что происходит с файлом ?

у тебя в поле TEMPR - недопустимое значение

это выдал мой код
DoCommand: ''5, 2'' is not a valid integer value
...
Рейтинг: 0 / 0
08.08.2014, 21:52
    #38716398
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Коллеги, приветствую.
MaratIsk, время пишется с миллисекундах от времени старта процесса, поэтому Int.
Ссылка на файл действительная, есть в первом посте.
...
Рейтинг: 0 / 0
08.08.2014, 21:55
    #38716400
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег ТретьяковКоллеги, приветствую.
MaratIsk, время пишется с миллисекундах от времени старта процесса, поэтому Int.
Ссылка на файл действительная, есть в первом посте.

так мой код обнаружил некорректность данных
...
Рейтинг: 0 / 0
08.08.2014, 22:00
    #38716401
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
MaratIsk,
Ты меня опередил)
Допустим, хотя отображается корректно с соблюдением размерности. Но как это мешает поиску и удалению данных? Ведь поле TEMPR не участвует критериях отбора.
...
Рейтинг: 0 / 0
08.08.2014, 23:43
    #38716426
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег ТретьяковMaratIsk,
Ты меня опередил)
Допустим, хотя отображается корректно с соблюдением размерности. Но как это мешает поиску и удалению данных? Ведь поле TEMPR не участвует критериях отбора.

совсем не обязательно, что именно поле TEMPR содержит некорректное значение
завтра попробую определить поле и запись
...
Рейтинг: 0 / 0
09.08.2014, 00:11
    #38716435
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег Третьяков,

"TEMPR" NUMERIC( 5, 2 ) DEFAULT (0)

вот это SQLite3 не понимает
скопировано из Interbase/FireBird ?
...
Рейтинг: 0 / 0
09.08.2014, 00:18
    #38716436
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
Олег Третьяков,

измени на

Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE r_tau2 (
    RPOS INTEGER DEFAULT (0),
    IZM_TIME INTEGER DEFAULT (0),
    IZM_NUM INTEGER DEFAULT (0),
    [color=red]TEMPR FLOAT DEFAULT 0[/color],
    FREQ DOUBLE DEFAULT (0)
)



сделай

Код: plsql
1.
2.
insert into r_tau2
select * from r_tau



и посмотри результат
...
Рейтинг: 0 / 0
09.08.2014, 01:34
    #38716452
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура файла БД повреждена?
MaratIskизмени на... и посмотри результат
%ля, работает правильно. Но какого хрена?!
MaratIskскопировано из Interbase/FireBird ?
Скорее отсюда , поэтому сразу и не смутило.
Да и здесь упомянуто про совместимость, но как-то размыто.
Спасибо большое! А то бы я еще багов насобирал.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Структура файла БД повреждена? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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