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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2008, 20:02   #1
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
Стрелка Структура таблицы

Необходимо изменить структуру таблицы используя delphi.
Использовал
Код HTML:
AdoQuery2.SQL.Text:='Alter table '+comboBox2.Text+' change '+Param1+' '+Param4+' VarChar(100)';
Выдает ошибку, что ошибка конструкции "ALTER TABLE".
Как можно переименовать столбец и изменить размер?
Proof вне форума Ответить с цитированием
Старый 27.12.2008, 21:31   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, для начала:
+' VarChar(100)';
Это - строковая переменная, а по вашему разумению - новая ширина поля... Нонсенс.
Попробуйте написать запрос безо всяких вставок параметров. Когда отладитесь на простом примере, перейти к параметрам будет просто.
mihali4 вне форума Ответить с цитированием
Старый 27.12.2008, 22:56   #3
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
По умолчанию

В том то и дело, что ни как не получается. Другие вариации alter table проходят, допустим такие как добавления нового поля. Может это быть из-за change?
Proof вне форума Ответить с цитированием
Старый 28.12.2008, 01:26   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Похоже, вы себе придумали новый язык и хотите заставить базу понимать его
По правилам (весьма строгим!), изменение имени поля происходит вот так:
ALTER TABLE COUNTRY ALTER OLD_NAME TO NEW_NAME;
Аналогично тип поля меняется с использование ключевого слова TYPE.
Приведите, пожалуйста, отрывок из того материала, где вы нашли про использование CHANGE.
(Кстати, самое простое - делать через DROP+ADD).
mihali4 вне форума Ответить с цитированием
Старый 28.12.2008, 20:42   #5
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
По умолчанию

Извиняюсь, я это нашел в структуре синтекса alter table в mysql. Я разобрался со сменой типа, но переименовать так и не удалось. пробывал использовать следующее:

Код:
Alter table table2 alter [column] qqq to ttt
Alter table table2 rename qqq to ttt
Proof вне форума Ответить с цитированием
Старый 28.12.2008, 22:33   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А, так это майэскуэль со своими новыми правилами...
Ну тогда (не знаю, где вы там смотрели, вот вам с примерами):
Цитата:
Изменить свойства одного или нескольких столбцов можно при помощи следующей конструкции:
ALTER TABLE table_name CHANGE field_name_old field_name_new parametrs
table_name
- имя таблицы, в которой находится изменяемый столбец;
field_name_old
- имя столбца изменяемого столбца;
field_name_new
- новое имя изменяемого столбца (должно равняться field_name_old, если мы не хотим поменять имя столбца);
parametrs
- новые параметры столбца.

В следующем примере установим тип строки field_1 как текст:
$sql="ALTER TABLE my_table CHANGE field_1 field_1 TEXT";
mysql_query($sql);

А если необходимо при этом еще и переименовать столбец в field_2, то получится так:
$sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT";
mysql_query($sql);

В случае, если надо изменить свойства сразу нескольких столбцов, то конструкцию CHANGE field_name_old field_name_new parametrs повторяем через запятую для каждого столбца:
$sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT,
CHANGE field_3 field_3 TEXT";
mysql_query($sql);
mihali4 вне форума Ответить с цитированием
Старый 28.12.2008, 23:06   #7
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
По умолчанию

Уважаемый, mihali4.
Еще раз извиняюсь, но дело в том, что мне необходимо это реализовать в access и sql server 2000, а когда искал информацию, наткнулся на синтаксис alter table, но не обратил внимания что он для mysql. Честно признаться думал, что отличий нет.
Proof вне форума Ответить с цитированием
Старый 29.12.2008, 00:55   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тогда все проще.
Я вам дам ссылочку, посмотрите, вроде там все доступно описано:
http://www.intuit.ru/department/data...2000/15/2.html
(извините, времени совсем нет, почитайте самостоятельно)
mihali4 вне форума Ответить с цитированием
Старый 29.12.2008, 20:24   #9
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
По умолчанию

Спасибо, действительно помогло. В sql servere можно менять используя хранимые процедуры. С access сложнее, но тоже решаемо.
Proof вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
структура таблицы базы данных с именем WORKER Vollmond36 Помощь студентам 1 01.12.2008 22:20
убрать вложенные таблицы из таблицы в режиме просмотра 2007 Baxxter Microsoft Office Access 2 17.11.2008 21:28
S.O.S. Структура db-файла... anel1101 БД в Delphi 5 17.09.2008 15:52
Структура файла Mayor Общие вопросы Delphi 1 11.08.2008 16:45
структура EXEшника ЧИЖ Безопасность, Шифрование 4 18.07.2007 18:03