C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
рТПЧЕТЛБ ОБ ОБМЙЮЙЕ ФБВМЙГЩ, рТПЧЕТЛБ РТПЗТБННПК, УХЭЕУФЧХЕФ МЙ ФБВМ
Anton_K
Отправлено: 27.10.2005, 08:00


Ученик-кочегар

Группа: Участник
Сообщений: 4



Access mdb через BDE, SQL запросы.
Привет!
Пишу прогу с базой с расчетами и с отчетами .
Когда юзер начинает расчитывать — то создается специальная таблица в базе куда записываются данные и на основе которых формируется отчет, если в этот момент программу закрыть то таблица останется не удалившись. (В нормальном режиме таблица удаляется после закрытия отчета. ну не в этом суть )
и при следущем запуске программы
прога попытается создасть опять эту таблицу а так как она уже создана — ошибка :-(
а теперь суть вопроса :
Как можно сделать проверку при запуске программы типа:
"если существует таблица report то удалить таблицу"
Спасибо.

Отредактировано Anton_K — 27/10/2005, 08:08
Valdemar
Отправлено: 27.10.2005, 08:32


Мастер участка

Группа: Участник
Сообщений: 433



Посмотрите TADOConnection::OpenSchema
Gedeon
Отправлено: 27.10.2005, 08:32


Ветеран

Группа: Модератор
Сообщений: 1742



CODE

select * from msysobjects where name = 't1'

t1 — имя таблицы.
Дальше я думаю понятно.
Anton_K
Отправлено: 27.10.2005, 08:58


Ученик-кочегар

Группа: Участник
Сообщений: 4



CODE

select * from msysobjects where name = 't1'

а вот если этой таблицы нет то запрос вызывает ошибку
Каким запросом можно вывести список таблиц в базе?


Отредактировано Anton_K — 27/10/2005, 08:59
Gedeon
Отправлено: 27.10.2005, 09:16


Ветеран

Группа: Модератор
Сообщений: 1742



Да? А я думал он не возвращает ничего.
Поищите должно быть в экссес что-то типа IF EXISTS я в нем не силен
Guest
Отправлено: 27.10.2005, 09:26


Не зарегистрирован







QUOTE
вывести список таблиц в базе

Для BDE посмотрите TSession::GetTableNames
а еще можно поискать в функциях Dbi...
Anton_K
Отправлено: 01.11.2005, 12:32


Ученик-кочегар

Группа: Участник
Сообщений: 4



QUOTE (Gedeon @ 27/10/2005, 08:32)
CODE

select * from msysobjects where name = 't1'


пишет что у меня нет прав чтобы пользоваться этой таблицей
гдеможно указать права на эту таблицу? (msysobjects)

Отредактировано Anton_K — 01/11/2005, 12:34
Gedeon
Отправлено: 01.11.2005, 15:54


Ветеран

Группа: Модератор
Сообщений: 1742



а в самом эксесе получается выполнить запрос?
Anton_K
Отправлено: 25.11.2005, 12:19


Ученик-кочегар

Группа: Участник
Сообщений: 4



А можно ли средствами Borland прописать ДСН к своему файлику mdb ?

Вернуться в Работа с базами данных в C++Builder