транзакция

  • Автор темы doom
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

doom

#1
Привет, всем!!

у меня приложение на delphi база-oracle.
У меня многопользовательское приложение.
Если один пользователь выбирает определенные данные, они заносятся в другую таблицу БД, другой пользователь так же выдирает свои данные из БД, которые также записываются в ту же таблицу.
Вопрос: можно ли сделать так чтоб пользователи не видели данных друг друга. Таблица, в которую пишутся данные подключена к dbgridу.
Использовала транзакцию, не получилось :) Помогите пожалуйста! вот код:
Код:
if ADOConnection1.InTransaction Then
Exit;

if ADOQuery4.Active then
ADOQuery4.Close;

ADOConnection1.BeginTrans;

with ADOQuery4 do
begin

SQL.Clear;
SQL.Add('INSERT INTO ibank2.megasoft2');
SQL.Add('(clienti_id, name_cln,opera_id)');
SQL.Add('VALUES(');
SQL.Add(#39+ADOQuery3.FieldByName('client_id').AsString+#39+','+#39+ADOQuery3.FieldByName('name_cln').AsString+#39+', '+#39+ADOQuery3.FieldByName('operator_id').AsString+#39')');
//SQL.Add('where ibank2.operators.operator_id= :t ');
//ADOQuery4.Parameters.FindParam('t').Value:=label4.Caption;
try
ExecSQL;
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;

end;
 
S

Shtirlitz

#2
Теоретически, у каждого пользователя должен быть свой коннект(сессия) и он может видеть данные из таблиц со времени последнего коммита.Если пользователь поддверждает сохранение данных, то это делается при помощи post, а не commit. в этом случае видеть результат сохранения сможет только он, а окончательно сохранить можно с commit.Я не спец в Дельфи, но в Оракуле именно так работаю.
 
D
#3
Вариант: Ввести дополнительное поле с кодом пользователя и не увидят они данные друг друга.
 
04.09.2006
2 566
3
#4
<!--QuoteBegin-DZX+7:02:2007, 12:17 -->
<span class="vbquote">(DZX @ 7:02:2007, 12:17 )</span><!--QuoteEBegin-->Вариант: Ввести дополнительное поле с кодом пользователя и не увидят они данные друг друга.
[snapback]55276" rel="nofollow" target="_blank[/snapback]​
[/quote]
Когда-то именно так и делал, в качестве дополнительного поля использовал GUID юзера
 
Статус
Закрыто для дальнейших ответов.