Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Вниз

Как добавить поле к существующей таблице   Найти похожие ветки 

 
JS   (2002-10-03 17:09) [0]

Как добавить поле к существующей таблице? пробовал Table1.AddIndex(...) выдает какие-то ошибки синтаксеса...
Как сделать по-умному? (и примерчик желательно! с описанием)


 
Prooksius   (2002-10-03 17:22) [1]

Table1.Fields.Add(YourField)


 
MsGuns   (2002-10-03 17:27) [2]

AddIndex не добавляет поля к существующему датасету (не к физ.таблице), а добавляет индекс для переупорядочивания записей в возвращаемом НД.
Для того, чтобы "добавить поле к существующей таблице" надо ее (физ.таблицу) реструктурировать. Вам надо именно это ?
Может просто нужно доп.поле (поля) для отображения временной информации (суммы по строке, например) ? Для этого в физ.таблицу ничего добавлять не надо. Достаточно добавить новое поле в датасет и предпочтительнее для Вас в Design режиме.

А целом вопрос звучит весьма абстактно, поэтому никаких примерчиков быть не может


 
JS   (2002-10-03 18:05) [3]

таблица состоит из нескольких полей..
требуется добавлять (и улалять тоже) любое из полей.
например: таблица двух полей (телефон и фамилия) нужно добавить поле "Адрес"!


 
Best Before 2024   (2002-10-03 18:11) [4]

JS (03.10.02 18:05)
Чей адрес?


 
MsGuns   (2002-10-03 18:17) [5]

>JS (03.10.02 18:05)
>требуется добавлять (и улалять тоже) любое из полей.

Понятно. Речь идет о способах отображения данных из физ.таблице. При этом надо добавлять в DBControl`ы (или убирать из них) любые поля. Если я правильно понял, то это ЗНАЧИТЕЛЬНО проще. Убрать-показать любой (кроме грида) контрол можно с помощью св-ва Visible или Top,Left,Hieght,Width
Если нужны поля-"мутанты", например сумма или адрес как "Улица"+"Номер дома"+"Квартира", то просто добавляются калькулируемые поля, в св-во которых записывается нужное выражение.
Для грида вкл/выкл полей лучше осуществлять св-вами колонок.




 
JS   (2002-10-03 18:33) [7]

Наверное немного не так: нужно добавить поле к физ.таблице если такого поля еще несуществовало (и не обязательно его отображать в DBGrid) нужно добавить его к табилице и забыть про него (естесно ячейки его остаются пустыми...)
Sorry если некорректно сформулировал вопрос.


>>Prooksius © (03.10.02 17:22)
>>
>>Table1.Fields.Add(YourField)

пишу:
Table1.Fields.Add(MyFeild);
Выдает ошибку:
Incompatible types: "TFeild" and "String"
прпробовал:
Table1.Fields.Add("MyFeild");
тоже самое!


 
MsGuns   (2002-10-03 20:58) [8]

Table1.Fields.Add добавляет описатель поля в коллекцию полевых описателей датасета, а НЕ НОВОЕ ПОЛЕ В ФИЗИЧЕСКУЮ ТАБЛИЦУ !
Для добавления,удаления,изменения физического поля в физической таблице надо делать РЕСТРУКТУРИРОВАНИЕ ТАБЛИЦЫ. Это делается или SQL-запросом или прямым вызовом BDE-процедур.

Однако мне тогда не понятно, что это за программа такая, которая при каждом сеансе РЕСТРУКТУРИРУЕТ ФИЗ.ТАБЛИЦУ.
Одно из двух: или Вы разработали совершенно никудышную модель БД
или не смогли как следует объяснить суть проблемы.

Таку прогу, конечно, можно сделать, но:
- 1. Одновременно с такой таблой может работать ТОЛЬКО 1 юзер и ТОЛЬКО из одного приложения.
- 2. В процессе работы приложения никаких запросов к этой таблице делать нельзя, что чрезвычайно ограничивает в инструментарии
- 3. Программа будет работать чрезвычайно медленно даже на небольших объемах данных
- 4. Каждый раз при запуске прога должна зачитывать структуру и соотв.образом настраивать свои контролы, включая всякие обработчики типа OnCalcFields, OnGetText и многое-многое другое
- 5. Крайняя неустойчивость к отказам железа. При обрыве эл.питания в процессе реструктуризации, как правило, рушится вся таблица и потом не факт, что подлежит восстановлению.
- 6. Полная импотенция такой таблице в плане применения ключей и индексов и, как следствие, невозможность использовать ее в связях Master-Detail
- 7. Может, хватит ?


 
JS   (2002-10-04 00:28) [9]

Помоему немного не так - реструктур. табл. нужно сделать всего пару раз за всю историю программы..... :)
это что-то типа конструктора в MS Access - один раз добавил нужное поле и (может быть) через полгода добавил еще одно или удалил. Все остальное время прога работает с этой таблицей и лишь добавляет/удаляет записи...


 
Jeer   (2002-10-04 00:34) [10]

Да делоть-то по всякому можно.
Опять же анти пример - 1С, когда можно в режиме пользователя менять структуру.
Но в основном реструктуризация делаетя при апгрейде и не часто.
Иначе - налицо плохое конструирование БД.
Если мы говорим конечно о реляционных базах.
Для объектных (а 1С смело на это нарывается) все не так..


 
Beglec   (2002-10-18 16:25) [11]

Я понял тебя и твой вопрос JS, но ты его не понятно объесняешь.
И ответа конкретного всетаки здесь не прозвучало.

Действительно есть такая проблема: "Как добавить поле в (физическую) базу данных ?".
В данный момент у меня тоже есть такая проблема.
Задача:
Сервер - только он работает с базой данных - Exclusive ON
клиенты установлены на рабочих станция и через TCP общаются между сервером и сервер передает им нужные данные.
Разработка ПО ведется практически ONLine. То есть есть новая идея и ее нужно реализовать в срочном порядке, то есть время от времени приходится менять структуру таблицы.
Сервер можно перезапускать только 1 раз в сутки. Разработка самого ПО ведется на другой машине.
Каждый раз перед запуском сервера конфигурить БД в принцепе реально, но не целесообразно. Потому как можно забыть какое то поле подправить или изменить размер ну и все в таком духе. Лучше на много, чтобы сервер сам при запуске проверил правильность конфигурации БД.
Типа
Есть такое поле или нет, если нет то создать его не удаляя данные из БД.

У меня в данный момент это реализованы через Query-SQL, но хотелось бы услышать вариант через TTable, если таковой вообще существует.

спосибо за внимание


 
John13   (2002-10-18 16:38) [12]

Beglec © (18.10.02 16:25)
А как ты организовал добавление полей через Квери?



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

Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
14-21768
sancho
2002-10-18 20:44
2002.11.07
Help file


4-21846
Slym
2002-09-23 06:49
2002.11.07
Пропадают цвета в ImageList е!


14-21795
^Sanya
2002-10-19 00:15
2002.11.07
Почемураз работчики приложений Delphi обходят стороной???!!!!


6-21723
OlegG
2002-09-09 21:11
2002.11.07
Подскажите, как средствами Дельфи можно сделать АОН


1-21576
Semion
2002-10-30 07:21
2002.11.07
Read -write





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский