Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение НД [D7, IB6.x]


Страницы:   1 2

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) возникает ошибка.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо