Kbase P156919: How do you send the minimum schema information with temp-tables and datasets from a .Net Application
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/19/2010 |
|
Status: Unverified
GOAL:
How do you send the minimum schema information with temp-tables and datasets from a .Net Application via the .Net Open Client?
GOAL:
Can you reduce the amount of data transferred from a .Net Application to an AppServer via the .Net Open Client?
FACT(s) (Environment):
Windows
OpenEdge 10.2x
FIX:
An Output DataSet or DataTable parameter in .NET sends schema information to the AppServer even if the SetNoSchemaMarshal method is used and the AppServer is running with the -ttmarshal parameter set to 4. This is because the c# compiler considers an output parameter unassigned and it must be assigned before its value is used, therefore, the .NET proxy code is not able to look at the output DataSet or DataTable object to detect if SetNoSchemaMarshal was called. The .NET client programmer can now specify that they do not want the schema info sent from .NET to the AppServer for output DataSet or DataTable parameters by setting the new RunTimeProperties.NoSchemaMarshal property to true. It should be set before the proxy method is called. Note: The property will be used on all DataSet and DataTable parameters for that method call. Remember to reset the NoSchemaMarshal property back to false for subsequent proxy method calls if desired. The property can be used in place of the ProDataTable SetNoSchemaMarshal() method. This would be the case if you wanted all DataSet and DataTable parameters in a single proxy method to not pass schema info from .NET to the AppServer. Example code:
RunTimeProperties.NoSchemaMarshal = true;
appObj.getMyDSet(1, out myOutDS);