Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
1

Создание таблицы динамически

15.05.2014, 09:53. Показов 2073. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте всем. Возник вот такой вопрос: как создать новую таблицу имя таблицы чтобы взялось из edit.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2014, 09:53
Ответы с готовыми решениями:

Не обрабатываются события в динамически добавленых строках таблицы
Добрый день! Мне на странице надо иметь возможность динамически добавить строчки в таблицу (в...

Создание компонент динамически
Нужно создать компонент было бы неплохо, если бы вы помогли ответить на эти вопросы: 1. что...

Динамически создание переменных
Всем день добрый. Вопрос такой Возможно ли создавать переменные динамически в цикле? Пример...

Создание списка динамически
люди помогите начинающему программисту разобраться с проблемой. Хочу при выборе из одно Select'a...

17
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
15.05.2014, 10:06 2
Цитата Сообщение от Genius94 Посмотреть сообщение
как создать новую таблицу
Послать запрос CREATE TABLE вестимо. Но для этого нужно не только имя таблицы, но и описание полей.
Кроме того, возникает вопрос в целесообразности этого действия. В подавляющем большинстве случаев динамическое создание таблиц - это ошибка дизайна БД.
0
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
15.05.2014, 10:20  [ТС] 3
просто у меня имеется таблица с клиентами. при добавлении нового клиента нужно чтобы имя фамилия отчество дата и все такое вносилось в таблицу с именем клиент. в тоже время чтоб создалась таблица на данного клиента в более подробном описании. у меня просто программа стоматологическая клиника.

Добавлено через 2 минуты
Цитата Сообщение от Grossmeister Посмотреть сообщение
Но для этого нужно не только имя таблицы, но и описание полей.
описание полей тоже должно создаваться, но уже одинаковое так сказать будет по шаблону, а вот имя таблицы должно быть именно браться из editА
0
129 / 129 / 41
Регистрация: 17.10.2013
Сообщений: 335
15.05.2014, 10:45 4
достаточно таблицы "клиенты" и "подробное описание" связать по полю id_клиента
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.05.2014, 10:46 5
Судя по заявлению:
...и все такое вносилось в таблицу с именем клиент...
вы никогда не имели дела с базами данных.
Нельзя так делать БД.
Все данные по клиентам должны сохраняться в одной таблице. С сопутствующими справочниками-таблицами.
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
15.05.2014, 10:46 6
Почему нельзя данные по всем клиентам хранить в одной таблице? Так всегда и делают. Своя таблица на каждого клиента - это мрак. Если 10000 клиентов - значит 10000 таблиц? Представляю БД мобильного оператора, у которого м.б. и 100тыс клиентов, если не миллион.
Я уж не говорю про то, что шибко неудобно писать запросы (например, нужен сводный отчет по некоторым клиентам - это же много-много UNION)
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.05.2014, 10:49 7
значит 10000 таблиц?
Ну да. Редкая СУБД потянет столько таблиц
Сейчас ТС начнет говорить, что столько клиентов не будет и пр. оправдания начинающего разработчика БД.
0
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
15.05.2014, 12:23  [ТС] 8
Цитата Сообщение от Скандербег Посмотреть сообщение
вы никогда не имели дела с базами данных.
имел дело но только с простейшими базами данных. а теперь нужно развернуться обширно. тема у меня звучит вот так: Автоматизированное рабочее место администратора стоматологической клиники. и вот в чем начинается вся загвостка диагноз может быть написан к примеру символов так - 400 а максимально текстовый тип в access поддерживает если не ошибаюсь 255 символов. вот поэтому для каждого клиента было бы проще сделать каждому свою таблицу.да и было бы путаницы меньше(как мне кажется). да и с преподами разговаривал они тоже советуют так сделать
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.05.2014, 12:32 9
Как говорится: хозяин-барин, но непонятно как вам помогут отдельные таблицы для каждого клиента обойти
аксессовское ограничение в 255 символов текстового типа.
Опять же, в аксессе есть тип "безразмернного" текста, который они зовут МЕМО.
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
15.05.2014, 12:59 10
Если бы даже ограничение в 255 символов нельзя было обойти, я бы просто создал 2-ю таблицу, связанную с первой, в котором бы продолжался текст. Это по любому лучше, чем таблица на каждого клиента.

Добавлено через 1 минуту
Цитата Сообщение от Genius94 Посмотреть сообщение
и было бы путаницы меньше(как мне кажется)
С точки зрения написания запросов как раз проще иметь дело с одной таблицей.
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.05.2014, 13:03 11
С точки зрения написания запросов как раз проще иметь дело с одной таблицей.
Полностью поддерживаю.
А преподавателей надо учить общепринятым, а, следовательно, оптимальным, решениям таких задач.
0
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
15.05.2014, 14:04  [ТС] 12
но вот смотрите в тоже время у меня клиент первый раз пришел его зарегистрировали(сделали 1 зуб), через неделю он пришел сделал другой зуб получается запись сотрется. а там есть и гарантия и все тому подобное. каждый раз добавлять одного и того же человека не есть хорошо.
0
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
15.05.2014, 14:19 13
У тебя должно быть:
- таблица Клиенты, где хранится инфа: ФИО, адрес, тел., ID-клиента и т.п.
- таблица Окзанные_услуги, где хранится: ID-клиента, ID-врача, услуга, дата, время и т.п.
И зная ID-клиента ты можешь получить из таблицы Окзанные_услуги список всех услуг, оказанных конкретному клиенту.
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.05.2014, 14:20 14
А вы что, увидели в наших советах такие в которых говорится об удалении записей?

С точки зрения хранения данных, нет никакой разницы: хранить ли данные о клиенте в записях одной таблицы, или для каждого из них создавать свою таблицу.
Но есть разница между этими способами, и очень большая, в удобстве доступа к таким данным.
Если ваша работа сведется только к тому что будут создаваться таблицы на каждого из клиентов, то и об удобстве не стоит говорить.
Но, наверняка, будут и другие операции с клиентскими данными: их редактирование, поиск клиента при повторных обращениях и прочих операциях.
Ну и как вы представляете себе поиск по сотням таблиц, когда нужно будет найти клиента уже обращавшегося за помощью?
0
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
18.05.2014, 10:06  [ТС] 15
Цитата Сообщение от FIL Посмотреть сообщение
И зная ID-клиента ты можешь получить из таблицы Окзанные_услуги список всех услуг, оказанных конкретному клиенту.
не могу понять как получить эти данные?какое условие или проверку использовать.
0
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
18.05.2014, 11:56 16
Цитата Сообщение от Genius94 Посмотреть сообщение
не могу понять как получить эти данные?
Сделай подчиненную таблицу (средствами Дельфи или через SQL запрос).

Добавлено через 44 секунды
Вот первый попавшийся пример:
Подчиненные таблицы
0
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
22.05.2014, 15:47  [ТС] 17
возникла такая проблема. Тип данных в таблице access мемо (т.к. мне нужно вводить большой текст) когда пытаюсь получить от туда данные он выводит только те столбцы в которых тип данных не мемо. подскажите как устранить такую проблему. и еще вопрос как брать данные с подчененной таблицы и вывести их в label. это в все толжно происходить когда я выбираю клиента из списка в первом grid.
Миниатюры
Создание таблицы динамически  
0
129 / 129 / 41
Регистрация: 17.10.2013
Сообщений: 335
24.05.2014, 00:43 18
подскажите как устранить такую проблему
попробуй в запросе использовать конструкцию LEFT(ИмяПоляСТипомМЕМО,999) AS псевдоним, где 999 - число знаков с начала строки (т.е. слева), типа
SQL
1
SELECT №_udost, ..., LEFT(Diagnoz, 12345) AS Diagnoz, ... FROM ...
0
24.05.2014, 00:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2014, 00:43
Помогаю со студенческими работами здесь

Создание Label динамически
Нужно создать n-ое количесво Label'ов, вот код: for (int i = 0; i < n; i++) { ...

Создание строки динамически
Есть задание: Дана строка символов, состоящаяиз произвольного текста, слова разделены пробелами....

Создание подкнопки динамически
В общем какое дело я создаю кнопки динамически в LinearLayout который их распологает горизонтально....

Создание таблиц динамически
помогите пожалуйста! создал динамически таблицу tabl1:=TStringGrid.Create(form1);...

Создание компонента динамически
Создал динамически edit, ограничил его по размерам, но что то видимо упустил. Просьба написать что...

Создание формы динамически
Сразу извините за глупый вопрос.... У приложения есть форма с настройками. Для того, чтобы она не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru