![]() |
|
Модераторы: Akella |
![]()
|
|
| ishimcity |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 1.6.2007 Где: Тюменская область . Ишим Репутация: нет Всего: 1 |
Как правильно создать поле в существующей таблице и затем програмно проверить создалось ли поле?
Создаю поле так
Но к сожалению ничего не создается. и как бы проверить создалось ли поле,существует ли СУБД Intebase |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
если поле не создалось то твой запрос вернет ошибку, если ошибки нет значет поле создалось
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| ishimcity |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 1.6.2007 Где: Тюменская область . Ишим Репутация: нет Всего: 1 |
Все верно забыл применить Commit
|
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Зачем это? Впрочем, может быть, на IB и нужно, не проверял... -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: нет Всего: 3 |
Данкинг, Kbl4AH, коммит нужен для всех выполняемых операций за исключением select
|
|||
|
||||
| ishimcity |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 1.6.2007 Где: Тюменская область . Ишим Репутация: нет Всего: 1 |
Без Commit неработало (((( с созданием разобрался а вот как проверить что уже создал поля?
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
А если select влёчет за собой update?
|
|||
|
||||
| Deniz |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
1.
2.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||||
|
|||||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
удалил, т.к. к INTERBASE пост не относился
Это сообщение отредактировал(а) Kbl4AH - 30.4.2009, 08:58 |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
если внимательно прочитать первый пост Автора, то станет понятно что работает он с INTERBASE
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
удалил, т.к. флуд
Это сообщение отредактировал(а) Kbl4AH - 30.4.2009, 08:59 |
|||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: нет Всего: 3 |
Kbl4AH, а чему же вы удивились?
для select хватает только открыть DataSet, для всех остальных необходим commit и ExecSQL p.s. просто своими ответами вы человека, который и так не знает, вводите с сомнение... про то в оракле автокоммит идёт я и так знаю... я отвечал конкретно по вопросу и конкретной для СУБД |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
виноват, просто сразу не понял этого... контекст твоего поста адресованного нам с Данкингом неоднозначен...
лично мне стало ясно, что ты имел ввиду конкретно IB, только после того, как заметил, что тему переместили из Делфи... Это сообщение отредактировал(а) Kbl4AH - 30.4.2009, 09:26 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: нет Всего: 3 |
Akella, мусор в любом случае будет, поэтому и рекомендуют чистить базу раз в месяц
запускать gfix.exe с ключём -sweep |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Ну сервер и сам умеет чистить базу. Это зависит от количества транзакций.
|
|||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: нет Всего: 3 |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Во время Select. Иногда вроде простой Select... а выполняется долго.
Есть такое понятие, как sweep интервал, по умолчанию он равен 20000. 20000 - это разница между OIT и OST/OAT. Добавлено через 52 секунды sweep |
|||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: нет Всего: 3 |
Akella, конечно всё супер, но когда начинается свипинг, то работа очень тормозится...
я лично свипингую свои базы каждый день перед созданием бекапа ежедневного |
|||
|
||||
| meti |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 24.5.2009 Репутация: нет Всего: нет |
Можно и так, только здесь все наоборот, сначала проверяется существует ли поле, а потом оно создается
EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME = TblName AND RDB$FIELD_NAME = FldName)) THEN BEGIN EXECUTE STATEMENT 'ALTER TABLE TblName ADD FldName INTEGER';'; END END |
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |