Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
1

Как изменить длину поля?

10.08.2011, 15:49. Показов 2461. Ответов 14
Метки нет (Все метки)

Как это не смешно, но не могу придумать, как штатными средствами изменить длину стрингового поля БД физически. а не представления. Просить людей прислать базы на переделку не выход. Как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2011, 15:49
Ответы с готовыми решениями:

Как изменить длину выподающего поля ComboBox-а?
Люди! I need help. Как изменить размеры(горизонтальный) выподающего поля ComboBox-а не зависимо от...

1С 8.1 Как изменить длину кода
Подскажите,пожалуйста, как в 1С 8.1 изменить длину кода номенклатуры? И не работает поиск по коду...

Как изменить цвет и длину
Здравствуйте. У меня есть код, по которому линии двигаются вокруг точки. И я не знаю как сделать,...

Как изменить длину Label
Задание состоит в том, чтоб вставить пропущенную букву в слове. Вводится буква будет в label,...

14
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
10.08.2011, 18:25 2
Гуглим - Ключевые слова: DDL, ALTER TABLE
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
11.08.2011, 10:19  [ТС] 3
Спасибо, но про это я знаю. Проблема в том, что создавать поля и таблицы получается, а вот изменять существующие поля - уже нет, выдаёт ошибку в операторе. Победить её не удалось, alter column так и не заработало.
0
712 / 400 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
11.08.2011, 10:39 4
Если получается создавать - пишем манюненький скриптик:
1. Создаем новое поле с параметрами прежнего
2. Скидываем в него данные
3. Удаляем старое поле
4. Создаем новое поле со старым именем и нужными параметрами
5. Скидываем в него сохраненные данные.
6. Прыгаем, радуемся, хлопаем в ладоши
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
11.08.2011, 10:52  [ТС] 5
F как поле поместить на прежнее место? Т.е. было оно номер 7 в списке полей, а стало последним. Переписывать все добавлялки и редактировки (писались давно, о том, что может меняться порядок полей знал, но не верил, глупый совсем был) - не выход, проще создать новую таблицу правильную и перенести туда все записи....
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 572
Записей в блоге: 2
11.08.2011, 11:12 6
Цитата Сообщение от izebra21 Посмотреть сообщение
все добавлялки и редактировки
не должны пострадать... по крайней мере скл - запросы должны работать и делать в точности то же самое... они же используют только названия полей.
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
11.08.2011, 11:23  [ТС] 7
alexan0308, в том то и дело, что работают не скл запросы, а разного рода АппендРекорд итд... Где важен именно порядок полей...
0
1262 / 705 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
11.08.2011, 12:27 8
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Прыгаем, радуемся, хлопаем в ладоши
Если, конечно, у модифицируемого поля нет зависимостей. А если есть, то эмоции буюут совсем другими!

Добавлено через 1 минуту
Цитата Сообщение от izebra21 Посмотреть сообщение
а разного рода АппендРекорд итд... Где важен именно порядок полей
Даже интересно, что это за приложения, в которых операции основываются на порядке следования полей!

Добавлено через 1 минуту
Цитата Сообщение от izebra21 Посмотреть сообщение
а вот изменять существующие поля - уже нет, выдаёт ошибку в операторе
Текст сообщения можете привести?
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
11.08.2011, 12:47  [ТС] 9
Цитата Сообщение от SAMZ Посмотреть сообщение
Если, конечно, у модифицируемого поля нет зависимостей
Нету.
Цитата Сообщение от SAMZ Посмотреть сообщение
Даже интересно, что это за приложения, в которых операции основываются на порядке следования полей!
В смысле? Любой AppendRecord завязан на положение полей в записи. Напомню:
Цитата Сообщение от izebra21 Посмотреть сообщение
(писались давно, о том, что может меняться порядок полей знал, но не верил, глупый совсем был
И всё же - как сменить порядок поля в таблице? Или длину существующего поля.

Добавлено через 7 минут
Цитата Сообщение от SAMZ Посмотреть сообщение
Текст сообщения можете привести?
'Invalid use of keyword'. Tolken: ALTER Line Number:2

Это выдаётся на запрос:

ALTER TABLE Trip add c_temp char(10);
ALTER TABLE Trip ALTER COLUMN c_temp char(100);

А так же на то же, но без column, на drop...
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
11.08.2011, 14:25 10
тип СУБД надо по обыкновению клещами из рота вытаскивать ?
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
11.08.2011, 14:31  [ТС] 11
MsGuns, Извините, Paradox.
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
12.08.2011, 10:15 12
Ну это проще в том смысле что бизнес-логики (и ограничений соотв-но) у парадокса нет. Поэтому при модификации таблицы самые тяжкие последствия - это потеря данных. Чтобы ее не было рекомендуется программное изменение типа поля (или одной из его характеристик) делать так:
1) Создание пустой таблицы на базе имеющейся запросом типа

Select 1,2,3,4,cast(5 as character(nnnn)) as 5,6...
from MyTable where 1=1

Здесь поле с условным именем 5 то самое, длину которого нужно изменить

В результате создастся Answer с нужной структурой и всеми данными.

Дальше:
-Удаляем MyTable
-Переименовывем Answer в MyTable
-Вешаем на MyTable PK и индексы

Конечно, есть и другие способы, начиная от методов TTable и заканчивая прямыми вызовами BDE dboxxxx, но этот ИМХО самый простой и, главное, надежный
0
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
12.08.2011, 11:32  [ТС] 13
MsGuns, ага, примерно так и сделал уже. Всем спасибо.
0
4 / 4 / 0
Регистрация: 16.08.2011
Сообщений: 169
16.08.2011, 18:17 14
За ширину колонок отвечает свойство DisplayWidth.
Посмотрите сайт по адресу http://x3vs76dte1.narod2.ru/.
Может быть поможет.
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
16.08.2011, 20:40 15
Не поможет, потому что сабж про свойство поля в таблице БД, а Вы - про свойство класса, отвечающего за отображение поля БД.

Добавлено через 31 секунду
оотвечающее за отображение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2011, 20:40

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как установить тип символов и длину поля.
Где в А2000 можно установить тип символов, длину поля. Допустим надо установить параметр поля...

Как считать всю длину MEMO-поля и обработать ее по моему алгоритму?
Есть MEMO-поле. В программе идет его обработка порционно через переменную типа String (как известно...

Как задать в числовом формате поля длину его целой и дробной части?
Здравствуйте. Как задать в числовом формате поля длину его целой и дробной части?

Как изменить тип поля?
Помогите! Расскажите как программно изменить тип данных в поле. мне не важно как: через макрос,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.