Я использую драйвер Informix.NET (C #) для вставки строки в таблицу базы данных.Это прекрасно работает, за исключением того, что я не знаю, как получить идентификатор последней вставленной строки:
Команда вставки:
//Sample Query: "INSERT INTO names (id, name) values (0, 'John Smith');"
public static void Insert(String query)
{
try
{
using (IFX::IfxConnection connection = ConnectionManager.GetConnection())
{
connection.Open();
using (IFX::IfxCommand command = new IFX::IfxCommand(query, connection))
command.ExecuteNonQuery();
if (connection != null) connection.Close();
}
}
catch (IFX::IfxException)
{
throw;
}
catch (Exception)
{
throw;
}
}
Если я изменю запрос такчто оно включает: «ВЫБЕРИТЕ DBINFO ('sqlca.sqlerrd1') ОТ systables WHERE tabid = 1;"Я получаю ошибки (эта строка работает с использованием unix dbaccess) Я получаю ошибки.
Я также пытался изменить такие вещи, как использование IFX::IfxReader reader = command.ExecuteReader()
, чтобы попытаться получить результаты и прочитать их, однако я получаю ошибки,(«ОШИБКА [HY000] [Поставщик Informix .NET] [Informix] Невозможно использовать оператор выбора или какой-либо из операторов базы данных при подготовке нескольких запросов.»).Я также пытался предшествовать этому с command.Prepare();
, но это ничего не делает.Я действительно не уверен, как сделать вставку и получить идентификатор через C # Informix.NET Client SDK.
=========
О, и я знаю, что могу запуститьдва оператора по отдельности, которые будут работать, за исключением того, что я беспокоюсь о том, что будет выполнена другая вставка между первым и получением идентификационного номера, что приведет к ошибкам.