Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
NewUserss Гость
|
Добавлено: Пн Дек 15 2003 10:59 Заголовок сообщения: Помогите разобраться в с++Вuilder и InterBase |
|
|
Когда выхожу из прграммы и захожу снова, то ввижу что запись не изменилась. Мне нужно отредактировать два поля в БД.
Задача: Отредактировать путь к файлу и если нужно то и имя файла.
Действия: Пользователь щелкает правой кнопкой мыши на нужной записи в гриде, и с помощью диалога выбора файла указывает где находится новый файл.
Проблема изменения видны только пока программа не закрыта.
Код пишу так:
В компоненте "IBDataSet1" установлены параметры
ModifiSQL: update DOCUMENTS set EDOCNAME =:EDOCNAME, PATHDOC =:PATHDOC where EDOCNAME = "'+nname+'" and PATHDOC = '"+npat+"'.
RefreshSQL
Select
PATHDOC,
EDOCNAME
и т.д.
from DOCUMENTS
where
PATHDOC = :PATHDOC and
PATHFOLDER = :PATHFOLDER and
и т.д.
Код на кнопке:
if(FMain->OpenDialog->Execute()) {
npat = FMain->OpenDialog->FileName;
nname = ExtractFileName(FMain->OpenDialog->FileName);
DataModule1->IBDataSet1->Edit();
DataModule1->IBDataSet1->CachedUpdates=false;
DataModule1->IBDataSet1->FieldByName("PATHDOC")->AsString = npat;
if(DataModule1->IBDataSet1->FieldValues["EDOCNAME"] != nname)
{ DataModule1->IBDataSet1->FieldByName("EDOCNAME")->AsString = nname; }
DataModule1->IBDataSet1->CachedUpdates=false;
DataModule1->IBDataSet1->UpdateRecord();
DataModule1->IBDataSet1->ApplyUpdates();
DataModule1->IBTransaction1->CommitRetaining();
}
Предположения:
- Не правильно открывается/закрывается транзакция.
- Не происходит сохранения после открытия DataModule1->IBDataSet1->Edit();
-
-
|
|
Вернуться к началу |
|
|
? Гость
|
Добавлено: Пн Дек 15 2003 15:16 Заголовок сообщения: ??? |
|
|
|
|
Вернуться к началу |
|
|
NweUserss Гость
|
Добавлено: Пн Дек 15 2003 15:17 Заголовок сообщения: ??? |
|
|
|
|
Вернуться к началу |
|
|
|