Стоит такая задача, вставить запись в таблицу и получить референс только что вставленной записи. Пишу на C# (Framework 2.0) под Oracle. Подозреваю, что применяемый мною метод не самый элегантный. Может кто нибудь знает более короткий и эфективный?
Код | public virtual bool MakeOperation(OracleTransaction RunningTransaction) { bool Result = false; OracleCommand Command; OracleDataReader DataReader;
string CommandText = " insert into table1 \n" + " values ( table1_seq.nextval, \n" + " :Param1, \n" + " :Param2 \n";
Command = new OracleCommand(CommandText, RunningTransaction.Connection); Command.Parameters.AddWithValue(":Param1" , Param1Value); Command.Parameters.AddWithValue(":Param2" , Param2Value);
Command.Transaction = RunningTransaction; try { if (Command.ExecuteNonQuery() == 1) { Command = new OracleCommand(" select table1_seq.currval Reference from DUAL ", RunningTransaction.Connection, RunningTransaction);
DataReader = Command.ExecuteReader(CommandBehavior.SingleResult);
if (DataReader.Read()) fReference = DataReader.GetInt32(DataReader.GetOrdinal("Reference"));
Result = fReference > 0; } } catch { RunningTransaction.Rollback(); return Result; } return Result; }
|
|