This project is read-only.

home.png Visual FoxPro "Sedna"

Sedna is a collection of libraries, samples and add-ons to Visual FoxPro 9.0 SP2.


Note: this project has moved to GitHub:

Sedna is made up of six different projects:
You can download the RTM version of Sedna from Microsoft at:
Microsoft Visual FoxPro 9.0 "Sedna" Add-Ons
(Note: One or more Sedna components have updates here on VFPX.)

You can download DBI's Sedna ActiveX controls at:
VFP 9.0 SEDNA Components

Learn more about the Sedna tools in this special free edition of CODE Focus magazine:
Sedna: Beyond VFP9

If you have installed any of the previous Sedna CTPs or Beta, you will need to uninstall before installing the RTM of Sedna. The Sedna Setup installs the RTM components and source under the "Microsoft Visual FoxPro 9\Sedna" folder by default. It is important to note that any changes made to the Sedna projects here on VFPX will not be included in the SednaSetup.msi available from Microsoft at the link above.


The VistaDialogs4COM is a collection of COM-visible classes that wrap the functionality provided by the Microsoft VistaBridgeLibrary. VistaDialogs4COM provides Visual FoxPro developers access to the Windows Vista TaskDialog and Common Dialogs.

Setup will install the VistaDialogs4COM assembly, the VistaBridgeLibrary and other required DLLs, the VistaDialogs4COM source. A sample VFP project demonstrating use of different features of VistaDialogs4COM is also included.

The VistaDialogs4COM folder contains the following:
  • VistaDialogs4COM.dll -- DLL for the COM components that wrap VistaBridgeLibrary.
  • VistaDialogs4COM -- Folder containing the VB.NET source code for VistaDialogs4COM
  • VFP Sample -- Folder containing a VFP sample project that illustrates the use VistaDialogs4COM
VistaLibrary4COM requires Windows Vista. The API used are not available on earlier versions of Windows. The VFP Sample folder contains images that show the different dialogs and how they differ from the corresponding dialogs in earlier versions.

vfpxreleasesmall.png Latest Release of VistaDialogs4COM


SQL Server Upsizing Wizard (updated 2017.02.22)
This is an update to the Visual FoxPro 9.0 SP2 Upsizing Wizard. The Sedna Upsizing Wizard will install to the "Microsoft Visual FoxPro 9\Sedna\UpsizingWizard" folder under Program Files. To launch the new wizard run the '' from this location.

This Sedna update release includes:
  • Updated, cleaner look and feel
  • Streamlined, simpler steps
  • Support for bulk insert to improve performance.
  • Allows you to specify the connection as a DBC, a DSN, one of the existing connections or a new connection string.
  • Fields using names with reserved SQL keywords are now delimited.
  • If lQuiet is set to true when calling the wizard, no UI is displayed. It uses RAISEEVENT() during the progress of the upsizing so the caller can show progress.
  • Performance improvement when upsizing to Microsoft SQL Server 2005.
  • Trims all Character fields being upsized to Varchar.
  • BlankDateValue property available. It specifies that blank dates should be upsized as nulls. (Old behavior was to set them to 01/01/1900).
  • Support for an extension object. This allows developers to hook into every step of the upsizing process and change the behavior. Another way is to subclass the engine.
  • Support for table names with spaces.
  • UpsizingWizard.APP can be started with default settings (via params) for source name and path, target db, and a Boolean indicating if the target database is to be created.

2017.02.22 Release
This update implements better support for BulkXMLLoad by Mike Potjer.

2015.12.01 Release
This update implements a couple of pathing issue fixes by Thierry Nivelet.

2015.09.28 Release
This update fixes several issues found by Matt Slay and Jim Nelson: the Upsizing Wizard didn't properly handle remote table and field names delimited with square brackets, nor did it automatically delimit names using reserved words such as "order". It also didn't handle the rare case where TypeMap.dbf was missing.

2015.08.20 Release
This update fixes another issue found by Jim Nelson: the settings of CURSOSETPROP("FetchMemo"), SET PROCEDURE, and SET PATH weren't restored after running the Upsizing Wizard.

2015.08.18 Release
This update fixes a few bugs found by Jim Nelson: an error when BlankDateValue is set to NULL and NULLDISPLAY is blank, an error when SourceDB is a relative rather than full path, and a warning message when copying files for reporting purposes.

2015.01.13 Release
This update fixes a bug found by Matt Slay that caused the precision (decimals) of numeric fields to be incorrect.

2013.11.25 Release
This update removes the old license and readme files, which are no longer applicable.

2013.11.20 Release
This update fixes a bug, discovered and fixed by Jon Love, that caused a "variable not found" error in the BulkInsert method.

2013.07.24 Release
This update has the following bug fixes (thanks to Mike Potjer for finding and even fixing some of these issues):
  • Upsizing a logical field to a bit field no longer causes an error when the table has a lot of records.
  • You no longer get an error upsizing tables that have field rules, table rules, or triggers.
  • Quotes in the content of fields are preserved.
  • You no longer get a warning that 6.5 compatibility cannot be used.

2013.07.02 Release
This update has the following bug fixes (thanks to Mike Potjer for helping with these issues):
  • Under some conditions, an error occurred while trying to clean up (specifically removing a working directory the wizard created, which may not be empty) after the wizard is done. This code is now wrapped in a TRY to avoid the error.
  • A temporary DBF file wasn't deleted but its FPT was, causing an error if you tried to open it. The file is now deleted.
  • A temporary file used for bulk upload wasn't erased when the wizard is done with it. It is now.
  • One of the export mechanisms ("FastExport") used null dates rather than the defined date for blank VFP date fields. This was fixed.
  • You are no longer told that the bulk insert mechanism failed when it in fact succeeds. This also resolves a problem with duplicate records being created.
  • Under some conditions, the last few records in a VFP table weren't imported into the SQL Server table. This was fixed.

2012.12.06 Release
This update has the following bug fixes:
  • Handles converting Memo to Varchar(Max)
  • You can now change the date used in SQL Server for empty VFP dates in one place: SQLSERVEREMPTYDATEY2K in AllDefs.H
  • One of the export mechanisms ("JimExport") used null dates rather than the defined date for blank VFP date fields. This was fixed.
  • The progress meter now correctly shows the progress of the sending data for each table.
  • A bug that sometimes caused an error sending the last bit of data for a table to SQL Server was fixed.
  • You no longer get a "string too long" error when using bulk insert with a record with more than 30 MB of data.
  • You can now use field names up to 128 characters; the former limit was 30.

Review article on CODE Magazine:

vfpxreleasesmall.png Latest Release of SQL Server Upsizing Wizard


Data Explorer
(NOTE: see DataExplorer 3 project with update past the Sedna version)

This is an update to the Visual FoxPro 9.0 SP2 Data Explorer. Setup will install the Database Explorer to the "Microsoft Visual FoxPro 9\Sedna\DataExplorer" folder under Program Files. To launch the new wizard run the '' from this location.

This update includes:
  • Fixed drag and drop of VFP table from Data Explorer to a form.
  • Fixed issue: "Drag/drop of VFP table/view from the Data Explorer to a form does not set the RecordSource."
  • Fixed issue with free tables not showing their columns when expanding the node.
  • Drag and drop operations now respect Field Mapping settings for SQL Server data
  • Allows sorting to apply to specific objects, not all.
  • Display SQL ShowPlan for local views
  • Display ShowPlan information for VFP table/view queries in the query results
  • Add Showplan parameter setting to the Options dialog, use in showplan features
  • Context menu item to launch the new UpsizingWizard.
vfpxreleasesmall.png Latest Release of Database Explorer


The NET4COM library is a collection of COM classes that wrap a subset of the .NET Framework 2.0. The .NET Framework is a rich collection of namespaces and API that provides a comprehensive set of functionality that developers can use to build applications that run on the .NET platform. While VFP does have a rich library of API, there are some features that either do not exist in the VFP libraries or are harder to use than in the Framework. NET4COM brings together a small subset of the .NET Framework — a collection of commonly used API that brings to VFP functionality that does not exist.

Setup will install the NET4COM assembly with sample files to disk. Setup will also register the COM components in NET4COM.dll. The NET4COM folder contains the following:
  • NET4COM.dll -- The DLL for the COM components that wrap a subset of the .NET Framework 2.0.
  • Source -- Folder containing project file and source code for NET4COM
  • VFPSamples -- Folder containing VFP sample code that uses NET4COM
  • VB6Samples -- Folder containing VB6 sample code that uses NET4COM
  • FFC -- FFC wrappers for NET4COM
The samples demonstrate use of NET4COM from Visual FoxPro or Visual Basic 6.0.

vfpxreleasesmall.png Latest Release of NET4COM


MY for VFP
The MY library for Visual FoxPro is similar to NET4COM. MY is implemented natively for Visual FoxPro and like NET4COM exposes commonly used functionality in a hierarchy that is easy to discover and navigate. Setup will install the MY library and related files in the "MY" folder under the selected install destination.

To install MY into Visual FoxPro:
  • Browse to the MY folder
  • Run MY.APP
The MY folder contains a help file: MY.CHM that describes, setup and usage of MY and includes the API reference for the different APIs.

Learn more about My in this Code Magazine article by Doug Hennig:

Updated 01/23/2015
The following issues were fixed:
  • Settings.Load no longer strips leading and trailing spaces from string settings
  • My now works properly when SET ANSI is ON
  • The Destroy methods of various classes no longer clear any Windows API functions they declare to prevent problems with other classes that also use those functions (thanks to Rick Borup for reporting this issue)

Updated 04/14/2011
The following issues were fixed:
  • MyBuilderForm: fixed typo in TooltipText for edtList, added TooltipText to edtScript, Init now finds a record for a class without cNameSpace property and not always create a blank cursor
  • MyFoxCode: OpenMyTable saves the setting of DELETED and turns it ON, Destroy restores the setting of DELETED
  • InstallMy.PRG: GetScriptCode uses SYS(16,1) rather than SYS(16) so it works correctly when called from an app
  • Settings: Load and Save now handle date and datetime values as well as empty strings or those greater than 254 bytes long, Add throws an error if the specified property name isn't valid

vfpxreleasesmall.png Latest Release of MY for VFP


This is the Visual FoxPro DDEX (Data Designer EXtension) Provider for Visual Studio 2005.

DDEX allows Visual Studio to work better with Visual FoxPro data sources. It exposes VFP metadata to the data designers within Visual Studio, thus enabling common design tasks like dragging and dropping tables from Server Explorer to Visual Studio designers. Before using, the DDEXProvider must be installed. DDEX requires Visual Studio 2005 to be installed. Note that it does NOT work with Visual Studio 2008 or later versions, although it does come with source code so that could be changed.

The version released with Sedna included a license key that expired in March 2008, meaning you couldn't use it if you installed it after that date. On March 4, 2009, Microsoft released an updated version that has a non-expiring license key. This version also simplifies installation.

After installing this updated version, you must run RegDDEX to register the VFP DDEX Provider with Visual Studio 2005.

NOTE: RegDDEX must be run as an Adminstrator. Start the Windows Command Prompt as Administrator.

To register the DDEXProvider:
  • Change the folder to 'DDEXProvider' under the Sedna folder
  • Run RegDDEX
To unregister the DDEXProvider
  • Change the folder to 'DDEXProvider' under the Sedna folder
  • Run RegDDEX /u
Once registered, Visual FoxPro will appear as one of the data source types that can be selected in the Connection Dialog of Visual Studio.

vfpxreleasesmall.png Latest Release of DDEX for VFP

Last edited Aug 22, 2017 at 2:44 PM by DougHennig, version 69


DougHennig Jan 9, 2017 at 7:06 PM 
Hi Matt.

No, it looks like Craig didn't create a property for that.


mattslay Jan 8, 2017 at 6:50 PM 
Doug - On the “VistaDialogs4COM.CommonOpenFileDialog" class, is there a way to call ShowDialog() and and specify the starting folder location it will be scoped to?

DougHennig Aug 31, 2016 at 5:06 PM 
Hi Matt.

I updated the zip file to include Register,bat. See the readme file for notes about it.


mattslay Aug 30, 2016 at 1:37 AM 
Doug - With the Vista Dialogs, I downloaded the zip, but it does not have the MSI installer to install the DLLs on a machine that does not have them yet. Where is the designated place to download the install package, and how can we know whether it has the lasted version that is available here?

