Skip to main content

Bug Fixes

PPJ includes compatibility behavior and workarounds developed during migrations. Some address defects in particular dependency versions; others preserve SAL behavior where .NET behaves differently. A historical workaround does not establish that every current .NET or database-provider version has the same defect.

Parsing and Formatting​

Numeric parsing depends on culture and allowed number styles. A period may be interpreted as a grouping separator rather than a decimal separator. This can be valid .NET behavior while differing from the intended input rules. .NET also supports exact date parsing; it is incorrect to say it cannot parse dates against a format.

For new code, choose an explicit culture and accepted input grammar. For migrated code, compare PPJ formatting and parsing with the original application's inputs. See parsing numeric strings and DateTime.TryParseExact.

Modified State and Validation​

PPJ supplies SAL-style modified flags and validation in addition to the underlying control's behavior. Test assigning the same value, changing focus between forms, canceling a dialog, and moving between MDI children. A native event or property is not automatically a substitute for its SAL equivalent.

MDI and Designer Inheritance​

Historically, PPJ has adapted MDI activation, hidden children, and designer serialization to match migrated applications. Check these behaviors when upgrading the runtime or designer, especially for forms with multiple inheritance.

Database Providers​

Oracle numeric values can exceed the range or precision of .NET decimal. A conversion overflow does not mean Oracle decimal columns are unsupported. Decide explicitly whether a value should be constrained, retained in a provider-specific type, or represented another way.

Older SQLBase, Ingres, Informix, and DB2 integrations required workarounds for metadata, nulls, dates, or numeric conversion. Review SQL configuration before retaining or removing those settings. String conversion and precision truncation can alter comparisons and stored data.

Upgrade Validation​

Record the PPJ, .NET, and provider versions with each reproducible issue. Run the same small scenario before and after an upgrade, including the original failing input. Remove a workaround only after verifying the replacement behavior against the application's requirements.