BCommand - Esempi
Uso consigliato tramite BConnection
Nelle applicazioni B-Arts aggiungere normalmente i parametri direttamente a BConnection:
using B.BData;
using BConnection connection = new BConnection(GetDatabaseSetting());
connection.AddParameter("@ID", 10);
object? result = connection.ExecuteScalar("BSP_sysSistemi_SELECT");
Uso diretto di BCommand
Usare BCommand direttamente soltanto quando serve controllare esplicitamente il comando, il timeout, il tipo oppure la connessione associata.
using B.BData;
using System.Data;
using static B.BStatics.BEnumerations;
using BConnection connection = new BConnection(GetDatabaseSetting());
connection.ApriDatabase();
using BCommand command = new BCommand(
eDataProvider.SQL_OLEDB_PROVIDER,
"BSP_sysSistemi_SELECT",
connection.Connection);
command.CommandType = CommandType.StoredProcedure;
command.Timeout = 30;
command.AddParameter(connection.NewDBDataParameter("@ID", 10));
object? result = command.ExecuteScalar();
Il provider passato a BCommand deve corrispondere al tipo concreto della connessione. Una combinazione incompatibile genera BErrorProviderDB.
Riutilizzo del comando
command.ClearParameter();
command.SQLCommand = "BSP_sysSistemi_SEARCH";
command.AddParameter(connection.NewDBDataParameter("@Attivo", true));
BDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
object description = reader.DataReader["Descrizione"];
}
}
finally
{
reader.Close();
}
Prima di riutilizzare un comando, eliminare i parametri precedenti con ClearParameter.
Quando si usa direttamente BCommand con SQL Server, passare un IDbDataParameter creato da BConnection.NewDBDataParameter.
L'esempio compila senza database, ma l'esecuzione richiede SQL Server, stored procedure e credenziali validi.
La connessione viene aperta esplicitamente prima di creare ed eseguire il comando. Chiuderla nel blocco di gestione previsto dall'applicazione quando tutte le letture sono terminate.
