Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2011, 21:38   #1
PazitifKO
 
Регистрация: 27.07.2011
Сообщений: 5
По умолчанию переменная в ALTER

Как можно в альтер, в поле названия столбца подставить переменную стринга, чтобы имя нового столбца бралось из нее? и как имя столбца обратно в переменную записать?

код попробовал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var i:string;
begin

  i:=i+'1';
  ShowMessage(i);
 Query1.SQL.Clear;
 Query1.SQL.Add('ALTER TABLE main_database ADD COLUMN i');
 Query1.ExecSQL;
end;
но тогда имя столбца будет просто i.
Сори за глупый вопрос - но перерыл уже весь гугл и кучу справочников и не разобрался....


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.07.2011 в 22:54.
PazitifKO вне форума Ответить с цитированием
Старый 27.07.2011, 22:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
 Query1.SQL.Add('ALTER TABLE main_database ADD COLUMN '+i);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.07.2011, 01:28   #3
PazitifKO
 
Регистрация: 27.07.2011
Сообщений: 5
По умолчанию

Не работает так.
Если писать
Код:
Query1.SQL.Add('ALTER TABLE main_database ADD COLUMN '+i);
Это не верный синтаксис COLUMN.
Если писать правильно:
Код:
Query1.SQL.Add('alter table main_database add column colonka VARCHAR(50)'+i);
то запрос при i='1' выглядит так
Код:
alter table main_database add column colonka VARCHAR(50)1
соответственно на VARCHAR(50)1 тут же вылетает ошибка.

Хех) Если бы все было так просто - то я бы не писал на форум
Но спасибо и на этом. А еще идеи есть?
Или, что лучше, ссылка на книжку где это прочитать....

Последний раз редактировалось PazitifKO; 28.07.2011 в 01:31.
PazitifKO вне форума Ответить с цитированием
Старый 28.07.2011, 08:30   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы что - издеваетесь?!!

Вы что просили в первом посте?!
Цитата:
в поле названия столбца подставить переменную стринга, чтобы имя нового столбца бралось из нее
я Вам показал, как в запрос добавить переменную.
А уж то, что у Вас там 1 (Вы что, хотите добавить столбец с именем 1 ?! Так сразу могу сказать, у Вас это НЕ ПОЛУЧИТСЯ! Почитайте, что такое идентификаторы и каким образом они составляются!

Значит так.
1) чётко (для себя) формулируете, что Вам нужно.
2) создайте нужную ПРАВИЛЬНУЮ строчку запроса
3) сформируйте эту строчку в своём коде (согласно пунктам 1 и 2)

будут вопросы - обращайтесь.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.07.2011, 21:55   #5
PazitifKO
 
Регистрация: 27.07.2011
Сообщений: 5
По умолчанию

Все, разобрался) Спасибо

правильный код

Код:
procedure TForm1.Button1Click(Sender: TObject);
  var karta:String;
begin
 karta:=' Карта_'+Edit3.Text+' VARCHAR(10)';
 Query1.SQL.Clear;
 Query1.SQL.Add('alter table main_database add column'+karta);
 Query1.ExecSQL;
end;
PazitifKO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная в C# bead C# (си шарп) 8 01.05.2011 12:32
Статическая переменная ignis_divine Помощь студентам 2 12.09.2010 14:30
alter table Neymexa SQL, базы данных 2 25.03.2010 17:51
alter table in ms sql Neymexa Помощь студентам 0 25.03.2010 14:29
Общая переменная Артэс Общие вопросы C/C++ 4 18.06.2009 16:24