У меня очень похожий код this, чтобы дублировать компонент TADODataSet
и его события.Дублирующий компонент TADODataSet с потоковыми полями?
Итак, если у меня есть ADODataSet1
Я хочу создать новый экземпляр ADODataSet2
как точный дублирующий компонент предыдущего компонента.
Все работает отлично, но все-таки я не могу дублировать потоковые поля (ADODataSet1PollID
, ADODataSet1Title
, ADODataSet1Description
):
object ADODataSet1: TADODataSet
Connection = ADOConnection1
CursorType = ctStatic
AfterOpen = ADODataSet1AfterOpen
CommandText = 'select top 10 * from Polls'
Parameters = <>
Left = 224
Top = 40
object ADODataSet1PollID: TGuidField
FieldName = 'PollID'
FixedChar = True
Size = 38
end
object ADODataSet1Title: TWideStringField
FieldName = 'Title'
Size = 255
end
object ADODataSet1Description: TWideStringField
FieldName = 'Description'
Size = 4000
end
end
Другая проблема у меня в том, что если ADODataSet1
набор для Active=True
, затем, когда я звоню ms.ReadComponent(Dest)
, Active
потоки доConnection
и что вызывает Исключение «Отсутствует соединение o r ConnectionString ". Как я могу установить Active на False
после того, как напишу ms.WriteComponent(Source)
? (Обходной путь - установить ADODataSet1.Active := False
, прежде чем дублировать его).
Примечание: Я не хочу clone the cursor/recordset на наборе данных (TADODataSet.Clone), поэтому, пожалуйста, не рассматривать его как «дублированный вопрос».
Это не похоже на работу. 'Component.ComponentCount' всегда 1 (' TADOCommand'). дублированный DataSet не имеет постоянных полей. – ZigiZ