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

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

Добавление поля к таблице [D6, Paradox]


Eagle Owl ©   (2003-08-30 00:28:00) 

Здравствуйте.
Вопрос такой. Можно ли к уже существующей таблице Paradox добавить
программно новое поле, и, если можно, то как?
Спасибо.


VAleksey   (2003-09-01 10:41:00) [1]


> MsGuns © (31.08.03 18:36)

А...Эээ... С уважением, но такой способ действительно работает только для вновь создаваемых таблиц.


> Eagle Owl (30.08.03 00:28)

Жалко тебя огорчать, но придется перерыть тонны help - а в BDE32.hlp. См. функцию dbiDoRestructure. Uses BDE. Но там структура параметров :-О !!... Легче действительно с помощью SQL. По этому поводу могу предложить почитать LocalSQL.hlp.


DenK_vrtz   (2003-09-01 08:56:00) [2]

Eagle Owl, решилась проблема?!

Добавить поле в существующую таблицу можно, есстественно, можно.
И при помощи методов TTable и командой SQL (все см. выше)

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

Не ссорьтесь!
Всех с 1-ым сентибря :-)


MadDogNT   (2003-08-31 21:56:00) [3]

Господа добрее надо быть! Человеку помощь нужна, а вы развели здесь словесные баталии, хотя grusty и не прав.
А добавить поле возможно следующим образом:
Query1.Close;
Query1.SQL.Text := "alter table Cons add New_Field Varchar(30)";
Query1.ExecSQL;
Где:
Cons - Имя таблицы Paradox.
New_Field - Имя поля таблицы.
Varchar - Тип поля.
(30) - Длина поля.
У Query1 в свойстве DatabaseName надо указать путь к таблицам (например C:\DB) или алиас.


grusty   (2003-08-31 18:42:00) [4]

-->MsGuns

Базы, таблицы - по моему речь не об этом. А вот прежде чем что-то советовать, необходимо проверять - работает ли это или нет?


MsGuns   (2003-08-31 18:36:00) [5]

>grusty (31.08.03 18:19) [9]
>Да хоть 3 раза в эксклюзиве - в уже созданную базу ты не добавишь поле!

А сколько уверенности-то ! И гонора ! Смотри, в орешник попадешь.
ЗЫ. Вообще-то в базах нет полей, а есть таблицы. А вот таблицы состоят из полей, которые...

А впрочем, об этом можно почитать в любой книжке по БД.


grusty   (2003-08-31 18:19:00) [6]

--> MsGuns

Да хоть 3 раза в эксклюзиве - в уже созданную базу ты не добавишь поле!


MsGuns   (2003-08-31 17:42:00) [7]

>grusty © (31.08.03 14:54) [7]
>В уже созданную базу добавить новое поле невозможно.

Неужели ?

>Eagle Owl

Таблица перед реструктуризацией должна быть в эксклюзиве.


grusty   (2003-08-31 14:54:00) [8]

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


Eagle Owl   (2003-08-30 22:41:00) [9]

Чо-то не получается таким макаром...
Поподробнее можно?
Или другой способ... если есть.


Verg   (2003-08-30 09:05:00) [10]

Конечно можно.
Программно - через TQuery, например.

SQL.Add("Alter table MyTable add NewField integer");
ExecSql;


Eagle Owl   (2003-08-30 01:10:00) [11]

Для создания талицы подходит...
А для добавления к существующей не получается.


Langolier   (2003-08-30 01:04:00) [12]

Пробуй... Методом проб и ошибок... :-)
Только тама для только что созданных таблиц написано, и команда Clear; у тебя может очистить всю базу, так что сделай копию...


Eagle Owl   (2003-08-30 00:47:00) [13]

Архангельского взял...
Так это работает с уже созданной таблицей?


Langolier   (2003-08-30 00:44:00) [14]

Возьми Архангелького, там пример есть для Парадокса, начиная с создания самой таблицыи кончая заполнением ее...
Цитата:)
with Table1.FieldDefs.AddFieldDef do
begin
Name := "Dep";
DataType := ftString;
Size := 20;
end;


Наверх

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