Documentazione
Torna al sito web >

ExecuteSQL (Pascalscript)

Descrizione

Questa funzione esegue qualsiasi comando SQL relativo al database corrente (client). Affinché lo stesso comando non venga richiamato più di una volta dal generatore di report, è necessario inserirlo nell'evento principale del report in BeforePrint.

Sintassi

function ExecuteSQL(var Report:TppReport;const Statement:String; var Affected:Integer; var ResultMsg:String ): boolean;

Argomenti

L'oggetto Report deve essere sempre specificato ed è sempre chiamato Report. E' l'oggetto della presente relazione. Il comando SQL da eseguire è specificato nell'istruzione delle costanti di stringa. Il numero di righe infette viene riportato nel valore intero infetto. Nella stringa ResultMsg, un comando Seleziona restituisce il primo campo del primo record del set di risultati. In questo modo è possibile recuperare un valore dal server SQL. Se si verifica un errore, ResultMsg contiene il testo dell'errore. Il risultato di ExecuteSQL è Vero se la funzione può essere eseguita senza errori. Se il server SQL ha rilevato un errore, il risultato della funzione è Falso e il testo dell'errore viene trasmesso in ResultMsg.

Esempio

var
  ResultMsg : String;
  Statement : String;
  Affected : Integer;
begin
  Statement:='UPDATE Artikel SET EkNetto=0.0';
  if ExecuteSQL(Report, Statement, Affected, 
    ResultMsg)=False then
  begin
    ShowMessage('Si è verificato il seguente errore: '+
       ResultMsg);
  end else
  begin
    ShowMessage('Sono interessati '+IntToStr(Affected)+
    ' record di dati.');
  end;
end;

Le regole per comprendere lo script possono essere trovate qui.

In questo esempio tutti i prezzi d'acquisto della matrice articoli sono impostati sul valore dell'importo 0,00. Se non si verifica alcun errore, il numero di record di dati infetti viene restituito in Inteected. Se si verifica un errore, viene visualizzato il testo dell'errore passato in ResultMsg.

Se si usa un comando SELECT invece di UPDATE, si noti che solo il primo campo viene restituito come risultato in ResultMsg. Se vengono restituiti più record di dati, viene preso in considerazione solo il primo.

ShowMessage mostra: Sono interessati 18 record di dati.

Il numero di record di dati dipende naturalmente dal numero di dati dell'articolo.