Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article provides details about the release and the bugs fixed in Visual FoxPro 9.0 Service Pack 1.
Original product version: Visual FoxPro
Original KB number: 907737
Summary
This article contains information about the bugs that are fixed in Microsoft Visual FoxPro 9.0 Service Pack 1 (SP1). For more information, see How to obtain Service Pack 1 for Visual FoxPro 9.0.
Visual FoxPro (VFP) 9.0 SP1 contains fixes for the following problems.
Control and classes
- Cannot use mouse to get focus to other controls from the DHTML control.
- Wizard-generated forms fail when you try to add a record if the underlying table has AutoInc field(s).
- Web Browser control: implementing DWebBrowserEvents2 causes parameter count mismatch.
- Saving form to an in-use file causes eventual fatal exception.
- Fatal exception occurs when building a project that contains VCX with properties that are separated by only carriage returns.
- Collections: Removing items from collection with >=500 items crashes VFP under Application Verifier.
- CursorAdapter: TABLEUPDATE(0) ignores SendUpdate setting for table buffered cursor.
- TextBox: C0000005 exception with AutoComplete TextBox where TextBox has ControlSource set to a field which allows NULLs.
- ComboBox: "Data type mismatch" error message when setting value in drop-down when ControlSource is null member property.
- Fatal exception error occurs with MODI FORM command when MSXML3.dll file is not registered.
- SEARCH function in Wizard-generated forms does work with new VFP9 data types. The search does not find varchar data.
- Control class does not resize anchored controls within itself.
- QUIT fired in DESTROY of form does not close VFP or application.
- READ of converted form is released in VFP 9.0, but not in earlier versions of VFP.
- Grid loses data when selected alias is changed from one populating grid to alias of the same table used again, and a CALCULATE command is used against the second alias.
- C0000005 exception pressing ENTER key when ListBox ListIndex = 0.
- Unexpected Anchor behavior for values 256/512 and odd Width/Height.
- Form: Internal Consistency error and then fatal exception occur when you edit form after adding relation to DataEnvironment of form using aselobj() reference.
- IMPLEMENTS failed with Word. Application object with Office 2003.
- Grid goes blank when custom method of parent formset is set as ControlSource of a grid column.
- ActiveX Controls: LeadTools ActiveX control makes two empty bars appear in Window menu.
- CheckBox: Graphical CheckBox and option button do not appear with darker back color when depressed with themes enabled.
- "Internal Consistency" error message working with a class library that is stored in a hidden folder.
- ComboBox: DownClick( ) does not fire unless user first passes mouse over contents of drop-down list.
- Pageframe with TabStretch=0 (multiple) and with many tabs keeps growing when form is opened for edit.
- Add support for adVarNumeric for ADO data source.
- Refresh problems on PageFrame in FormSet causes TextBox ghosting.
- Refresh issues with various controls on a form when .exe is run over network (UNC or mapped drive).
- Value for drop-down list style ComboBox does not appear in Accessible Event Viewer.
- Orphaned form DataEnvironment causes VFP to crash when exited.
- "Internal Consistency" error message when Ctrl+Tab off is disabled page on pageframe.
- A formset object exhibits memory corruption of user properties the second time it is run after a CLEAR ALL.
- "Internal Consistency" error message when modifying or running a form with object having invalid Zorder setting.
- Toolbar not active with Modal Form inside Top Level Form.
- Grid: "Data type mismatch" error message 9 editing a DOUBLE field through grid or browse.
- Top Level forms with contained modal form should be resizable and movable.
- "Internal Consistency" error message setting value property in init of control in grid column.
- "Internal Consistency" error message clicking relation in data environment window with persistent relation on compound index key.
- CursorAdapter: Base table names are converted to lowercase in auto-generated SQL.
- "Internal Consistency" error message in bound autocomplete TextBox if form uses private datasession.
- EditBox wordwrap causes blank lines to disappear.
Engine
- Data engine no longer optimizes some queries involving DELETED() function and OR clauses.
- Indexes on STR() are not Rushmore optimized with SET ANSI OFF.
- TOP N in subquery is ignored when UNION is used.
- Memo values are not translated when copied between tables with different code pages (SQL SELECT, APPEND FROM).
- Fatal exception with REPLACE with undefined variable if row validation rule is present.
- Hang occurs when UNLOCK is executed.
- "Internal Consistency" error message accessing free table in transaction if table is made transactable in different data session.
- Requery() on prepared remote view fails.
- LOCATE fails to find a match when index on Currency is used for optimization and the right part of comparison is certain Numeric value.
- USE command can assign duplicate alias for the work area.
- Unexpected error message "Table has a file length / record count inconsistency" on END TRANSACTION.
- Unexpected "SQL expression is too complex" error message on CREATE SQL VIEW against large tables.
- Reopening or FLUSH of table after ZAP with SET TABLEVALIDATE >= 8 causes "Table ... has become corrupted" error message.
- SQL SELECT returns incorrect result when correlated sub-query returning COUNT(*) is compared with 0.
- Data corruption when CursorAdapter that is bound to Grid is updated in a TRANSACTION.
- Unexpected "SQL: Error correlating fields" error message with two EXISTS subqueries.
- Correlation is not verified to meet "correlation is supported only to immediate parent query" limit.
- Unexpected "Subquery returned more than one record" error message when aggregate is used in HAVING, but not in SELECT list.
- Query returns incorrect result when ORDER BY+TOP N evaluation is merged with GROUP BY evaluation and TOP is optimized.
- SELECT COUNT(ICASE(.T.,1)) returns incorrect result.
- SELECT INTO ARRAY changes current work area if it uses sub-query in FROM.
- Index on table buffered cursor is corrupted after REPLACE with scope.
- A Query with OUTER JOIN produces incorrect result if NOT EMPTY(...) is used in WHERE.
- Unexpected "SQL expression is too complex" error message with correlated subquery.
- "Microsoft Visual C++ Runtime Library Buffer overrun detected!" and C0000005 exception running SCAN loop against large table.
- CAST() to date of a blank datetime field returns datetime type.
- ALTER TABLE ... ALTER COLUMN to change character field to integer also changes value.
- "Error building key for index..." error message when indexing using str() on a NULL value.
- "Internal Consistency" error message on REQUERY() after tableupdate() to remote view with batchupdatecount = -1 and table buffering.
- "Internal Consistency" error message on SQL SELECT when record size * record count is high.
- Enable optimization for tables with non-current code page when ENGINEBEHAVIOR < 90.
- "Internal Consistency" error message when indexing with a nested collection filter.
- Filter condition that temporarily changes current work area may break relation, or may break nested XML generation with XMLAdapter.
- Query processor fails to find column in SELECT list if it is enclosed in parentheses and reports false "SQL: ORDER BY clause is invalid" error message.
- Unexpected "SQL: GROUP BY clause is missing or invalid" error message trying to create a view or USE view with NODATA.
- Query produces incorrect result when ENGINEBEHAVIOR < 90, sub-query returns Aggregate function and no records match sub-query's WHERE condition.
- COPY TO ... AS nCodepage fails to encode memo with correct codepage and uses CPCURRENT() instead.
- Memo values are not translated when copied from tables with current code page to a table with different code page (COPY TO, SQL SELECT, APPEND FROM).
- SELECT ... WITH BUFFERING unexpectedly pulls buffered data from a cursor, which was not explicitly referenced in the FROM clause.
IDE
- Project Manager: Fatal exception building application that uses icon that is still in memory.
- Properties Window: Fatal exception closing Zoom window with Enter key under App Verifier with SET KEYCOMP TO DOS.
- "Menu manager internal consistency error" crash when issuing CLEAR POPUPS.
- Prompt for saving query references tmp file.
- Tooltips appear in right monitor when you run VFP in left monitor in multi monitor setup where primary monitor is on the right.
- C0000005 error in the View Designer with long expression.
- Project Manager: Fatal exception changing font on Project Manager after Dock/Undock operation.
- Project Manager: New Project managers do not remember their positions when Override Individual Settings is selected for the Projects type on the IDE tab of the Options dialog box.
- RI builder uses incorrect syntax for UNLOCK command.
- Picbtns class of Wizbtns.vcx displays warnings when used with the CursorAdapter.
- Project Manager: VFP stops responding (hangs) when rebuilding app after error message that classlib is being used.
- Access violation C0000005 when activating IntelliSense in the Program Editor.
- IntelliSense: C0000005 Access Violation exiting Class Designer after failed attempt to access LPARAMETER IntelliSense for member method.
- Fatal exception when debugging a large code file.
- Builders: MemberData Editor - Code bug in GetHierarchy() of MemberDataEditor.scx causes MemberData Editor to get hierarchy wrong.
- Properties Window: C0000005 exception closing Class Designer with CursorAdapter, XMLAdapter, XMLTable, and XMLField after you press ESC on a property that has value over 255 characters long.
- Editor: 100% CPU usage hang when using Expression Builder from code editor window that contains only two blank lines.
- IntelliSense: Fatal exception in List Members after creating early binding mapi.session object with CreateObjectex().
- "Browse table is closed" error message followed by unhandled exception (c05) when messing with Resource file during table browse.
- On Simplified Chinese platform, reducing the width of a TextBox that contains dbcs string causes IDE to stop responding.
- On Simplified Chinese platform, fatal exception when executing program.
- Resizing Project Manager does not update treeview of files.
- Option Button Sample in Solution Samples throws DATATYPE MISMATCH error.
- Component Gallery: "Error building key for index" when selecting Clean Up from context menu.
- Builders: Problems with Properties dialog boxes in ReportBuilder.app.
- "Printer is not ready" error message when printing to EMF-Citrix printer driver inside Citrix client session to Metaframe 4.0 Presentation Server. Other applications can print to this printer fine.
- "'local thisview' is not allowed in the view script or is in the wrong place" error message in View Designer.
- Make ReportBuilder.app localizable.
Language
- SQLEXEC() function allows reentrance for the same connection handle.
- DEBUGOUT outputs binary data as strings.
- CursorToXML() and XMLAdapter does not output seconds for xsd:dateTime values if SET SECONDS is OFF.
- C0000005 followed by "Mismatched pushjmp/popjmp call" error message when executing program from "do <program.prg>" on Program Editor menu and then followed by call to EXESCRIPT().
- WEXIST() finds ToolTipText windows.
- Memory leak when you set ActiveConnection property of ADO RecordSet object to NULL.
- "Internal Consistency" error message followed by crash of VFP calling methods of object that are returned with GetObject("IIS://LocalHost/W3SVC/1").
- XMLToCursor() and XMLAdapter fail to load values of type xsd:date if time portion is present.
- SQLCOLUMNS() fails with complex names if at least one part of the name contains a space or other "illegal" character.
- ADIR returns invalid file size for >2gig files (virtual PCs).
- GETOBJECT() has parameter limit based on file spec (261 chars).
- String optimization for recursion produces erroneous results.
- Literal number causes BINTOC() errors.
- Converting Bintoc to Character by using CTOBIN() throws junk value.
VFP OLE DB Provider
- OLE DB Provider: SYS(3050) should default to 128 MB in provider.
- OLE DB Provider: Apparent memory leak leads to connectivity error "could not convert the data value..." with repeated openrowset or openquery to SQL linked server.
- Unable to create dataset with the VFP OLE DB Provider.
- GetSchema(string, string[]) failed to filter based on INDEX_NAME.
- OLE DB Provider: Enable SYS(3055) ("FOR and WHERE Clause Complexity") inside provider.
- VFP OLE DB Provider incorrectly handles binary parameters.
- Enable DROP VIEW and DROP PROCEDURE commands.
- DBSCHEMA_PROCEDURES rowset returns obsolete procedures.
- DBSCHEMA_PROCEDURES rowset returns incomplete procedure definition.
- APPEND PROCEDURES ignores compilation errors in procedures.
- Accessing database container (DBC) that has no tables may cause a buffer overrun error.
Reporting
- Report Builder dialog boxes should respect regional settings.
- Report Preview has incorrect title in some cases.
- When object assisted report is previewed, initial Print Preview toolbar differs from that opened by selecting Toolbar from Report Preview surface menu.
- Object on report set to "Scale Contents, retain shape" appears differently between report preview and HTML made by an HTMLListener.
- Multiple detail bands do not work correctly when "Start on new page" is on.
- Go To Page dialog box opens out of visible range in when Preview Container TopForm property is .T. and windowstate is NORMAL.
- New-style Report Preview toolbar is inaccessible when report is previewed in SDI form without NOWAIT clause on REPORT FORM command.
- Code window filled with garbage characters when you try to close Report Designer and you click NO in the Do you want to save changes to <proc>? prompt.
- Data Grouping limit for a report is listed as 74 in the documentation topic "How to: Add Data Groups to Reports," but ReportBuilder.app limits you to 20.
- Justification for numeric format is Left justify. This differs from previous VFP versions and default Report Designer.
- No error given when closing Report Properties dialog box after you set the Initial Value of a Report Variable to an invalid value.
- Report Expression dialog box for field with error is not displayed after preview error with while REPORTBEHAVIOR = 90.
- Calculated values in report detail header reset unexpectedly when reprint detail header option is on.
- ReportListener, AdjustObjectSize, and MaxHeightAvailable properties do not work with floating objects.
- Previewing a report that contains an image that is located on the disk causes a GDI handle leak every time the preview is refreshed.
- REPORT PREVIEW GDI handles limitation with many pages.
- Associated header and footer report option: sequential numbers do not print across pages.
- ReportListener.OutputPage to HDC uses 96 DPI instead of printer DPI.
- "Property WindowState does not exist in line 325 of ResourceManager::SaveWindowState()" error message.
- Multiselect dialog allows setting of protection flags, even when report is PROTECTED.
- You are prompted for FRX if switching from "load from FRX" to "link to Class".
- After canceling from the first GETFILE(FRX) prompt, you are prompted with GETFILE again.
- Report Preview overwrites m.oForm if it is previously declared outside the preview.
- Programs should respect "real" screen DPI at runtime instead of the design-time 96 DPI.
- Various errors occur when loading a DataEnvironment from a class that has specific attributes.
- The full path of the linked DE class library is written into the linking code. This is not always appropriate.
- Properties of preview form are not saved to resource file correctly under some circumstances.
- You receive "Unknown member .cmdPrint" error message if you have selected AllowPrintFromPreview = .F.
- Not all variables in FRXOUTPUT.prg had "m.".
- Enhance app to be smarter about unknown output type if a valid listener reference is passed.
- Ensure "m." in all methods and #DEFINEs that include expressions.
- Filebased listeners derived from XmlListener that used its ApplyUserXSLT property could not specify directory-only for TargetFileName.
- Report Preview menu can no longer be displayed by the Shift-F10 key after the Go To Page dialog has been displayed.
- Report band size does not change correctly with floating objects that stretch.
- C0000005 exception during report print preview with corrupted EXPR field in frx file.
- Enhance reportoutput.app to handle unknown output type if a valid listener reference is passed.
Runtime and COM
- Toolbar or Status Bar not visible in application run on Windows 98 Second Edition.
- "The procedure entry point GetLongPathNameA could not be located in the dynamic link library KERNEL32.dll" error message in runtime in Windows NT 4.0.
- Memory leak with IMPLEMENTS in COM servers.
- Invalid COM parameter passing with unsigned long and unsigned int types.
- Deadlock in REMClearConnect and csCritSectionEnter when COM+ recycles dllhost worker process.
- COMARRAY. On Visual Basic 6.0 COM Server, Date type does not work.
- OCXAPI cannot be initialized for early binding objects.
- "Array dimensions are invalid" error message 230 when you pass large array >65000.