Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

Удаление записей из таблицы Oracle   Найти похожие ветки 

 
snl73 ©   (2004-11-21 10:04) [0]

Hi, многоуважаемый All!
Для доступа к Oracle использую DOA 3.4.5
У меня такие вопросы:
1) Удаление записи из базы.
Делаю так:
на форме лежит компонент OracleQuery.
Добавляю переменную id : String;
в SQL прописываю delete from MyTable where rowid = :id.
в обработке события на удаление прописываю:
 OracleQuery.SetVariable("id", DataSet.RowId);
 OracleQuery.Execute;
 DataSet.Close;
 DataSet.Open;

DataSet связан с той же таблицей.
после всех этих манипуляций ничего не происходит.
И еще не отслеживается RowID, хотя точно известно, что это поле есть (служебное Oracle)
Пытаюсь отследить так:
procedure TfOst.dbgNezostKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (KEY = VK_UP) or (KEY = VK_DOWN) then Label1.Caption := " RowID = " + DataSet.RowId;
end;

2) как перевести DataSet в режим Edit.
Конструкция DataSet.Edit вызывает exception:
OracleDataSet: Cannot modify a read-only dataset.
а при использовании ADO все работает без проблем.


 
Sergey13 ©   (2004-11-22 09:38) [1]

2snl73 ©   (21.11.04 10:04)

1.А зачем в этом случае пользоваться rowid? Достаточно просто ID.
delete from MyTable where id = :id
OracleQuery.SetVariable("id", DataSetId.asInteger);

2.Для этого в текст запроса надо ввести RowId, типа
Select *,rowid from table_name


 
Petr V. Abramov ©   (2004-11-22 12:30) [2]

Если есть желание все insert/update/delete делать ручками (что, IMHO, правильно) поставьте CachedUpdates в true


 
snl73 ©   (2004-11-26 20:50) [3]

Спасибо за помощь в решении проблемы. Помогло это:

> 2.Для этого в текст запроса надо ввести RowId, типа
> Select *,rowid from table_name

только надо перечислять все запращиваемые поля


 
Внук ©   (2004-11-27 16:39) [4]

>>только надо перечислять все запращиваемые поля
Не надо, достаточно написать
Select table_name.*,table_name.rowid from table_name



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.205 c
1-1102973598
Ольга
2004-12-14 00:33
2004.12.26
MessageBox или Application.MessageBox


14-1102433005
Сергей Г
2004-12-07 18:23
2004.12.26
Куда мы катимся


9-1093536394
MANGOL
2004-08-26 20:06
2004.12.26
Затухающий экран


4-1100012387
Eraszer
2004-11-09 17:59
2004.12.26
Hint из панели задач в стиле "Нехватает виртуальной памяти"


3-1101965139
janb
2004-12-02 08:25
2004.12.26
MyODBC driver