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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 18:23   #1
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию Создание таблицы во время работы программы. Delphi

Моя программа работает с БД. Есть таблица, в которой перечислены все пользователи библиотеки. А как сделать так, что бы при добавлении в нее нового пользователя, создавалась новая таблица в которой будет вестись его история?

То есть как можно сохдать новую таблицу в БД во время работы программы?
FACE OFF вне форума Ответить с цитированием
Старый 25.09.2010, 18:36   #2
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

А не проще завести одну таблицу и в ней хранить историю всех пользователей и по необходимости выводить о конкретном с помощью запроса? просто в подобных задачах обычно так делают.

а создать можно например с помощью SQL запроса
Код:
Create table <Имя табл.>
(<Имя поля> <Тип>
...)
За подробностями в гугл
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 25.09.2010, 18:43   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Цитата:
что бы при добавлении в нее нового пользователя, создавалась новая таблица в которой будет вестись его история?
ПОКА НЕ ПОЗДНО
история для всех пользователей ведется в единой таблице с полем идентификатор пользователя. Ну и еще можно добавить таблицу для хранения описаний пользователей и их идентификаторов (если нужно).
Иначе очень скоро структура таблиц пользователей окажется различной и программу придется переписывать все одно.
Цитата:
как можно сохдать новую таблицу в БД во время работы программы
CREATE TABLE (.<описания полей>)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.09.2010, 08:59   #4
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Спасибо большон. Сделаю одну таблицу со всеми пользователями. я как то о запросах не подумал...
FACE OFF вне форума Ответить с цитированием
Старый 26.09.2010, 14:52   #5
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

У меян еще вопрос возник.

У меян в таблице заполняются поля "название книги", "Автор" и "количество книг". И есть форма через которую добавлять записи (с помощью полей DBEdit). Все норм добавляется.

А как сделать так, что бы если такая книга есть, то программа просто добавляла количество книг и не создавала новую запись?
FACE OFF вне форума Ответить с цитированием
Старый 26.09.2010, 15:01   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

перед добавлением надо просто проверить наличие автора и книги и, в зависимости от результатов проверки, либо добавляла новую запись, либо изменяла имеющуюся.

HINTS: проверить наличие(количество) можно так
Код:
select count(*) as Cnt from Books 
where Author = :pAuthor and BookName = :pBookName
а изменить количество можно через update:
Код:
update Books
  set Количество = <ТутПишетеНовоеКоличество>
where Author = :pAuthor and BookName = :pBookName
p.s. если делате не учебную задачу, то обязательно учтите, что у одного и того же автора может быть книга с одним и тем же названием, но это будут РАЗНЫЕ книги (отличается версия издания, издательство, год, форма издания (гибкий/твёрдый переплёт) и т.д.
А ещё, в принципе, у каждой книги есть уникальный номер: ISBN
Но пользоваться им или нет - это Ваше дело.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2010, 19:17   #7
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Спасибо большое.
P.S. А ISBN это номер каждого экхемпляра или какого-либо варианта (переплет, год и тп)?
FACE OFF вне форума Ответить с цитированием
Старый 27.09.2010, 17:09   #8
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

Цитата:
Сообщение от FACE OFF Посмотреть сообщение
Спасибо большое.
P.S. А ISBN это номер каждого экхемпляра или какого-либо варианта (переплет, год и тп)?
Для одного издания.
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 27.09.2010, 18:45   #9
FACE OFF
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 62
По умолчанию

Еще раз спасибо
FACE OFF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADO.Подключение во время работы программы Jene4ka БД в Delphi 4 13.11.2009 15:04
Время работы программы Magist Компоненты Delphi 5 24.10.2009 20:52
Проверка на нажатие кнопки во время работы программы ToKS Компоненты Delphi 18 18.05.2009 00:30
Создание обьектов во время работы программы Rusl92 Общие вопросы Delphi 4 11.08.2008 17:03
Создание компонентов во время работы программы Rusl92 Компоненты Delphi 23 05.04.2008 08:38