- Topher Chen
- PowerBuilder
- Friday, 15 March 2019 02:57 AM UTC
Dear All,
As we are using PB 2017 to migrate our legacy system to .Net Assembly, there are hundreds of DataWindows that call this generic function
ll_rows = ads_data.Retrieve(lany_args[1], lany_args[2], lany_args[3], lany_args[4], lany_args[5], lany_args[6], lany_args[7], lany_args[8], lany_args[9], lany_args[10], lany_args[11], lany_args[12] , lany_args[13], lany_args[14], lany_args[15])
But .Net Assembly doesn't support PBAny type, when we pass 'number', 'datatime', 'decimal' types, it errors. we were advised to avoid using PBAny, but
The types of fields passing into this function are dynamic, each DataWindow is different, if we don’t use PBAny type to receive, we may need to turn this generic function call to specific call for hundreds of DataWindows like this
ll_rows = ads_data.Retrieve(name, id, amount, “”, “”, “”….)
which will require massive amount of effort, and the code will look ugly.
The above function is encapsulated, is it possible we refactor it? instead of passing PBAny arguments, can we pass two sets of array, one set for data type, another set is for actual value in String format, and then do the type conversion in there.
We did think about using PowerBuilder 2019 to convert DataWindow to .Net, but it doesn't support Sybase.
Or if there is other way to get around this?
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.