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

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

Изменение типа поля [D7, MSSQL]


Страницы:   1 2

VadimSpb ©   (2006-05-04 11:01:00) 

Изменяю типы некоторых полей запросом при открытии программы. Собственно, этого действия достаточно один раз. Как проверить тип поля и если надо изменить?


VadimSpb   (2006-05-05 00:20:00) [1]

Поймал гада.
Работает так:
SELECT name FROM sysobjects WHERE id =(SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'Payments') AND name = 'TYPE')
В результате имеем имя ограничения для данного поля (Type) для данной таблицы (Payments).
Предполагаю, что запрос д.б. проще через INFORMATION_SCHEMA ...


VadimSpb   (2006-05-04 23:57:00) [2]


> INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

Не катит. возвращает со всей таблицы только один первичный ключ. Он хороший и трогать его не надо. Мусор в виде других ограничений (папка CONSTRAINTS) не виден. :-((((

> но все-таки отдельным патч-модулем, который может запускаться
> программой при старте для проверки-корректировки БД

Разумно. Теперь уже придется так и делать - изменей со временем все больше.


Nikolay M.   (2006-05-04 18:24:00) [3]


> Я имею ввиду компактный материал.


Лучше БОЛ материала нет. Ничего лишнего в нем тоже нет.


VadimSpb   (2006-05-04 16:37:00) [4]


> INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

Спасибо, посмотрю.
Есть ли ссылка или эл. док., где сжато все это собрано?
БОЛ мне известен. Я имею ввиду компактный материал.


Nikolay M.   (2006-05-04 15:04:00) [5]


> можно ли получить список имен ограничений для данного поля?


INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
?

:)))


Desdechado   (2006-05-04 13:42:00) [6]

еще раз - по системным таблицам
имена и типы ограничений, а также на что именно


VadimSpb   (2006-05-04 13:40:00) [7]

Я подозреваю, что имена ограничений для данного поля в разных БД м.б. различны. Отсюда вопрос: можно ли получить список имен ограничений для данного поля?


Sergey13   (2006-05-04 13:33:00) [8]

2[17] VadimSpb   (04.05.06 13:29)
Кошмар!


VadimSpb   (2006-05-04 13:29:00) [9]

В том то и дело. Часть юзеров сами наэкспортировали втупую. А БД показывать не хотят.


Desdechado   (2006-05-04 13:19:00) [10]

узнать по системным таблицам

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


Sergey13   (2006-05-04 13:18:00) [11]

2[14] VadimSpb   (04.05.06 13:14)
> А если надо снять ограничения только на конкретное поле и имени этого ограничения мы не знаем?
Если имени его не знаете, то может и назначения тоже не знаете? Может и не делать этого совсем?


VadimSpb   (2006-05-04 13:14:00) [12]


> ALTER TABLE ... DROP CONSTRAINT

А если надо снять ограничения только на конкретное поле и имени этого ограничения мы не знаем?


Sergey13   (2006-05-04 13:07:00) [13]

2[5] VadimSpb   (04.05.06 11:28)
> По ряду причин это неудобно.
Понимаю. Гораздо проще при каждом запускелопатить системные таблицы и/или блокировать пользовательские. То-же метод.


Desdechado   (2006-05-04 13:01:00) [14]

ALTER TABLE ... DROP CONSTRAINT


VadimSpb   (2006-05-04 12:55:00) [15]


> наверно
> PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK

Нет, поля не имеют ограничений :-(((
Наверное что-то с Ацесса тянется - оттуда экспортировалось.
Как в поле очистить все ограничения запросом?


Desdechado   (2006-05-04 12:41:00) [16]

наверно
PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK

а изменения делаются через ALTER TABLE
но все-таки отдельным патч-модулем, который может запускаться программой при старте для проверки-корректировки БД


VadimSpb   (2006-05-04 12:22:00) [17]


> Побывав бы !

Не понял.
Что эа ограничения в таблицах(в папке Constraints) появились и откуда?


MsGuns   (2006-05-04 12:18:00) [18]

>'DF_Table_Pole_36B12243'

Побывав бы !


VadimSpb   (2006-05-04 12:06:00) [19]

Nikolay M. ©   (04.05.06 11:34) [6]
Спасибо, попробую.
Подскажите, что за ошибка вылезает при изменении некоторых полей:
'DF_Table_Pole_36B12243' is dependent on column 'Pole'?
Поле ни с каким не связано.


Nikolay M.   (2006-05-04 11:34:00) [20]


> > INFORMATION_SCHEMA.COLUMNS
>
> Как этим пользоваться?


SELECT * FROM master.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'syslogins'


Страницы:   1 2

Наверх

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