VB to .NET

RDO to Data.Common with helpers

Related Content

The VBUC is able to port the RDO data access code to ADO.NET by means of the System.Data.Common namespace. This technique is used in the following way:

  • RDO connecting to SQLserver: this scenario can be upgraded using the previous option as well, although this option achieves higher automation ratios.
  • RDO connecting to any other provider: when RDO is used to connect to any other data provider besides SQLserver (Jet, ODBC,…) this option MUST be used.

The member transformation for this data access technology is described as follows:

Class Maps to
RDO.rdoConnection System.Data.Common.DbConnection
RDO.rdoResultset Artinsoft.VB6.DB.RDO.RDORecordSetHelper
RDO.rdoColumns System.Data.DataColumnCollection
RDO.rdoParameter System.Data.Common.DbParameter
RDO.rdoParameters System.Data.Common.DbParameterCollection
RDO.rdoPreparedStatement System.Data.Common.DbCommand
RDO.rdoQuery System.Data.Common.DbCommand
RDO.rdoEngine Artinsoft.VB6.DB.RDO.RDOEngineHelper
RDO.rdoEnvironment Artinsoft.VB6.DB.RDO.RDOEnvironmentHelper
RDO.rdoColumn System.Data.DataColumn
RDO.DataTypeConstants System.Data.DbType
RDO.LockTypeConstants Artinsoft.VB6.DB.RDO.LockTypeConstants
RDO.QueryTypeConstants System.Data.CommandType

Support for MSRDC data control is added into this feature using the Common namespace:

Class Maps to
MSRDC.MSRDC Artinsoft.VB6.DB.RDO.RDODataControlHelper

Original VB6 Code:

Public recRecordset As RDO.rdoResultset
Public RDOConnection As New RDO.RDOConnection

Private Sub Form_Load()
    
    Set RDOConnection = New RDO.RDOConnection
    RDOConnection.CursorDriver = rdUseClientBatch
    RDOConnection.Connect = "DSN=TestDB;UID=;PWD=;Database=TestDB"
    RDOConnection.EstablishConnection rdDriverNoPrompt, False

    Set recRecordset = RDOConnection.OpenResultset("select * from Countries", rdOpenKeyset, _
                  rdConcurBatch)
    
    recRecordset.MoveFirst
End Sub

Resulting VB.NET Code:

Public recRecordset As RDORecordSetHelper
Private _RDOConnection As DbConnection = Nothing

Private Sub Form1_Load(ByVal eventSender As Object, ByVal eventArgs As EventArgs) Handles MyBase.Load
    
    RDOConnection = Artinsoft.VB6.DB.AdoFactoryManager.GetFactory().CreateConnection()

'UPGRADE_ISSUE: (2064) RDO.CursorDriverConstants property CursorDriverConstants.rdUseClientBatch was not upgraded. More Information: http://www.vbtonet.com/ewis/ewi2064.aspx

'UPGRADE_ISSUE: (2064) RDO.RDOConnection property RDOConnection.CursorDriver was not upgraded. More Information: http://www.vbtonet.com/ewis/ewi2064.aspx

UpgradeStubs.RDO_rdoConnection.setCursorDriver(RDOConnection, UpgradeStubs.RDO_CursorDriverConstants.getrdUseClientBatch())

RDOConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\TestDB.mdb"
    RDOConnection.Open()
        
    recRecordset = RDORecordSetHelper.Open("select * from Countries", RDOConnection, LockTypeConstants.rdConcurBatch, "")
        
    recRecordset.MoveFirst()
End Sub

Note that the connection String (gray highlight) was manually added after the automated migration stage.

Resulting C#.NET Code:

public RDORecordSetHelper recRecordset = null;
private DbConnection _RDOConnection = null;

private void  Form1_Load( Object eventSender,  EventArgs eventArgs)
{
                
    RDOConnection = Artinsoft.VB6.DB.AdoFactoryManager.GetFactory().CreateConnection();

//UPGRADE_ISSUE: (2064) RDO.CursorDriverConstants property CursorDriverConstants.rdUseClientBatch was not upgraded. More Information: http://www.vbtonet.com/ewis/ewi2064.aspx

//UPGRADE_ISSUE: (2064) RDO.RDOConnection property RDOConnection.CursorDriver was not upgraded. More Information: http://www.vbtonet.com/ewis/ewi2064.aspx

UpgradeStubs.RDO_rdoConnection.setCursorDriver(RDOConnection, UpgradeStubs.RDO_CursorDriverConstants.getrdUseClientBatch());
    RDOConnection.ConnectionString = "DSN=TestDB;UID=;PWD=;Database=TestDB";
    
RDOConnection.Open();
                    
    recRecordset = RDORecordSetHelper.Open("select * from Countries", RDOConnection, LockTypeConstants.rdConcurBatch, "");
                    
    recRecordset.MoveFirst();
    DisplayInfo();
}
Talk To An Engineer