Conversione dei package di dati

Le applicazioni che utilizzano i package java.sql e javax.sql vengono convertite nello spazio dei nomi System.Data.OleDb. Se si utilizza un sistema di database diverso, è possibile convertire questi riferimenti nel client del proprio sistema, per esempio, System.Data.SQLClient o System.Data.ODBC.

I provider di dati .NET Framework gestiscono le connessioni automaticamente. Il pool di connessioni può essere configurato per ciascun provider di dati, come per esempio ODBC, OleDB e SQL Server.

È necessario convertire tutte le stringhe di connessione nel formato .NET Framework. Negli esempi seguenti viene descritta la conversione dei vari tipi di connessione al database.

Esempio

Nell'esempio seguente viene illustrato l'utilizzo del ponte JDBC-ODBC:

Codice Visual J++ originale

String dbUrl = "jdbc:odbc:BiblioODBC";
Connection c = DriverManager.getConnection(dbUrl);

Codice Visual C# equivalente

String dbUrl = "Provider = MSDASQL; DSN = BiblioODBC";
ODBCConnection c = "DriverManager.getConnection(dbUrl);

Nell'esempio seguente viene illustrato come utilizzare un URL da Microsoft SQL Server:

Codice Visual J++ originale

String dbUrl = "jdbc:microsoft:sqlserver://MySQLServer:1433; DatabaseName=pubs";
Connection c = "DriverManager.getConnection(dbUrl, username, pwd);

Codice Visual C# equivalente

String dbUrl = "Provider = SQLOLEDB; DataSource = MySQLServer; Initial Catalog = pubs";
SQLConnection c = DriverManager.getConnection (dbUrl + "; User ID = " + username + "; PWD + " + pwd);

Stringa di connessione Oracle originale

Nell'esempio seguente viene descritta la procedura per la modifica di una stringa di connessione al database Oracle:

String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
conn = DriverManager.getConnection(jdbcUrl, user, password);

Codice Visual C# equivalente

String jdbcUrl = "Provider = MSDAORA; Data Source = localhost:1521;";
OracleConnection conn = DriverManager.getConnection(jdbcUrl + "User ID = " user + "; Password = " + password);

Gli insiemi di risultati aggiornabili e scorrevoli non vengono convertiti in modo affidabile. Viene fornita un classe di supporto che tuttavia richiede una regolazione manuale. Se l'applicazione in uso si basa in modo rilevante su questi insiemi di risultati, utilizzare la classe System.Data.DataView o System.Data.DataTable, invece che la classe System.Data.OleDb.OleDbDataReader nella quale i risultati vengono convertiti automaticamente.

I tipi di dati Clob e Blob vengono convertiti rispettivamente in matrici di caratteri e byte che hanno un comportamento differente e potrebbero utilizzare una maggior quantità di memoria. Il codice convertito recupera i dati in modo sequenziale e crea la matrice. È possibile scrivere il flusso di dati su un file del disco. È inoltre possibile utilizzare la classe System.Data.OracleClient.OracleLob che viene usata per rappresentare il tipo di dati Large Object Binary su un server Oracle. Alcuni nuovi tipi di dati come STRUCT, ARRAY, i tipi definiti dall'utente non sono supportati nel .NET Framework. La classe gestita System.Data.OracleClient.OracleBFile funziona con il tipo di dati Oracle BFile.

I tipi di accessi ai dati sono specifici di un tipo di database. Tutto il codice JDBC viene convertito nei tipi OleDb in quanto i driver OleDb sono disponibili per la maggior parte dei database. In alcuni casi, potrebbe risultare utile modificarli dopo la conversione per ottenere risultati o un supporto migliori. Altri tipi di adattatori dati disponibili nel .NET Framework comprendono ODBC, SQL, e Oracle.

DataSources non sono mappate; tuttavia, in alcuni casi OleDbConnection o per qualsiasi altra classe di concessione client sotto lo spazio di nomi System.Data potranno essere utilizzate per rappresentare alcune funzionalità. Le funzionalità di log dell'interfaccia javax.sql.DataSource possono essere implementate utilizzando la classe System.Diagnostics.EventLog.

Il package javax.sql non viene convertito in modo affidabile. Le interfacce del package devono essere implementate mediante driver di terze parti.

L'interfaccia Driver e la classe DriverManager sono obsolete e non sono più necessarie. Alcuni dei metodi possono essere convertiti, ma non sono utili.

Vedere anche

Mostra: