Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обновить запись в DataSet без запроса? 
V
    Опции темы
Kbl4AH
Дата 5.12.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Здравствуйте, уважаемые градари!
Возник следующий вопрос.
Использую OracleDataSet.
Нужно изменить запись.
Раньше делал так, но это как-то по-горбатому, по-моему:
Код

OracleQuery.SQL.Text := 'update table set pole = ''-'' where rowidtochar(rowid) = :rowid';
OracleQuery.Execute;
OracleSession.Commit;
OracleDataSet.Refresh;

Хотелось бы что-то типа этого (плохо в этом разбираюсь), чтобы из-за такой мелочи запрос не городить:
Код

OracleDataSet1.FieldValues['pole'] := '-';
// или
OracleDataSet1.FieldByName('pole').Value := '-';

С благодарностью жду предложений smile 

Это сообщение отредактировал(а) Kbl4AH - 5.12.2008, 10:55
PM MAIL ICQ   Вверх
Kbl4AH
Дата 5.12.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Посмотрел, вроде, следующее 
Код
OracleDataSet1.FieldByName('pole').Value := '-';
 работает, но при завершении программы изменение не сохраняется в таблице. Как бы его зафиксировать?
PM MAIL ICQ   Вверх
Данкинг
Дата 5.12.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ну, попробуй
Код

OracleDataSet1.Post;

Хотя мне кажется, это в случае с Oracle ещё более горбато.

Это сообщение отредактировал(а) Данкинг - 5.12.2008, 11:49


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 5.12.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Данкинг @ 5.12.2008,  12:49)
Ну, попробуй
Код

OracleDataSet1.Post;

Хотя мне кажется, это в случае с Oracle ещё более горбато.

СПАСИБО, попробовал, получилось (и нисколько не горбато, по-моему... очень даже оптимально)!!! только еще надо Edit добавить:
Код

OracleDataSet1.Edit;
OracleDataSet1.FieldByName('pole').Value := '-';
OracleDataSet1.Post;

А я все апдейты пытался воткнуть:
Код

OracleDataSet1.StartUpdates;
OracleDataSet1.FieldByName('pole').Value := '-';
OracleDataSet1.CommitUpdates;

Кто-нибудь может разъяснить разницу между этими двумя вариантами?

Это сообщение отредактировал(а) Kbl4AH - 5.12.2008, 13:17
PM MAIL ICQ   Вверх
Someone
Дата 25.3.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.12.2005

Репутация: нет
Всего: нет



Возможно сетевой и монопольный варианты?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0834 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.