Здравствуйте!
Я пишу на Delphi свой собственный OLE DB Provider, который должен использоваться как DSO (Data Source Object) в Internet Explorer-е. Технология DHTML Data Binding (
http://msdn.microsoft.com/en-us/library/ms531388(vs.85).aspx)
При написании такого COM об"єкта возникли некоторые трудности.
Я успешно реализовал OLEDBSimpleProvider интерфейс, что хватает для отображения данных в tabular data consumers (таблицах). Но есть ещё single-valued consumers (такие как input, span), когда я их подключаю к своему DSO, в них отображаются данные только из первой строки моих данных. Я не знаю как им сообщить что активная строка в моём DSO поменялась.
Мой DSO предназначенный для соединения обычного делфи TDataset и Internet Explorer-a (WebBrowser ActiveX control). Вызвав Dataset.Next нужно что бы DSO (который получает все события от Dataset) сообщил single-valued consumer-ам брать данные из следующей строки моего DSO. OLEDBSimpleProviderListener не поддерживает таких уведомлений.
TDC (Microsoft Tabular Data Control), который поставляется вместе с Internet Explorer-ом и предназначенный для отображения данных из CSV файлов, реализует OLEDBSimpleProvider интерфейс. Но при этом у него можно вызвать TDC.recordset.GetNextRow и все input-ы и span-ы начинают отображать данные из следующей строки.
Как можно сообщить компонентам Internet Explorer-а брать данные из другой строки моего DSO?