Текущий архив: 2003.07.31;
Скачать: CL | DM;
Вниз
Сохранение НД Найти похожие ветки
← →
Spawn (2003-07-10 08:29) [0]Разобрался с одной проблемой, а щас такая вот возникла:
Делаю изменения в DBGrid - все ок(Присутствует TIBUpdateSQL).
Вызываю стандартное событие из TActionList - DataSetPost и данные не сохраняются на сервере. Пробовал делать IBTransaction.Commit - тоже ни чего не сохрагяется. Свойство CachedUpdates у IBQuery стоит в True. SQL - запросы у IBUpdateSQL сгенерированны компонентом. В чем проблема? Заранее спасибо.
← →
Spawn (2003-07-10 08:31) [1]При вызове же IBUpdateSQL.Apply(ukModify) возникает ошибка.
← →
Zacho (2003-07-10 08:34) [2]Во-первых, делай IBQuery.ApplyUpdates вместо IBUpdateSQL.Apply(ukModify)
Во-вторых, выкинь IBQuery и используй IBDataSet
← →
Spawn (2003-07-10 08:47) [3]Использую IBDataSet, при вызове IBQuery.ApplyUpdates возникает ошибка IBInterBaseError with message "internal error"(причем она возникает тоьлко в том случае, если добавить/изменить данные в DBGrid)
← →
Spawn (2003-07-10 08:48) [4]То есть при вызове IBDataSet.ApplyUpdates;
← →
Zacho (2003-07-10 08:53) [5]
> Spawn © (10.07.03 08:47)
Ничего не понял, так у тебя IBDataSet или IBQuery ?
А вообще похоже на баг в IBX, попробуй поставить другую версию.
← →
Spawn (2003-07-10 08:54) [6]IBDataSet у меня
← →
Spawn (2003-07-10 08:56) [7]Я FireBird сверху поставил
← →
Zacho (2003-07-10 09:08) [8]
> Spawn © (10.07.03 08:54)
> IBDataSet у меня
Выключи CachedUpdates. Практически в каждой версии IBX есть баги в CachedUpdates.
> Spawn © (10.07.03 08:56)
А это вообще к этой проблеме отношения не имеет.
← →
Spawn (2003-07-10 09:11) [9]Та же ошибка без CachedUpdates
← →
VAleksey (2003-07-10 09:14) [10]Код запроса и код запроса на обновление давай.
← →
Johnmen (2003-07-10 09:15) [11]>Spawn © (10.07.03 08:56)
>Я FireBird сверху поставил
А для БД сделал backup/restore ? Или сразу стал использовать под FB ?
← →
Spawn (2003-07-10 09:16) [12]Код сгенерированный компонентом:
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
← →
Spawn (2003-07-10 09:17) [13]Johnmen © (10.07.03 09:15) сразу начал использовать. А с этим связаны какие то проблемы?
← →
ЮЮ (2003-07-10 09:23) [14]>Запрос самый обычный:
Гораздо лучше, когда он выглядит так: :-)
update DOCUMENTS
set
NAME = :NAME,
ANNOT = :ANNOT,
PICTURE = :PICTURE,
DEVFIO = :DEVFIO,
TEL = :TEL,
LABNUM = :LABNUM,
ZAVFIO = :ZAVFIO
where
ID = :OLD_ID
← →
Johnmen (2003-07-10 09:34) [15]>Spawn © (10.07.03 09:17)
Ещё какие...
Общая рекомендация, приводимая практически везде - backup под предыдущей версией сервера и restore под новой.
Иначе могут быть трудноуловимые, практически неисправляемые глюки при работе с БД.
← →
Spawn (2003-07-10 11:05) [16]Так что то тут не то. Короче, я проверил прилагаемую к книге прогу для работы с базой employee. Перевел ее на файл серверную все было ок и прекрасно работало (Практически те же самые запросы что и я делал). Я решил заново создать свою БД, поскольку записей там практически еще и нету. Но вот проблемка - первую свою БД я создал, преобразовав ее из Paradox БД в InterBase (и кстати при этом какая то ошибка вылезла). Но, рещив ее сделать с нуля, не могу ее сохранить. Создаю в IBConsole файл в котором будут храниться таблицы InterBase. Затем пытался создать в DataBase Desktop таблицу и добавить в файл, но не тут то было ))) Не как не сохранить там. Неужели нужно создавать таблицу SQL-ем? Что то типа Create Table ???
← →
Zacho (2003-07-10 11:20) [17]
> 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:40) [18]Создал в Interactive SQL таблицу. А можно ли после этого изменть тип поля?
← →
Zacho (2003-07-10 12:00) [19]
> Spawn © (10.07.03 11:40)
Можно. Удали это поле и создай новое.
Читай Data Definition Guide, Chapter 6 "Working with Tables", Altering tables
А вообще, как ты себе представляешь изменение типа поля ? Что при этом должно происходить с данными, которые были в этом поле ?
← →
Spawn (2003-07-10 12:09) [20]Нет) Я не собираюсь во время работы базы менять поля. Просто во время создания создал не то поле (Но уже прочитал, что нужно юзать ALTER TABLE ... для удаления/добавления этих полей). Ошибки не стало, но сохранения данных в базе не происходит))) Ни при ApplyApdates, ни при использовании Action-события DataSetPost
← →
Spawn (2003-07-10 12:37) [21]Меня ето просто бесит уже!!! Как так то. Почему данные не созраняются на сервере. Делаю абсолютно все как было написано в книге. Даже так сделал - в рабочей программе от книги, заменил базу на свою. DBGrid заполняется данными, но после редактирования и выходе из проги данные не сохраняются. КАК ТАКОЕ МОЖЕ БЫТЬ!!!!!!!
← →
Spawn (2003-07-10 13:40) [22]Еще одно наблюдение - я могу добавить первую запись в DBGrid, после чего следущие попытки изменения ни к чему не приводят. То же самое справедливо для добавленых записей(то есть максимум какйю запись я могу изменить - это первую и всего один раз).
← →
Spawn (2003-07-10 13:46) [23]И если в это первое поле (тип VARCHAR) ввести не числовое значение и попытаться сохранить данные, то возникает ошибка -
EIBInterBaseError with message "arithmetic exception, numeric overflow, or string truncation". К чему бы это?
← →
Mike1 Kouzmine1 (2003-07-10 13:49) [24]Транзакции?
Св-ва IBDatabase?
← →
Spawn (2003-07-10 13:54) [25]Так с одним я разобрался нужно было указать Primary Key для того чтобы я мог вносить изменения в любую запись. Теперь другая проблемы - если ввожу значения отличные от цифр, то возникает ошибка, описанная мною выше.
← →
Mike1 Kouzmine1 (2003-07-10 13:57) [26]При подключении - какая кодировка указана?
← →
Spawn (2003-07-10 13:57) [27]Так еще одно прояснение))) Ошибка вылетает только с русскими буквами)) Где то я тут видел тему на етот счет ща найду) Кажись мои мучения подходят к концу)
← →
Spawn (2003-07-10 13:59) [28]Mike1 Kouzmine1 (10.07.03 13:57) Кодировка Pdox ANSI Cyrillic
← →
Mike1 Kouzmine1 (2003-07-10 14:04) [29]А что это такое для компонент прямого доступа?
Может какая другая нужна? Например, win1251?
← →
Spawn (2003-07-10 14:07) [30]Это в BDE администраторе она такая, а так то конечно win1251
← →
Mike1 Kouzmine1 (2003-07-10 14:32) [31]А как именно она указана для IBDatabase?
← →
Spawn (2003-07-10 14:38) [32]Всмысле для IBDataBase? Там разве тоже кодировку можно прописывать? Я такого свойства не видел там, разве что в Params?
← →
Johnmen (2003-07-10 14:44) [33]Даблклик на IBDataBase или в Params lc_ctype=WIN1251
← →
Spawn (2003-07-10 15:04) [34]Johnmen © (10.07.03 14:44) большое спасибо.
И все таки не Primary Key влияло на невозможность внесения данных в БД, а наличие в ней BLOB полей(Протестировал на 5 различных комбинациях и там где были BLOB изменять нельзя другие поля после их первого установления). Почему так?
← →
Johnmen (2003-07-10 15:26) [35]Как прописан ModifySQL ?
← →
Spawn (2003-07-10 16:36) [36]Сгенерированный компонентом:
update DOC
set
ID = :ID,
NAME = :NAME,
ANNOT = :ANNOT, //BLOB
PICTURE = :PICTURE, //BLOB
DEVFIO = :DEVFIO,
TEL = :TEL,
LABN = :LABN,
ZAVFIO = :ZAVFIO
where
ID = :OLD_ID and
NAME = :OLD_NAME and
ANNOT = :OLD_ANNOT and //BLOB
PICTURE = :OLD_PICTURE and //BLOB
DEVFIO = :OLD_DEVFIO and
TEL = :OLD_TEL and
LABN = :OLD_LABN and
ZAVFIO = :OLD_ZAVFIO
← →
Johnmen (2003-07-10 16:53) [37]Разве в where одного поля ID не достаточно для однозначной идентификации записи ? :)
ANNOT = :OLD_ANNOT and //BLOB
PICTURE = :OLD_PICTURE and //BLOB
А это вообще что-то немыслимое...:)
← →
Spawn (2003-07-10 17:01) [38]Дак я на SQL перешел пару дней назад и до этого то один раз только базами занимался, а литературы по нми хорошей нет)))) Не подскажешь ли что с Блобами делать?
← →
Spawn (2003-07-10 17:04) [39]Ладно)) Вроде пока все нормально Блобы нацеплю на TDBImage и TDBMemo
← →
Johnmen (2003-07-10 17:13) [40]>Spawn © (10.07.03 17:01)
Я бы на твоём месте всё-таки сначала почитал книги, прежде чем топтать клаву на предмет баз данных...:)))
Страницы: 1 2 вся ветка
Текущий архив: 2003.07.31;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.008 c