![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Если столбец уже существует, то не добавлять. А если существует то добавить. Пробывал так:
Код:
try
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE s1 ADD column 1 number(2) UNIQUE');
ADOQuery1.ExecSQL;
ADOQuery1.Open;
except
adoquery1.SQL.Text:='Select * from s1';
adoquery1.Open;
end;Но потом проблемы начинаются, если удаляю строку пишет ошибку, потом перезахожу в программу, а таблица полностью стерта.. |
|
#2
|
||||
|
||||
|
ADOCommand используй.
И вообще, в рантайме изменять структуру базы - это по моему не правильно. Последний раз редактировалось M.A.D.M.A.N., 18.04.2013 в 11:59. |
|
#3
|
|||
|
|||
|
Цитата:
Подскажи пжлста, как с помощью ADOCommand реализовать, то что мне нужно? |
|
#4
|
||||
|
||||
|
Ну так же.
Код:
adocommand.sql.text := 'blabla' adocommand.exec |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
cyborgg4655 (18.04.2013)
| ||
|
#5
|
||||
|
||||
|
Вообще-то так делать не стоит уже хотя-бы потому-что любое изменение структуры таблицы может привести к необратимой потере данных. Клиенты вам будут очень "благодарны" за такой подарок. К тому-же изменение структуры может занять очень много времени, что тоже не радует.
|
|
#6
|
||||
|
||||
|
Смотря какая база.
Оракл вроде адекватно на альтер тэйбл реагирует. Если так уж надо, то надо создать копию исходной таблицы, чтоб потом данные в измененную таблицу перелить. |
|
#7
|
||||
|
||||
|
Цитата:
|