Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.02.2013, 02:32   #1
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
По умолчанию Создание полей (столбцов) в Access

Здравствуйте. Возникла такая проблема:
Использую Access через ADO. Создаю новое поле (столбец) в бд:
Код:
CurDate:=DateToStr(Now);
for i := 1 to Length(CurDate) do
  if CurDate[i]='.' then
    CurDate[i]:='-';
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('ALTER TABLE Таблица ADD '+CurDate+' STRING NOT NULL UNIQUE');
ADOQuery.ExecSQL;
Выскакивает ошибка: ошибка синтаксиса при определении поля. Что делать?
Awesome96 вне форума Ответить с цитированием
Старый 09.02.2013, 09:09   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,021
По умолчанию

про FormatDateTime не слышали?
Slym вне форума Ответить с цитированием
Старый 09.02.2013, 10:52   #3
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
По умолчанию

Slym, нет, а можно по подробнее?
Awesome96 вне форума Ответить с цитированием
Старый 09.02.2013, 11:01   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

FormatDateTime и F1 решит все проблемы.

Вопрос - какой смысл создавать поле с таким именем. Предположил, что по каждой очередной текущей дате новое поле будет создаваться. Угадал? Если так, то это какой-то новый писк в подходах к работе с таблицами из базы данных
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.02.2013, 11:13   #5
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
По умолчанию

Аватар, попробовал так:
Код:
CurDate:=FormatDateTime('dd-mm-yyyy', now)
но ошибка все равно осталась. Да, так. Нужно, что бы когда юзер откроет бд, пойдет проверка на наличие столбца с названием в виде текущей даты, и если его нет, то он создается.
Awesome96 вне форума Ответить с цитированием
Старый 09.02.2013, 11:20   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Поле с таким именем нужно в квадратные скобки брать - [25-07-2012]
И повторяюсь - это дурдом. Делай дочернюю таблицу и заноси туда записи с новыми датами. Первый раз вижу, что новые поля для таких целей создают
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.02.2013, 11:28   #7
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
По умолчанию

Аватар, Сделал так:
Код:
ADOQuery.SQL.Add('ALTER TABLE Таблица ADD ['+CurDate+'] VARCHAR(50) NOT NULL UNIQUE');
появилась ошибка: "Не удается найти таблицу или индекс". Или я не там поставил скобки?
Цитата:
Сообщение от Аватар
Делай дочернюю таблицу и заноси туда записи с новыми датами.
Не могу. Нужно, что бы все записи были на одной таблице.
Awesome96 вне форума Ответить с цитированием
Старый 09.02.2013, 12:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Нужно, что бы все записи были на одной таблице.
По какой причине?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2013, 12:32   #9
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
По умолчанию

Stilet, Аватар, извините за тупой вопрос, но что такое дочерние таблицы? Как их создавать и где они будут находиться после создания?
Awesome96 вне форума Ответить с цитированием
Старый 09.02.2013, 13:20   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Цитата:
что такое дочерние таблицы
Обычная таблица, у которой есть внешняя ссылка на другую таблицу. А лучше почитать доки по базам данных, подходы и способы организации связей между таблицами
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access проблема с виводом полей crowin Помощь студентам 1 13.07.2012 21:57
Объединение текстовых значений из полей таблицы (Access 2010) Mjaso Microsoft Office Access 7 28.04.2012 20:18
Отображение полей таблиц измерений Microsoft Access в сводной талице ECXEL andreyslad Microsoft Office Excel 6 15.02.2012 16:51
создание полей в ADOTable Spraty БД в Delphi 1 01.04.2011 17:30
выбор столбцов в access kuzmich БД в Delphi 1 13.01.2011 20:52


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840