Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#811: 2011-10-20 20:39:26 ЛС | профиль | цитата
Tad, а если будет ООО "О'Кул"? Или ПБОЮЛ Д'Артаньян?
карма: 1

0
Ответов: 952
Рейтинг: 4
#812: 2011-10-20 20:41:33 ЛС | профиль | цитата
Tad
Огромное спасибо за приведенные примеры. Я так понимаю что это один из наиболее простых методов запрета ввода "вредных" символов.
Непременно изменю свою схему.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#813: 2011-10-20 20:59:05 ЛС | профиль | цитата
iarspider писал(а):
Tad, а если будет ООО "О'Кул"? Или ПБОЮЛ Д'Артаньян?
то будет ООО "О`Кул"? Или ПБОЮЛ Д`Артаньян.
Апостроф - это апостроф, а одиночная кавычка - это одиночная кавычка.
А когда пишущих машинок с украинским шрифтом небыло, то вместо Iван печатали 1ван.
А некоторые вместо Иванов могут напечатать Ивонов. Ну и что ?
no_problems.png

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1no_problems.png [11.1KB] [674]
Ответов: 952
Рейтинг: 4
#814: 2011-10-23 02:03:24 ЛС | профиль | цитата
Возникла необходимость добавить в таблицу БД еще 1 столбец.
Добавил. Свойство - текст. Возникла проблема при внесении изменений в записи.
Именно в старые записи. Если пробовать вносить изменения в записи внесенные уже после появления в таблице нового столбца то все ок.
Т.е. навожусь в стрингтабле на апись, жму редактировать - дочернее окно Редактирование - и для старых записей оно пустое, а для новых все ок.
Я так понимаю что БД сносит крышу из зи "абсолютной пустоты" значений в новом столбце на старых записях?
Как исправить?
Создавал командой - ALTER TABLE имя_таблицы ADD название_столбца тип_данных
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#815: 2011-10-23 09:41:12 ЛС | профиль | цитата
user_asm, там в разных версиях по разному, но где-то встречал, что после ALTER TABLE имя_таблицы ADD название_столбца тип_данных нужно вроде обязательно выполнить VACUUM.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#816: 2011-10-23 11:10:43 ЛС | профиль | цитата
Вакуум не помог
Можно каким то образом в столбце выставить везде одинаковые данные?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#817: 2011-10-23 11:15:22 ЛС | профиль | цитата
UPDATE <имя таблицы> SET <имя колонки>='aaaaa';

Справка по SQLite писал(а):
После выполнения ADD COLUMN, база данных не будет читаться SQLite версии 3.1.3 и ниже, до применения команды VACUUM.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:user_asm
Ответов: 952
Рейтинг: 4
#818: 2011-10-23 11:24:17 ЛС | профиль | цитата
Отлично. Прокатило. Решил поставить дату добавления нового столбца во все ячейки.
Tad, как всегда огромное спасибо за помощь.
------------ Дoбавленo в 11.24:
А еще такой вопрос есть - передвинуть новый столбец можно? Т.е. передвинуть его в нужное место таблицы, т.к. он добавился, естественно, в конец таблицы.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#819: 2011-10-23 11:42:30 ЛС | профиль | цитата
В SQLite столбец просто не передвинуть.
Только так:
1. Создать временную таблицу с нужным расположением столбцов.
2. Скопировать записи в временную новую таблицу:
INSERT INTO <временная новая таблица> SELECT <перечислить столбцы в нужном порядке> FROM <старая таблица>;
3. Удалить старую таблицу:
DROP TABLE <старая таблица>;
4. Создать таблицу со старым названием, но с новым расположением столбцов.
5. INSERT INTO <вновь созданную таблицу со старым названием> SELECT * FROM <временная новая таблица>;
6. DROP TABLE <временная новая таблица>;
7. VACUUM;
или так (всего за пять ходов )
1. Переименовать старую таблицу:
ALTER TABLE <имя таблицы> RENAME TO <aaaaaaaaaaa>;
2.Создать таблицу со старым названием, но с новым расположением столбцов.
CREATE TABLE <старое название>(<перечислить столбцы в нужном порядке>);
3. Скопировать записи :
INSERT INTO <старое название> SELECT <перечислить столбцы в нужном порядке> FROM <aaaaaaaaaaa>;
4. Удалить <aaaaaaaaaaa> таблицу:
DROP TABLE <aaaaaaaaaaa>;
5. VACUUM

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#820: 2011-10-24 21:34:09 ЛС | профиль | цитата
user_asm, вот http://forum.hiasm.com/forum_serv.php?q=56&id=2708
exe работает без sqlite3.dll
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
2
Голосовали:user_asm, Konst
Ответов: 1328
Рейтинг: 69
#821: 2011-11-14 03:39:02 ЛС | профиль | цитата
Tad, а подскажи как увеличить текущее значение поля типа time на 1 секунду?
UPDATE temp SET time='time+1'
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#822: 2011-11-14 10:46:10 ЛС | профиль | цитата
Konst, какой тип поля time (text,real,integer) и что ты туда пишешь и в каком формате?
В смысле дату полностью в формате Y-M-D h:m:s, только время (h:m:s) и т.д.
Если в real (формат WINDOWS), то UPDATE temp SET time=time+1/86400;
Если в integer (формат UNIX), то UPDATE temp SET time=time+1;
Вопрос конкретней нужно поставить.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1328
Рейтинг: 69
#823: 2011-11-14 13:40:02 ЛС | профиль | цитата
Tad писал(а):
какой тип поля time (text,real,integer) и что ты туда пишешь и в каком формате?
В смысле дату полностью в формате Y-M-D h:m:s, только время (h:m:s)


тип поля time формат h:m:s

CREATE TABLE [temp] (
[id] INTEGER PRIMARY KEY AUTOINCREMENT NULL,
[vtime] TIME NULL,
[seiz] FLOAT NULL,
[name] TEXT NULL,
[show] INTEGER NULL,
[type] INTEGER NULL
)

карма: 2

0
файлы: 1code_25790.txt [178B] [278]
Ответов: 16884
Рейтинг: 1239
#824: 2011-11-14 20:50:13 ЛС | профиль | цитата
#pas
UPDATE temp SET vtime = time(strftime('%s',vtime)+1, 'unixepoch');
а вот зачем оно тебе, убей - не понимаю.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Konst
Ответов: 1328
Рейтинг: 69
#825: 2011-11-15 19:16:12 ЛС | профиль | цитата
Tad, спасибо, то что нужно
карма: 2

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)