Эквивалент свойства 'AutoInsert' для источника данных? - PullRequest
2 голосов
/ 06 февраля 2011

Извините, если вопрос кажется расплывчатым, пожалуйста, позвольте мне объяснить.

У меня есть два набора данных, называемых, скажем, Master и Extensions. У них один и тот же первичный ключ, но не все основные записи имеют запись расширений (это важный момент).

Пользовательский интерфейс - это обычные элементы управления данными, связанные источниками данных, помещенными в TPageControl, со страницей / вкладкой для каждого набора данных. TDBNavigator, связанный с основным набором данных, позволяет пользователю просматривать записи.

Пользователь может находиться на странице / вкладке Расширения во время просмотра и может захотеть редактировать данные записи Расширений. Если запись расширения уже существует, все хорошо, потому что свойство AutoEdit источника данных автоматически переводит набор данных в режим редактирования.

Но что, если нет записи Extensions? Полагаю, мне нужен эквивалент свойства AutoInsert, которое автоматически переводило бы набор данных в режим вставки, если пользователь начинает вводить один из элементов управления. (и я всегда могу установить первичный ключ в событии BeforeInsert).

Есть мысли, как мне этого добиться?

Спасибо за любой совет и спасибо за чтение длинного вопроса, С уважением PhilW.

1 Ответ

2 голосов
/ 07 февраля 2011

Я бы программно вставлял запись, когда пользователь вводил какой-либо из редактируемых элементов управления, и удалял ее впоследствии, если она не нужна. Вы должны быть в состоянии сделать это, не обращаясь к базе данных вообще, поэтому единственная реальная цена - это небольшой код.

Я не думаю, что это действительно автоматически, когда вы вставляете новую строку в середину разреженной таблицы, как это.

...