An implementation of Visual Basic that is built into Microsoft products.
Thank you for your question. After further analysis, we believe the root cause may be related to parameter aliasing rather than the internal function itself.
We discovered that the same variable was being passed twice in the RDS.DataSpace COM+ call — once as a regular parameter and once as an Optional parameter.
Simplified example:
Dim myDate As String
myDate = "20260531"
' Same variable passed to two different parameter positions
obj.fProcess(myDate, "A", "B", myDate)
' ↑ regular param ↑ Optional param (same variable)
Function declaration:
Public Function fProcess(ByVal p1 As String,
ByVal p2 As String,
ByVal p3 As String,
Optional IN_DATE As String = "") As String
Before KB5094123, RDS.DataSpace appeared to create separate copies of each parameter during marshaling, which prevented aliasing side effects.
After KB5094123, it appears RDS no longer creates these copies, causing both parameter positions to share the same memory reference. When the Optional parameter gets reset to its default value ("") during marshaling or execution, the original variable is also affected.
Workaround we applied:
Dim strDate As String
strDate = myDate ' copy to separate variable before call
obj.fProcess(strDate, "A", "B", myDate)
This resolved the issue by breaking the shared reference.
Our question: Did KB5094123 change the parameter marshaling behavior in RDS.DataSpace, specifically regarding whether independent copies are made per parameter position? This would explain why aliasing — passing the same variable to multiple parameter slots — now causes unexpected behavior.