![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление поля к таблице [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;