B-Arts DocumentationIndice generale

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.