Здравствуйте, _Senya.
Сделайте второй запрос.
Что то типа:
SELECT MAX(id) from tbl_messages;
С уважением, Молоков В.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Возможно, вопрос глупый,но все-таки хотелось бы получить ответ.
У меня есть таблица Сообщений с полем msg_id (autonumber)
Имею:
private OleDbCommand Command_Message_Create(Message message)
{
string cmdText = new StringBuilder()
.Append(" INSERT INTO tbl_messages")
.Append(" (")
.Append(" type,")
.Append(" header,")
.Append(" date_received,")
.Append(" date_read,")
.Append(" casier_id,")
.Append(" msg")
.Append(" )")
.Append(" VALUES")
.Append(" (")
.Append(" @type,")
.Append(" @header,")
.Append(" @date_received,")
.Append(" @date_read,")
.Append(" @casier_id,")
.Append(" @msg")
.Append(" )")
.ToString();
OleDbCommand cmd = new OleDbCommand(cmdText, connection);
cmd.Parameters.Add(new OleDbParameter("@type", OleDbType.Integer,
4, ParameterDirection.Input, true, 0, 0, "type",
DataRowVersion.Current, DB.ToDB(message.Type))
);
cmd.Parameters.Add(new OleDbParameter("@header", OleDbType.VarChar,
50, ParameterDirection.Input, true, 0, 0, "header",
DataRowVersion.Current, DB.ToDB(message.Header))
);
cmd.Parameters.Add(new OleDbParameter("@date_received", OleDbType.Date,
16, ParameterDirection.Input, true, 0, 0, "date_received",
DataRowVersion.Current, DB.ToDB(message.DateReceived))
);
cmd.Parameters.Add(new OleDbParameter("@date_read", OleDbType.Date,
16, ParameterDirection.Input, true, 0, 0, "date_read",
DataRowVersion.Current, DB.ToDB(message.DateRead))
);
cmd.Parameters.Add(new OleDbParameter("@casier_id", OleDbType.Integer,
4, ParameterDirection.Input, true, 0, 0, "casier_id",
DataRowVersion.Current, DB.ToDB(message.CasierID))
);
cmd.Parameters.Add("@msg", DB.ToDB(message.Text));
return cmd;
}
/// <summary>
/// Creates a message in DB
/// </summary>
/// <param name="message">Message to create</param>
public void Message_Create(Message message)
{
OleDbCommand cmd = Command_Message_Create(message);
try
{
cmd.ExecuteNonQuery();
}
finally
{
cmd.Dispose();
}
}
Хотелось бы после вызова команды записывать в объект ID вставленной записи... Но как? Поддержки хранимых процедур нет. Два запроса подряд через ";" выполнить не удается...
Спасибо.
в данном случае имеются некоторые заморочки!
ИМХО самый простой выход это такой (у мея у самого так сделано):
при вставке новой записи использовать не запрос на добавление, а открытый рекодсет...
добавляем в него запись и после Update() имеем в ключевом поле вставленное значение.
Здравствуйте, magone, Вы писали:
см.
Retrieving Identity or Autonumber Values
Предложено в событии OnRowUpdated вызывать SELECT @@IDENTITY