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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

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

Ответ
 
Опции темы
Старый 09.02.2013, 03:32   #1
Awesome96
Пользователь
 
Регистрация: 31.05.2012
Сообщений: 10
Репутация: 7
По умолчанию Создание полей (столбцов) в 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
Адрес: Siberia
Сообщений: 1,021
Репутация: 759
По умолчанию

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

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

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

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

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

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

Аватар, Сделал так:
Код:
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
Репутация: 6850
По умолчанию

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

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

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

Опции темы

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

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


06:16.


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