![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с FIBPlus [D5, IB6.x]
guest_Dmitry © (2005-01-28 07:46:00)Перевел приложение с FIB3 на FIBPlus4.8. В результате начались глюки на ранее нормально работавшем коде. К примеру, при вызове метода post для датасета возникает ошибка Dataset not in Edit or Insert mode, хотя состояние датасета dsEdit, и более никаких методов post или cancel не применятся. Подскажите, где проявляется кривизна рук.
guest_Dmitry (2005-01-30 13:57:00) [1]Может все-таки есть у кого-нибудь мысли по данному вопросу, пните в нужную сторону..
guest_Dmitry (2005-01-29 14:01:00) [2]... не доходит до меня почему так ...
Alexandr (2005-01-29 13:57:00) [3]ну и...
guest_Dmitry (2005-01-29 13:31:00) [4]Прошелся отладчиком. Ошибка возникает в модуле FIBDataSet:
procedure TFIBCustomDataSet.Resync(Mode: TResyncMode);
begin
if vInGotoBookMark then
try
vInGotoBookMark:=False;
inherited Resync([])
finally
EnableControls;
EnableScrollEvents;
end
else
inherited Resync(Mode)
end;
в выделенной строке.
Alexandr (2005-01-29 10:12:00) [5]а может все-таки отладчиком пройтись и разобраться?
guest_Dmitry (2005-01-29 06:57:00) [6]Не было бы так смешно, если бы не было так грустно. Приложение работало без проблем в течении трех лет, пока не перешел на новые фибы. Тем более кода то как кот наплакал. Может фибы криво поставил...
Johnmen (2005-01-29 01:46:00) [7]>Поменял - тоже самое...
> возникает ошибка Dataset not in Edit or Insert mode
Враньё, однозначно...
guest_Dmitry (2005-01-28 14:24:00) [8]Поменял - тоже самое...
Val (2005-01-28 14:11:00) [9]Может попробовать все-таки заменить <> dsBrowse на in [dsInsert,dsEdit], скажем?
guest_Dmitry (2005-01-28 13:02:00) [10]смотрел отладчиком, в том то и вся проблема, - dsEdit показывает.
Alexandr (2005-01-28 12:53:00) [11]посмотри отладчиков чего в srDocstring.DataSet.State
сдается мне там что-то отлмчное от browse, insert и edit
guest_Dmitry (2005-01-28 12:42:00) [12]извиняюсь, забыл тэг закрыть
ошбка в srDocstring.DataSet.Post;
guest_Dmitry (2005-01-28 12:39:00) [13]гм.. вот код:
procedure TfrDocstring.sbSaveClick(Sender: TObject);
begin
inherited;
if srDocstring.DataSet.State <> dsBrowse then
try
srDocstring.DataSet.Post;
except end;
sbSave.Enabled:=false;
Close;
end;
и далее onClose:
procedure TfrDocstring.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if (srDocstring.DataSet<>nil) and (sbSave.Enabled) and
(srDocstring.DataSet.State <> dsBrowse) then
try
srDocstring.DataSet.Cancel;
except end;
end;
Вот и весь собственно код.
В выделенной строке дает ошибку, хотя дытасет находится в dsEdit.
Alexandr (2005-01-28 10:05:00) [14]1) а где взял FIBPlus?
2) переход сильно длинный, а значит надо весь код пересматривать, а особенно указанную 17 строку.
Johnmen (2005-01-28 09:42:00) [15]в 17 строке