Re[7]: Получение значения индекса. ADO.NET
От: Starpom Россия  
Дата: 08.06.07 14:39
Оценка:
Здравствуйте, 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.
ФЛАГ!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.