Я не думаю, что это хорошая идея - создать TParam с переменной Variant и переменной TOBject. Что-то вроде:
Tobject = record
prim: Variant;
obj: TObject;
end
Работало бы, но мне это кажется очень грязным. Паскаль не типизированный язык, и я не буду относиться к нему как к одному. Я бы предложил либо:
Создайте еще одну функцию для обработки Variant, а также
MyProcedure (const AValue : TObject);
также есть
MyProcedure (const AValue : Variant);
и обрабатывать ваши данные отдельно. Или создайте запись, которая определяет ваши входные данные, например, вместо того, чтобы у TParam варианта и объекта было что-то вроде:
TStoredProcParm = record
name: String;
bought: TDateTime;
end;
и так далее. Может быть, у вас так много разных данных, что маршрут варианта / объекта является лучшим, но это выглядит как головная боль при обслуживании - когда ваш другой код проходит массив Variant, как узнать, какой вариант, какой и как использовать из них в вашем сохраненном процессе?