![]() |
|
|
![]()
|
|
| dinja3 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
Добрый день,
Помогите решить проблему со сравнением таблиц на существование в базе данных. У меня есть ComboBox и DBGrid Мне надо, что бы когда вписываешь название таблицы в ComboBox он её показывал в DBGrid, НО если такой таблицы не существует, то создать её. База данных Access. Когда создавал таблицы в DataBase Desktop, то в коде на кнопку писал
А в Access нету такой команды
Может кто нибудь подсказать как сделать проверку, есть ли такая таблица или её нету. Добавлено @ 18:14 Я знаю что есть команда SQL ADOQuery1.SQL.Add (CREATE Table if not existst Название (Поле тип); Но если решение только с помощью этого запроса, то как соединить и открытие и создание(если нету такой таблицы) вместе в коде, до меня не доходит. Это сообщение отредактировал(а) dinja3 - 6.4.2013, 18:15 |
||||
|
|||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Самый простой способ - отлавливать ошибку на AdoTable.Open. И ещё можно получить список всех таблиц в БД и там искать нужную, т.е. проверять её наличие. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| dinja3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
А как к примеру вывести список таблиц из бд в ListBox? Что бы потом сделать сравнение названий из ComboBox и ListBox, если в ListBox есть такая таблица то выводим, если нету то создаём с помощью SQL. Но я не знаю как список вывести Это сообщение отредактировал(а) dinja3 - 6.4.2013, 19:04 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| dinja3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
Спасибо, буду пробовать
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| dinja3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
Спасибо, но я по другому сделал и у меня теперь другая проблема
Он создаёт новую таблицу если не существует, но теперь он мне не открывает те которые уже были))) Я знаю, что я с кодом напортачил, но могли бы вы подсказать где)
Если не совпадает, то создаём, а если совпадает, то он всё равно создаёт) но такая таблица уже существует |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Где и что он должен открывать? В общем, не понял вопроса. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| dinja3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) dinja3 - 6.4.2013, 21:44 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Проверь, что вообще содержится в ComboBox1.Text, а что - в ListBox1.Items.Text.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| dinja3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.4.2013 Репутация: нет Всего: нет |
Вообщем смотри у меня есть 3 таблицы
1) Студент 2) Предмет 3) Оценки Я вывожу их названия в ListBox. Там 3 слова в ряд 1) Студент 2) Предмет 3) Оценки Мне надо: 1) Если я ввожу в ComboBox слово Студент, то он должен показывать таблицу в DBGrid 2) Если я ввожу слово Учитель, то он должен создать эту таблицу, поместить в Access, потом прочитать её и вывести в DBGrid. НО, когда я ввожу слово Студент, он пишет, что такая таблица уже есть и не выводит её в DBGrid, А когда ввожу слово Учитель, то он создаёт, но при повторном запросе так же пишет, что она существует и не показывает её в DBGrid Всё дело в if then else, я не очень понимаю как правильно написать, что бы если есть то он показывал, а в противном случае создавал и показывал Это сообщение отредактировал(а) dinja3 - 6.4.2013, 21:58 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Зачем? Т.е. какое это отношение имеет к задаче? Мою функцию проверял? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |