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

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

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

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

Ответ
 
Опции темы
Старый 09.02.2013, 03: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, 10:09   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,021
По умолчанию

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

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

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


03:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.