English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • Sync Service
  • Metodi remoti

Query

funzione copia link

Scopo

Questa funzione permette di richiedere l'esecuzione di un comando al server, il cui risultato è contenuto in un recordset ritornato dal server stesso. Il server elabora questa richiesta tramite gli evento OnSynchronize e OnSyncQuery.

Sintassi

string cmd = ""
IDArray params = new()
Recordset rs = SyncService.query(cmd, params)

Argomenti

Comando E' una stringa che contiene il nome del comando da eseguire, così come verrà riconosciuto dal server.
Parametri E' un parametro opzionale di tipo IDArray. E' possibile passare al server un elenco di parametri relativi al comando.

Valore di ritorno

Viene ritornato un oggetto Recordset che contiene la risposta del server.

Esempio di codice

public void Ordini1.Query()
{
  // Passo l'ID del cliente come parametro
  IDArray ida = new()
  ida.addValue(Ordini.Idcliente)
  // 
  // Richiedo gli ordini del cliente al server

  Recordset r = SyncService.query("ordini", ida)
  // 
  // Visualizzo quanti sono

  NorthwindClient.messageBox(toString(r.recordCount()))
}



// ************************************************************
// Evento notificato quando un client vuole eseguire un comando
// ************************************************************

event RemoteClient.OnSyncQuery(
  string Command // E' il comando da eseguire
  IDArray Params // Array di parametri passati dal client
  string Domain  // Dominio del client
  Recordset RS   // Memorizzare qui il risultato
)
{
  if (Command == "ordini")
  {
    Recordset r = new()
    string cli = ""
    // 
    if (Params.length() > 0)
      cli = Params.getValue(0)
    // 
    select into recordset (r)
      Ordini.Idordine as IDOrdine
      Ordini.Idcliente as IDCliente
      Clienti.NomeSocieta as RagioneSociale
    from
      Ordini  // master table
      Clienti // joined with Ordini using key ClientiOrdini
    where
      Ordini.Idimpiegato = toInteger(Domain)
      Ordini.Idcliente like cli + "%"
    // 
    RS.copyFrom(r)
  }
}
  • Anche se non avviene la sincronizzazione dei documenti, l'uso di questo comando esegue comunque una sessione verso il server, che quindi può autenticare il client tramite l'evento OnSynchronize.
  • NON è consigliabile passare come comando stringhe SQL che il server deve eseguire, ma nomi logici che verranno interpretati dal server e convertiti nelle corrispondenti query.
  • A partire dalla versione 11.1 di Instant Developer il sistema, prima di eseguire la query remota, verifica se il server di sincronizzazione è raggiungibile. Qualora il server non sia raggiungibile la funzione Query restituisce il valore NULL. Il controllo viene effettuato solo nel caso di applicazioni offline eseguite dentro alla shell nativa. Per modificare il comportamento del sistema riguardo la verifica di raggiungibilità del server di sincronizzazione è sufficiente cambiare il valore della proprietà CheckServer.

Ultima modifica: 23/03/2021 / Validità: da 10.5.4660

Vedi Anche

  • Recordset
  • ID Array
  • On Synchronize (evento)
  • On Sync Query (evento)
  • Check Server (proprietà)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum