Вниз
Скачать: CL | DM;

conversion from string   Найти похожие ветки 

← →
Blunder ©   (2002-10-18 21:22) [0]

IB 5
Проблема в следующем. было поле для хранения дат типа VARCHAR(10)
с помощью
update RDB$FIELDS set
RDB$FIELD_TYPE = 35,
RDB$FIELD_LENGTH = 8,
RDB$CHARACTER_LENGTH = NULL,
RDB$CHARACTER_SET_ID = NULL
where RDB$FIELD_NAME = "RDB$106"
превратил это поле в DATE,всё прошло успешно, но как выяснилось в этом поле хранились некорректные данные для некоторых записей типа "31.02.2002" или "20.14.2000"
в DATE все преобразовалось, но DATE с такими косяками естественно не дружит и теперь при любом обращении к записям с таким косяком естественно вылазит invalid conversion from string.
Что делать таким же способом в VARCHAR(10) переделать тоже не дает видимо по той же причине.


← →
Anatoly Podgoretsky ©   (2002-10-18 21:43) [1]

Определи эти записи и запиши в них нормальные даты


← →
Blunder ©   (2002-10-18 21:56) [2]

не могу, записи определил, при любой попытке обращения к ним говорит conversion from string.


← →
Anatoly Podgoretsky ©   (2002-10-18 22:00) [3]

А ты пробовал для этой записи сделать UPDATE


← →
Blunder ©   (2002-10-18 22:07) [4]

обижаешь :)) конечно пробовал пишет всё ту же фразу, если бы не это я бы в форум не писал бы, может можно как то его обратно к варчару привести исправить и вернуть ???


← →
Anatoly Podgoretsky ©   (2002-10-18 22:09) [5]

Тогда попытка удаления или скажем ремонта базы, вроде бы есть такая утилита.


← →
Blunder ©   (2002-10-19 00:01) [6]

ни фига с этим полем не делается кроме drop :(((


← →
Johnmen ©   (2002-10-19 01:54) [7]

Это называется "Доигрался хрен на скрипке" !
Вот ответь, какого ... тебя понесло в системные таблицы ?
Что, по-хорошему не мог решить проблему ?


← →
Anatoly Podgoretsky ©   (2002-10-19 11:54) [8]

Делаем резюме
Просмотреть нельзя
Изменить нельзя
удалить нельзя
ремонту не поддается

Делаем вывод
таблицу или поле в могилу

Причина
Johnmen © (19.10.02 01:54)


← →
kaif ©   (2002-10-19 20:28) [9]

Напиши специальное приложение, которое одну за другой запрашивает записи из этой таблицы (по одной). Для тех записей, что прочитались - копирует дату в нормальное поле даты (создай его). Для тех, что дали сбой при чтении в секции try-except-end обходи эту ошибку, чтобы цикл не вылетал. Если у тебя даже миллион записей, то за час машина справится с такой задачей.
Затем удали старое поле с помощью DROP.

Приложение пишется за 5 минут. Овчинка выделки стоит.


← →
Blunder ©   (2002-10-21 19:46) [10]

я уже почти так и сделал, только я UDF написал которая получает дату, проверяет её на правильность и если правильная то возвращает, а если не то присваивает значение 01.01.1000 и
потом сделал alter table FOLDERS add TMP date computed by (datecorr(FOLDER_date));

DATECORR это UDF.
Вобщем всё получилось, большое спасибо за подсказки.


← →
kaif ©   (2002-10-22 12:04) [11]

Ты нашел более красивое решение.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
14-34202
Rouse_
2002-10-22 12:04
2002.11.11
Скиньте плз на мыло msdn.hxa от MSDN за январь 2002


1-34062
Bomberman
2002-10-30 16:52
2002.11.11
Список дисков равен списку пунктов меню.


1-33983
Дмитрий К.К.
2002-11-01 08:46
2002.11.11
Еще раз о создании компонентов в RUN-TIME


1-33937
Cr@sh
2002-10-31 19:04
2002.11.11
Работа с Word`ом


1-33950
danilka
2002-11-01 11:03
2002.11.11
как в stringgrid или в drawgrid сделать любую ячейку fixed? :))




   Наверх