Здравствуйте, kisel, Вы писали:
K>Здравствуйте, Starpom, Вы писали:
S>>Здравствуйте, kisel, Вы писали:
K>>>Здравствуйте, Starpom, Вы писали:
S>>>>а вот для OLE (облегченная версия прогр.) ... не пошло. Тут подсказали попробовать S>adapter.OnRowUpdated — буду испытывать.
K>>>а что используется в качестве СУБД?
S>>FoxPro 9
K>Вроде как FoxPro поддерживает Хранимые процедуры ...
K>зачем что то менять, в ХП по прежнему можно вернуть значение нового ID ...
K>ID Вы генерируете по какому то алгоритму или ID генерирует FoxPro и Вы не знаете функцию аналочичную функции @@identity SQL Server-а?
Да потдерживает, но есть ограничения и я действительно не знаю функцию @@identity (помоему её просто нет), но первичное решение такое:
this.m_DA_Cargo.RowUpdating += new OleDbRowUpdatedEventHandler(OnRowUpdating);
вот и обработчик.
protected void OnRowUpdating( object sender, OleDbRowUpdatingEventArgs args)
{
int newId = 0;
if(args.StatementType == StatementType.Insert )
{
newId = common_proc.cp_GetCurID(m_con, "CARGO"); // Статик функция вызова ХП для получения id
args.Row["ID"] = newId;
}
}
Это помогло избавиться от clear и fill и потери установки курсора в BindingSource.