![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение НД [D7, IB6.x]
Spawn © (2003-07-10 08:29:00)Разобрался с одной проблемой, а щас такая вот возникла:
Делаю изменения в DBGrid - все ок(Присутствует TIBUpdateSQL).
Вызываю стандартное событие из TActionList - DataSetPost и данные не сохраняются на сервере. Пробовал делать IBTransaction.Commit - тоже ни чего не сохрагяется. Свойство CachedUpdates у IBQuery стоит в True. SQL - запросы у IBUpdateSQL сгенерированны компонентом. В чем проблема? Заранее спасибо.
Spawn (2003-07-10 12:09:00) [21]Нет) Я не собираюсь во время работы базы менять поля. Просто во время создания создал не то поле (Но уже прочитал, что нужно юзать ALTER TABLE ... для удаления/добавления этих полей). Ошибки не стало, но сохранения данных в базе не происходит))) Ни при ApplyApdates, ни при использовании Action-события DataSetPost
Zacho (2003-07-10 12:00:00) [22]
> Spawn © (10.07.03 11:40)
Можно. Удали это поле и создай новое.
Читай Data Definition Guide, Chapter 6 "Working with Tables", Altering tables
А вообще, как ты себе представляешь изменение типа поля ? Что при этом должно происходить с данными, которые были в этом поле ?
Spawn (2003-07-10 11:40:00) [23]Создал в Interactive SQL таблицу. А можно ли после этого изменть тип поля?
Zacho (2003-07-10 11:20:00) [24]
> Spawn © (10.07.03 11:05)
А чего бы это DataBase Desktop работал с IB ?
Вообще-то и создание метаданных (таблицы, ХП, триггера и т.п.), и работа с данными в SQL-серверах делается только соответствующими SQL-запросами. А если тебе нужен инструмент для разработки и администрирования БД для IB - то смотри здесь: http://www.ibase.ru/d_tools.htm
Я бы посоветовал IBExpert - http://pwww.ibexpert.com
Spawn (2003-07-10 11:05:00) [25]Так что то тут не то. Короче, я проверил прилагаемую к книге прогу для работы с базой employee. Перевел ее на файл серверную все было ок и прекрасно работало (Практически те же самые запросы что и я делал). Я решил заново создать свою БД, поскольку записей там практически еще и нету. Но вот проблемка - первую свою БД я создал, преобразовав ее из Paradox БД в InterBase (и кстати при этом какая то ошибка вылезла). Но, рещив ее сделать с нуля, не могу ее сохранить. Создаю в IBConsole файл в котором будут храниться таблицы InterBase. Затем пытался создать в DataBase Desktop таблицу и добавить в файл, но не тут то было ))) Не как не сохранить там. Неужели нужно создавать таблицу SQL-ем? Что то типа Create Table ???
Johnmen (2003-07-10 09:34:00) [26]>Spawn © (10.07.03 09:17)
Ещё какие...
Общая рекомендация, приводимая практически везде - backup под предыдущей версией сервера и restore под новой.
Иначе могут быть трудноуловимые, практически неисправляемые глюки при работе с БД.
ЮЮ (2003-07-10 09:23:00) [27]>Запрос самый обычный:
Гораздо лучше, когда он выглядит так: :-)
update DOCUMENTS
set
NAME = :NAME,
ANNOT = :ANNOT,
PICTURE = :PICTURE,
DEVFIO = :DEVFIO,
TEL = :TEL,
LABNUM = :LABNUM,
ZAVFIO = :ZAVFIO
where
ID = :OLD_ID
Spawn (2003-07-10 09:17:00) [28]Johnmen © (10.07.03 09:15) сразу начал использовать. А с этим связаны какие то проблемы?
Spawn (2003-07-10 09:16:00) [29]Код сгенерированный компонентом:
Modify:
update DOCUMENTS
set
ID = :ID,
NAME = :NAME,
ANNOT = :ANNOT,
PICTURE = :PICTURE,
DEVFIO = :DEVFIO,
TEL = :TEL,
LABNUM = :LABNUM,
ZAVFIO = :ZAVFIO
where
ID = :OLD_ID and
NAME = :OLD_NAME and
ANNOT = :OLD_ANNOT and
PICTURE = :OLD_PICTURE and
DEVFIO = :OLD_DEVFIO and
TEL = :OLD_TEL and
LABNUM = :OLD_LABNUM and
ZAVFIO = :OLD_ZAVFIO
Запрос самый обычный:
SELECT * FROM Documents
Johnmen (2003-07-10 09:15:00) [30]>Spawn © (10.07.03 08:56)
>Я FireBird сверху поставил
А для БД сделал backup/restore ? Или сразу стал использовать под FB ?
VAleksey (2003-07-10 09:14:00) [31]Код запроса и код запроса на обновление давай.
Spawn (2003-07-10 09:11:00) [32]Та же ошибка без CachedUpdates
Zacho (2003-07-10 09:08:00) [33]
> Spawn © (10.07.03 08:54)
> IBDataSet у меня
Выключи CachedUpdates. Практически в каждой версии IBX есть баги в CachedUpdates.
> Spawn © (10.07.03 08:56)
А это вообще к этой проблеме отношения не имеет.
Spawn (2003-07-10 08:56:00) [34]Я FireBird сверху поставил
Spawn (2003-07-10 08:54:00) [35]IBDataSet у меня
Zacho (2003-07-10 08:53:00) [36]
> Spawn © (10.07.03 08:47)
Ничего не понял, так у тебя IBDataSet или IBQuery ?
А вообще похоже на баг в IBX, попробуй поставить другую версию.
Spawn (2003-07-10 08:48:00) [37]То есть при вызове IBDataSet.ApplyUpdates;
Spawn (2003-07-10 08:47:00) [38]Использую IBDataSet, при вызове IBQuery.ApplyUpdates возникает ошибка IBInterBaseError with message "internal error"(причем она возникает тоьлко в том случае, если добавить/изменить данные в DBGrid)
Zacho (2003-07-10 08:34:00) [39]Во-первых, делай IBQuery.ApplyUpdates вместо IBUpdateSQL.Apply(ukModify)
Во-вторых, выкинь IBQuery и используй IBDataSet
Spawn (2003-07-10 08:31:00) [40]При вызове же IBUpdateSQL.Apply(ukModify) возникает ошибка.