Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Русский шрифт в поле таблицы. [YAFIL]


TohaNik ©   (2006-08-31 10:08:00) 

Доброе утро.
По невнимательности забили поле с русским шрифтом.
Можно ли его как-то вычистить.
gfix не помог


sniknik   (2006-08-31 12:51:00) [1]

> Неужели бинарник проще править было.
а я откуда знаю что тебе проще? сужу про тому что читаю... и если написано так что на глаз видны нестыковки то и вывод по ним (а что ты там в реале делал никому не ведомо).
вот если бы было написано "взял запросы ... , выполнил в ..., получил такие ошибки ... " т.д. (в общем то что в реале), то и суждения/выводы были бы другие.


Desdechado   (2006-08-31 12:49:00) [2]

> в имени поля никаких приведений к верхнему/нижнему регистру быть не может
В первом диалекте все к верхнему приводится автоматом. Вот только не помню, кажется, русские буквы там не катят.


TohaNik   (2006-08-31 12:46:00) [3]


> sniknik ©   (31.08.06 12:33) [11]


Еще раз извиняюсь за свою невнимательность.

> запросы даже опробованы не были... была просто иззначальная
> уверенность автора топика в их неработоспособности...


Неужели бинарник проще править было.


sniknik   (2006-08-31 12:46:00) [4]

> alter table shipments_doc drop "ЗФН_ВЩС" - выполнился.
> Не выполнялся этот - alter table shipments_doc drop "зфн_вщс"
ну правильно, если нельзя определить что за язык, в имени поля то никаких приведений к верхнему/нижнему регистру быть не может, выполняется битовое сравнение. (и ошибка тогда "поле не найдено", а вовсе не "не определяются метаданные")


Desdechado   (2006-08-31 12:44:00) [5]

> Не выполнялся этот - alter table shipments_doc drop "зфн_вщс"
Для третьего диалекта важен регистр символов в метаданных. Поэтому в кавычках нужно указываать в точности так, как в БД.


Desdechado   (2006-08-31 12:42:00) [6]

sniknik ©   (31.08.06 12:33) [11]
Не знаю насчет остальных, мне проверять лениво было. Просто неточность указал, которая сразу в глаза бросилась.
А алиасы здесь использовать так:
UPDATE Table1 T SET T.PAY_DOC = T."ЗФН_ВЩС"
Просто использование кавычек разрешено для строковых констант для совместимости с предыдущими версиями, но не приветствуется. Кавычки зарезервированы для использования в 3-м диалекте для работы с метаданными.


TohaNik   (2006-08-31 12:38:00) [7]

sniknik ©   (31.08.06 12:02) [9]
Ты прав что мои
Да уж невнимательность:(

Вот на "битой" оставшейся копии еще раз выполнил
alter table shipments_doc drop "ЗФН_ВЩС" - выполнился.

Не выполнялся этот - alter table shipments_doc drop "зфн_вщс"


sniknik   (2006-08-31 12:33:00) [8]

Desdechado ©   (31.08.06 12:07) [10]
но ведь сработало бы, да результат был бы не тем что ожидался (лажанулся... просто привык к mssql/access там кавычки для строк и таких полей разделены и однозначны, а алиасами для этих целей с BDE не пользовался)
но запрос ALTER TABLE Table1 DROP "ЗФН_ВЩС" приняло бы однозначно (в смысле что "ЗФН_ВЩС" это имя поля) и без алиаса.

но тем не менее жалоб на неверно заполненное поле не поступало (с ошибкой на третьем запросе...), вместо этого была повторная жалоба на "не определяются метаданные", т.е. как теперь понимаю запросы даже опробованы не были... была просто иззначальная уверенность автора топика в их неработоспособности...


Desdechado   (2006-08-31 12:07:00) [9]

> но вообшето сомневаюсь, что мои запросы не сработали
Вот этот UPDATE Table1 SET PAY_DOC = "ЗФН_ВЩС"просто заполнит поле PAY_DOC строкой ЗФН_ВЩС.
Чтобы этого не произошло, надо алиас использовать.


sniknik   (2006-08-31 12:02:00) [10]

> Не проходит, не определяются метаданные с русскими символами в скриптах.
> Неужели штатными средствами не лечится?
нет яффила чтобы проверить (да и не охота, давно заменил на firebird (использую для проб)) может в нем это и считается ошибкой... в firebird (да и в IB насколько знаю) для указания/обрашения к полю с нестандартным названием (пробелы в имени/локализованные/символьные названия/зарезервированные) достаточно указать его в кавычках (что и видно в приведенных в [6] запросах)

и еще, насколько знаю, сама база(формат) там не сильно от FB отличается (поддерживать во всяком случае FB его должна), т.е. можно было бы открыть ее пусть ембедед версией FB и прогнав эти запросы исправить "глюк".

но вообшето сомневаюсь, что моизапросы не сработали (даже на яфиле), не сработали твои, т.к. скорее всего ты их исправил по своему разумению и убрал кавычки в нужных местах... (либо др. ошибки внес)


TohaNik   (2006-08-31 11:36:00) [11]


> sniknik ©   (31.08.06 10:44) [6]

Не проходит, не определяются метаданные с русскими символами в скриптах.
Неужели штатными средствами не лечится?
Подправил hex редактором (спасибо Desdechado)


Desdechado   (2006-08-31 10:46:00) [12]

Тогда не в поле, а в имени поля.
ALTER TABLE xxx DROP yyy - не подходит? Или там нужно сохранить данные?
Тогда тупо в бинарнике hex-редактором эту комбинацию замени во всех местах.


sniknik   (2006-08-31 10:44:00) [13]

> ну а вычистить - удалить.
может заменить? и чего сразу в системные таблицы лезть? хочеш "убить" базу "насмерть"?

ALTER TABLE Table1 ADD PAY_DOC VarChar(30)

UPDATE Table1 SET PAY_DOC = "ЗФН_ВЩС"

ALTER TABLE Table1 DROP "ЗФН_ВЩС"


TohaNik   (2006-08-31 10:41:00) [14]


> Sergey13 ©   (31.08.06 10:35) [4]

А как удалять? При попытке прочитать запись - переполнение.


Sergey13   (2006-08-31 10:35:00) [15]

> [2] TohaNik ©   (31.08.06 10:25)

ИБЭксперт не удаляет?


TohaNik   (2006-08-31 10:27:00) [16]

извиняюсь
не в RDB$RELATION_CONSTRAINTS а в RDB$RELATION_FIELDS


TohaNik   (2006-08-31 10:25:00) [17]


> Sergey13 ©   (31.08.06 10:12) [1]
> Что значит "забили" и что значит "вычистить"?

FIELD NAME = 'ЗФН_ВЩС',  а д.б. 'PAY_DOC'

ну а вычистить - удалить.
В RDB$RELATION_CONSTRAINTS не читается, собственно что и не удивительно.


Sergey13   (2006-08-31 10:12:00) [18]

Что значит "забили" и что значит "вычистить"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо