> For the complete documentation index, see [llms.txt](https://docs.gapvelocity.ai/vbuc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gapvelocity.ai/vbuc/issues-troubleshooting/migration-process.md).

# Migration Process

### DataAccess related Upgrade Options

#### Description

The VB6 AI Migrator allows converting DataAccess related classes like the classic ADODB, Microsoft DAO, RDO or OracleInProc Activex components to .NET equivalents, or even keep them using the original components via COM interop.

![Data Access Options](/files/-MEU6CIuXcRWHNb9WAX5)

In this post, we are not covering the migration to COM interop for those Activex components.

#### System.Data.Common and HelperClasses

This solution uses a set of helper objects to provide equivalent behavior in .NET and to encapsulate the [ADO.NET](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/) machinery required to handle a set of data, more specifically, for the RecordSet object, which is very powerful and flexible in Visual Basic 6 and does not have a direct equivalent in .NET. This approach reduces the manual changes effort to achieve functional equivalence.

The usage of System.Data.Common libraries provide the application with the ability to interact with different Database Manager Systems (such as SQL Server, Oracle, MS Access, etc) through its ADO.NET 2.0 compliant providers with just minimal configuration efforts.

More info is found at [Classic ADO Conversion to ADO.NET](/vbuc/issues-troubleshooting.md#classic-ado-conversion-to-ado-net)

#### ADO.NET Using SqlClient

This optional feature allows the VB6 AI Migrator to convert RDO to plain ADO.NET by using the provider-specific System.Data.SqlClient libraries.

Remarks:

* This approach converts RDO to plain ADO.NET, but it might require several manual changes to achieve functional equivalence.
* Transformations to occurrences of MSRDC will also be applied when selecting this choice.

#### Known Issues with Upgrade Options

* Do not mix Upgrade options in a single migration even if source components are different: such as ADODB and RDO in the same VB6 project.
* Due to design in VBUC 8.2 and older, choose System.Data.Common and HelperClasses to migrate ADODB will cause conflicts if SqlClient is chosen for RDO.

If System.Data.Common + Helper is used for some classes and SqlClient for others, the generated code will be hard to modify in order to achieve functional equivalence.

![RDO Option](/files/-MEU6CIvFGNvjnF4phgV)

Make sure to be consistent, and just pick either only the SqlClient or only the System.Data.Common + Helper classes options.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.gapvelocity.ai/vbuc/issues-troubleshooting/migration-process.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