DougHennig Jan 8, 2016 at 7:34 PM 
Hi Theirry.

I didn't put the Upsizing Wizard into TFS, so yes, that is the correct way to do it for now.


DougHennig Jan 8, 2016 at 7:34 PM 
Hi David.

Thanks for the heads-up. I'll remove that in the next release.


beroni Jan 8, 2016 at 5:04 PM 
Hello Doug,
The have a "set setup on" in the class UpsizeEngine, procedure Cleanup.
You can test it when you click in the Upsizing Wizard Form, into de Cancel button in the "Step 1- Select Local Database".


FoxInCloud Jan 4, 2016 at 1:56 PM 
Hi Doug,

Tried the "subscribe" link, took me to a RSS feed, not sure it'll send notification emails.

Can you confirm this is the right way to contribute to the source code:
- D/L a copy
- modify
- post a comment here telling some modifications are available
- send you the modified source code

or is there a repository where I can drop modified source code using TFS?

Sorry for these very basic questions

DougHennig Dec 31, 2015 at 3:06 PM 
Hi Thierry.

The Subscribe link at the top of the page allows you to receive notifications when comments are added.

Links to the source code are provided with every sub-project of Sedna on this page. For example, click the "Latest Release of SQL Server Upsizing Wizard" link above to go to the page where you can download the source for the Upsizing Wizard.

Happy New Year!


FoxInCloud Dec 30, 2015 at 2:39 PM 
Am I dumb or is the Sedna source code repository very well concealed?

FoxInCloud Dec 30, 2015 at 1:20 PM 
Hi Doug,

Sorry for seeing your reply (dated Nov. 30) only today ... Dec. 30!

The only way to know you have a reply is to check into the site regularly, a little tedious ... I'll look for a way to receive reply notification emails.

I'm getting back to this project right now, I'll post more code upgrades.

Thanks for your support!

DougHennig Nov 30, 2015 at 5:42 PM 
Hi Thierry.

Thanks for the code changes. I have implemented them and will upload an update later today. I also like your suggestion about a separate folder for each upsize process but haven't done that yet. I've also added you as a developer so you can upload changes you make. Be sure to mark them as you did here, using && 2015-11-17 -- thn.


FoxInCloud Nov 18, 2015 at 2:12 PM 
Hi Doug,

Another suggestion: instead of adding suffixes to the upsize\tables, why not create a subfolder per upsize run (eg. named aaaa-mm-dd_hh-mm\) where tables could be stored with their original names -- could be easier to find a table rather than trying to figure out with suffix you're looking at.


FoxInCloud Nov 18, 2015 at 12:52 PM 
1- modify command wizusz

function Init(tcReturnToProc, tcProcedure)
dodefault(tcReturnToProc, tcProcedure)
this.ReportDir = fullpath(NEW_DIRNAME_LOC)

* 2015-11-17 -- thn -- in dev mode, add upsizing wizard's key folders to set('path') to retrieve tables and others when running from a custom home folder
if Empty(_VFP.StartMode)
local cDir
cDir = Sys(16)
cDir = FullPath(Addbs(justpath(substr(m.cDir, atc(' ', m.cDir, 2) + 1))) + '..\') && upsizing wizard root folder
set path to (m.cDir + 'data;' + m.cDir + 'program;') additive

2- modify command wzengine
* set path to &aEnvironment[9, 1] && 2015-11-17 -- thn -- macro substitution does not work here, use name substitution instead
set path to (aEnvironment[9, 1])

I may have more to provide, maybe adding me a contributor could help ... or use Steven's Black gitHub repo (

Thierry Nivelet

DougHennig Nov 17, 2015 at 3:55 PM 
Here is fine.


FoxInCloud Nov 17, 2015 at 3:11 PM 
should we contribute code fixes here or somewhere else?

DougHennig Jun 7, 2011 at 1:01 PM 
The only way for IntelliSense to work with the namespaces is to declare LOCAL My as My. This mechanism is one of the best parts of My because it makes the classes easy to work with.


pipi772 Jun 7, 2011 at 12:02 AM 
Hi!, i'been tryin and it's great!!

But why not making it public as the main namespaces instead of My like

Public Data, IO, Drawing, Security.