Skriptausführung

<< Datenanalyse (OLAP) | IBExpert | Kopiere Datenbankobjekt >>

Die deutschsprachige Dokumentation wird seit dem 26. Juli 2016 nicht mehr gepflegt. Aktuelle und vollständige Dokumentation finden Sie auf der englischsprachigen Webseite: IBExpert Documentation


Skriptausführung

Die Skriptausführung kann zur Ansicht, Bearbeitung und Ausführung von SQL-Skripten verwendet werden. Sie kann aus dem IBExpert Menü Nützliches mit dem entsprechenden Symbol in der Symbolleiste Nützliches oder [Strg + F12] geöffnet werden. Sie wird für mehrzeilige SQLs verwendet. Die Skriptausführung kann Skripte lesen und ausführen.

Obwohl Firebird/InterBase® solche Prozedurdefinitionen auch im SQL Editor verarbeiten kann, ist es empfehlenswert, die Skriptausführung für komplexere Arbeiten zu verwenden, da sie leistungsfähiger ist als der SQL-Editor. Es werden zahlreiche Skriptspracherweiterungen angeboten, inklusive Bedingungsdirektiven und die Skriptausführung kann auch zur Ausführung mehrerer Skripte aus einem Einzelskript verwendet werden. Der Hauptvorteil der Skriptausführung ist, dass alle DDL und DML-Skripte der verbundenen Datenbank angezeigt werden.

IBExpert Version 2014.01.01 führte die Unterstützung von Firebird 3.0 Packages ein, und nun wird UTF8 BOM bei der Skriptausführung aus einer Datei übersprungen. Seit IBExpert Version 2015.12.21 werden externer Prozeduren/Funktionen/Trigger unterstützt.

Skript Explorer

Der Skript Explorer (linkes Feld) zeigt alle Datenbankobjekte, sowie IBEBlocks und Firebird Blocks, die im aktuellen Skript verwendet werden, in Baumstruktur an. Man kann auch einzelne Anweisungen schnell finden, indem man auf das Objekt in der Baumstruktur klickt. Der Skript Explorer kann mit dem entsprechenden Symbol in der Skriptausführung-Symbolleiste ein- oder ausgeblendet werden. SQL-Skripte können aus einer Datei geladen oder in eine Datei gespeichert werden.

Objekte können per Drag 'n' Drop aus dem DB Explorer und dem SQL-Assistenten in das Code-Editorfenster gezogen werden. Wenn eine Objektverknüpfung aus dem DB Explorer oder dem SQL- Assistenten gezogen wird, bietet IBExpert verschiedenen Textversionen zur Eingabe in den Code-Editor an. Es ist auch möglich, das Markieren der Variablen anzupassen. Verwenden Sie den Menüpunkt Editoreinstellungen/ Farben im IBExpert Menü Optionen, um Farbe und Schriftart der Variablen festzulegen.

Skriptseite

Vollständige Skripte können vom SQL Editor transferiert werden oder direkt aus dem Editor Extrahiere Metadaten in die Skriptausführung mit den entsprechenden Menüpunkten (bitte lesen Sie direkt in den entsprechenden Kapiteln hierzu nach).

Bitte beachten Sie, dass die Skriptausführung immer die Standardbibliothek verwendet, die unter dem Menüpunkt Programmeinstellungen / Einstellungen/ Standard Clientbibliothek im IBExpert Menü Optionen, es sei denn, diese wird überschrieben mit dem Befehl SET CLIENTLIB.

DML-Anweisungen können - wenn gewünscht - im Skript Explorer Baum angezeigt werden. Per Rechtsklick öffnen Sie das kontextabhängige Menü und können hier Optionen aktivieren oder deaktivieren.

Der Toolbar-Menüpunkt Execute charset (Zeichensatz ausführen) bietet die Optionen ANSI, UTF8 oder Ask me. IBExpert bietet vollständigen Unicode Support. Die interne Darstellung aller Texte im Codeeditor erfolgt in Windows Unicode (UTF-16LE, zwei Bytes pro Zeichen). Dies ermöglicht Ihnen die Verwendung multilingualer Zeichen in Ihren Prozeduren, Abfragen, Datenbankobjektbeschreibungen etc., wenn Sie den UTF8 Zeichensatz bei der Verbindung mit Ihrer Datenbank verwenden.

IBExpert unterstützt auch Vor/Nach Metadatenänderungen-Events. Ausführung von DDL-Anweisungen werden zuerst vor und nach Metadaten Eventblöcken ausgelöst, wenn sie zugewiesen sind und die Aktuelle Verbindung verwenden-Option AN ist.

Folgende Features werden in der Sktriptausführung und IBEScript angeboten: wenn kein Passwort und/oder kein Benutzername in den CONNECT oder CREATE DATABASE Anweisungen eingegeben wird, erscheint ein Login Fenster. Nun ist es auch möglich die Verbindungs-Zeichensatz (SET NAMES) und Garbage Collection-Option (SET GARBAGE_COLLECT) vor der RECONNECT-Anweisung zu ändern. Alle SET-Befehle, die von einem RECONNECT-Befehl gefolgt werden, betreffen die neue Verbindung.

Ddie IBECurrentScriptPath Umgebungsvariable wird vor der Skriptausführung intern initialisiert, und sein Wert stellt den Pfad zur aktuellen Skriptdatei (wenn der Skript von einer Datei geladen/ausgeführt wird) dar. Sie können diese Variable in INPUT, SET BLOBFILE und SET PARAMFILE Anweisungen verwenden, um zu spezifizieren, wo IBExpert/IBEScript nach den erforderlichen Dateien suchen soll.

Beispiel:

 INPUT 'Inputs\data.sql';
 ...
 SET BLOBFILE 'Data\blobs.lob';

Wenn Sie in einer Datenbank den Zeichensatz UTF8 verwenden, konvertiert IBExpert automatisch von UTF8 nach Windows Unicode (bei Öffnung) und zurück (bei Kompilierung). Dies gilt für Firebird 2.1 und 2.5 Datenbanken. Bei anderen Datenbanken müssen Sie dies manuell einstellen (falls Sie es wirklich benötigen!) durch Markieren der Option Do NOT perform conversion from/to UTF8 (nicht von/nach UTF8 konvertieren unter Datenbank registrieren. In der Regel weiß IBExpert, wann es Strings von Windows Unicode nach UTF8 konvertieren muss, aber manchmal ist es notwendig, den Konvertierungstyp manuell festzulegen. Daher können Sie den erforderlichen Zeichensatz manuell festlegen.

Die Seite Skripte enthält noch andere Features, wie Codeergänzung (Details hierzu finden Sie unter Code Insight) und [F1] kontext-sensitive Keyword Hilfe - auch bekannt aus dem SQL Editor. Das SQL Editor Menü kann per Rechtsklick im Skriptbereich aufgerufen werden.

The Advanced progess option was implemented in IBExpert version 2016.03.15. The progress bar is shown on the Script Executive toolbar, and if this option is enabled (default), IBExpert roughly calculates and displays the remaining time using known script size and time already spent, and scrolls the script text editor accordingly to the part of the script currently being executed.

Die Erweiterte Fortschritt-Option wurde in IBExpert Version 2015.03.15 implementiert. Der Fortschrittbalken wird im Skriptausführungs-Toolbar angezeigt und bei Aktivierung (Default) rechnet IBExpert anhand der bekannten Skriptgröße und der bereits abgelaufenen Zeit grob durch, und zeigt die verbleibende Zeit an, . Auch scrollt er durch den Skripttext-Editor zum entsprechenden, aktuell ausgeführten Skriptteil.

Attach:dmiles2143.gif Δ

Nach der Ausführung der Anweisung zeigt die Seite Skripte eventuelle Fehler rot markiert an. Eventuelle Firebird Fehlermeldungen, die auf der Messages-Seite erscheinen, können in der Firebird 2.1 error codes Dokumentation nachgeschlagen werden. Mit dem Symbol

kann das Skript schrittweise ausgeführt werden.

Fehler, die in der unteren Messages-Box erscheinen, können mit dem Rechtsklickmenüpunkt Save Messages Log ... (Speichere Fehlerprotokoll...) in einer Datei gespeichert werden, falls gewünscht.

Seite Statements (Anweisungen)

Die Seite Statements zeigt eine Liste einzelnen Anweisungen in Tabellenformat an:

Diese Anweisungen können einfach durch Entfernen der Markierung aus der Checkbox auf der linken Seite deaktiviert werden. Eine, mehrere oder alle Anweisungen können über das Rechtsklickmenü aktiviert oder deaktiviert werden. Breakpoints können einfach durch Anklicken der BP-Spalte (oder mit der Leertaste) links von der ausgwählten Anweisung festgelegt oder entfernt werden.

zurück zum Seitenanfang

Seite Optionen

Zur Zeit werden folgende Optionen angeboten, die für die aktuelle Instanz der Skriptausführung gelten:

  • Abbruch von Skripten bei Fehlern
  • Rollback beim Abbruch
  • Eventblocks auslösen: diese betrifft lediglich der aktuellen Instanz der Skriptausführung.

zurück zum Seitenanfang

Verwendung von Unicode in der Skriptausführung

Wenn Sie Unicode-Textstrings in Ihre Datenbank einfügen müssen, müssen Sie wissen, welcher Zeichensatz für die Verbindung verwendet wird. Wenn ein Nicht-Unicode Zeichensatz verwendet wird, sollten Sie nicht ihre Strings nach Unicode konvertieren, da der Server dies machen wird. Zum Beispiel:

Wenn Sie jedoch mit Ihrer Datenbank verbinden und Sie verwenden einen UTF8.Zeichensatz, sollten Sie Unicode-Strings verwenden:

Um Strings von/nach Unicode zu konvertieren, verwenden Sie die enstprechenden Menüpnukte im Pop-Up-Menü des Editors:

zurück zum Seitenanfang

Ausführung mehrerer Skripte aus einem Einzelskript

Verwenden Sie einfach die folgende Syntax:

 connect 'server:c:\my_db.gdb' ...;

 input 'c:\my_scripts\f2.sql';
 input 'c:\my_scripts\f1.sql';
 input 'c:\my_scripts\f3.sql';

zurück zum Seitenanfang

Erzeugung mehrerer CSV-Dateien aus einem Skript

Das folgende Beispiel illustriert, wie man aus einem Skript mehrere CSV-Dateien erzeugt:

 shell del C:\list.dat nowait;    --alte Datei löschen 
 shell del C:\*.csv nowait;    --alte CSV-Dateien löschen

 connect 'localhost:C:\employee.fdb' user 'SYSDBA' password 'masterke';  
 --verbinden mit der Beispieldatenbank Employee

 output 'C:\list.dat'; --folgendes Ergebnis als einfache Textdatei aufzeichnen,
 basierend auf jedem einmaligen Mitarbeiter (employee) wird eine neue 
 output ...;select ... ;output; Zeile in der .dat-Datei erzeugt

SELECT distinct

 'OUTPUT C:\'||EMPLOYEE.last_name||'.csv delimiter '';'';'|| 
 'SELECT distinct EMPLOYEE.last_name, customer.customer,customer.phone_no '||
 'FROM SALES INNER JOIN CUSTOMER ON (SALES.CUST_NO = CUSTOMER.CUST_NO) '||
 'INNER JOIN EMPLOYEE ON (SALES.SALES_REP = EMPLOYEE.EMP_NO) where 
 EMPLOYEE.last_name=XXXXXX||EMPLOYEE.last_name||''';'||
 'OUTPUT;'
 FROM SALES INNER JOIN CUSTOMER ON (SALES.CUST_NO = CUSTOMER.CUST_NO) INNER JOIN EMPLOYEE ON 

 (SALES.SALES_REP = EMPLOYEE.EMP_NO);

 output;      --diese dat-Datei schließen 
 input 'C:\list.dat';  --diese ausführen 

Die Datendatei wird automatisch erzeugt.

Die äußere Abfrage bekommt einen Datensatz für jeden Mitarbeiter (employee), in der inneren Abfrage werden alle Telefonnummern der Mitarbeiter ausgewählt, wenn Kunden ausgewählt sind.

Weitere Infos finden Sie unter IBEBlock Beispiele: Importieren von Daten aus einer CSV-Datei.

zurück zum Seitenanfang

Skriptsprachenergänzungen

Skriptsprachenergänzungen sind einmalig in IBExpert und bieten dem Entwickler eine Vielzahl an zusätzlichen Sprachoptionen. Diese beinhalten unter anderem Bedingungsdirektiven, DESCRIBE Datenbankobjekte, sowie SET, SHELL, INSERTEX, OUTPUT und RECONNECT.

Bedingungsdirektiven

Bedingungsdirektiven kontrollieren die bedingte Ausführung von Skriptteilen. Vier Typen von Bedingungsdirektiven werden unterstützt:

$IFEXISTS

Diese testen das Vorhandensein von definierten Datenbankobjekten oder Daten und führen den folgenden Skriptblock aus, wenn das Objekt oder die Daten in der Datenbank vorhanden sind.

Syntax

1. {$IFEXISTS DOMAIN|TABLE|VIEW|TRIGGER|PROCEDURE|

              EXCEPTION|GENERATOR|UDF|ROLE object_name}

2. {$IFEXISTS select_statement}

Beispiel

Das folgende Skript löscht die Exception InvalidUserID, wenn diese in der Datenbank vorhanden ist:

  {$IFEXISTS EXCEPTION "InvalidUserID"}

     DROP EXCEPTION "InvalidUserID";

Das nächste Skript ändert eine Prozedur:

  {$IFEXISTS SELECT RDB$PROCEDURE_NAME
             FROM RDB$PROCEDURES
             WHERE RDB$PROCEDURE_NAME = 'GETDBVER'}

     ALTER PROCEDURE GETDBVER
     RETURNS (
         VER INTEGER)
     AS
     begin
       ver = 2;
       suspend;
     end;

zurück zum Seitenanfang

$IFIBEVERSION

Die Bedingungsdirektive $IfIBEVersion ermöglicht die Überprüfung der aktuelle Version des IBExpert/IBEScripts.

Syntax

        {$IfIBEVersion <relational_operator> <version_number>}
      ...      
      ...                <relational_operator> = < | > | =< | >= | = | <> |      

<version_number> - Versionnummerstring ohne Anführungszeichensatz.

Beispiel

     {$IfIBEVersion < 2007.7.16.0}
       execute ibeblock
       as
       begin
         ibec_ShowMessage('Please, update your version of IBExpert/IBEScript!');
       end;
       quit;            

zurück zum Seitenanfang

$IFNOTEXISTS ($IFNEXISTS)

Diese überprüfen das Vorhandensein der spezifizierten Datenbankobjekte oder der Daten und führen den folgenden Skriptblock aus, wenn das Objekt oder die Daten nicht in der Datenbank vorhanden sind.

Syntax

1. {$IFNOTEXISTS DOMAIN|TABLE|VIEW|TRIGGER|PROCEDURE|

                    EXCEPTION|GENERATOR|UDF|ROLE object_name}

2. {$IFNOTEXISTS select_statement}

Beispiel

Das folgende Skript erzeugt eine Tabelle CUSTOMERS, wenn es diese noch nicht in der Datenbank gibt:

  {$IFNOTEXISTS TABLE CUSTOMERS}

     CREATE TABLE CUSTOMERS (
       ID          INTEGER NOT NULL PRIMARY KEY,
       FIRST_NAME  VARCHAR(30),
       MIDDLE_NAME VARCHAR(30),
       LAST_NAME   VARCHAR(30));

Das nächste Skript erzeugt eine Exception:

  {$IFNOTEXISTS SELECT RDB$EXCEPTION_NAME
                FROM RDB$EXCEPTIONS
                WHERE RDB$EXCEPTION_NAME = 'InvalidUserID'}

     CREATE EXCEPTION "InvalidUserID" 'Invalid User Identifier!';

zurück zum Seitenanfang

$ELSE

Das Umschalten von Ausführung auf Ignorierung eines Skriptteils wird von dem vorherigen {$IFEXISTS} oder {$IFNOTEXISTS} und dem folgenden {$ENDIF} begrenzt.

Syntax

Beispiel

Das folgende Skript überprüft das Vorhandensein der Domäne DOM_BOOL in der Datenbank. Wenn die Domäne DOM_BOOL in der Datenbank nicht gefunden wird, wird sie erzeugt. Wenn die Domäne DOM_BOOL bereits in der Datenbank vorhanden ist, wird sie geändert.

zurück zum Seitenanfang

$ENDIF

Beendet die bedingte Ausführung, die von der letzten {$IFEXISTS} oder {$IFNOTEXISTS} Direktive initiiert wurde.

Syntax

Beispiel

Das folgende Skript erzeugt einen Generator:

zurück zum Seitenanfang

Bedingungsdirektiven - das vollständige Beispiel

Dieses Beispiel illustriert die Verwendung von Bedingungsdirektiven zwecks Upgrade der Datenbank. Angenommen, es gibt eine Anfangsversion Ihrer Datenbank (Version 1):

Das nächste Skript bewirkt ein Upgrade Ihrer Datenbank, egal welcher Version < 4 auf Version 4.

zurück zum Seitenanfang

IBExpert DESCRIBE Anweisung

Die IBExpert spezifische DESCRIBE-Anweisung wird in die Firebird COMMENT ON-Anweisung bei der Ausführung von Skripts für Firebird 3 Datenbanken übersetzt, anstelle von UPDATE RDB$xxx.

DESCRIBE DOMAIN

Hiermit wird eine Domänenbeschreibung geändert.

Syntax

 DESCRIBE DOMAIN domain_name 'description';
ArgumentBeschreibung
domain_nameName einer vorhandenen Domäne.
'description'String in einfachen Anführungszeichen beinhaltet eine Domänenbeschreibung.

Beschreibung

DESCRIBE DOMAIN verändert die Beschreibung einer vorhandenen Domäne domain_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in DB$FIELDS, verbunden mit dem festgelegten Domänennamen.

Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$FIELDS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$FIELD_NAME = 'domain_name'

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE DOMAIN DOM_BOOL
  'Boolean value:
   0 - FALSE
   1 - TRUE';

zurück zum Seitenanfang

DESCRIBE EXCEPTION

Hiermit wird eine Exceptionbeschreibung geändert.

Syntax

  DESCRIBE EXCEPTION exception_name 'description';
ArgumentBeschreibung
exception_nameName einer vorhandenen Exception.
'description'String in einfachen Anführungszeichen beinhaltet eine neue Beschreibung einer spezifizierten Exception.

Beschreibung

DESCRIBE EXCEPTION ändert die Beschreibung einer vorhandenen Exception exception_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$EXCEPTIONS, verbunden mit der spezifizierten Exception. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$EXCEPTIONS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$EXCEPTION_NAME = 'exception_name'

wobei der Parameter DESC mit der ausgefüllt wird.

Beispiel

  DESCRIBE EXCEPTION MISSING_USER
  'There is no such user!';

zurück zum Seitenanfang

DESCRIBE FIELD

Hiermit wird eine Spaltenbeschreibung geändert.

Syntax

  DESCRIBE FIELD column_name TABLE table_name 'description';
ArgumentBeschreibung
column_nameName einer vorhandenen Spalte einer Tabelle table_name.
tableName einer vorhandenen Tabelle.
'description'String in einfachen Anführungszeichen beinhaltet eine Spaltenbeschreibung.

Beschreibung

DESCRIBE FIELD ändert die Beschreibung einer vorhandenen Spalte column_name einer Tabelle table_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$RELATION_FIELDS, verbunden mit dem spezifizierten Spaltennamen und den Tabellennamen. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$RELATION_FIELDS
  SET RDB$DESCRIPTION = :DESC
  WHERE (RDB$RELATION_NAME = 'table_name') AND
        (RDB$FIELD_NAME = 'column_name')

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE FIELD FULL_USER_NAME TABLE USERS
  'Full user name.
   Computed, concatenation of FIRST_NAME, MIDDLE_NAME and LAST_NAME';

zurück zum Seitenanafang

DESCRIBE FUNCTION

Hiermit wird die UDF-Beschreibung geändert.

Syntax

  DESCRIBE FUNCTION function_name 'description';
ArgumentBeschreibung
function_nameName einer vorhandenen benutzerdefinierten Funktion (UDF).
'description'String in einfachen Anführungszeichen, beinhaltet eine UDF-Beschreibung.

Beschreibung

DESCRIBE FUNCTION ändert die Beschreibung einer vorhandenen benutzerdefinierten Funktion function_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$FUNCTIONS, verbunden mit der spezifizierten Funktion. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$FUNCTIONS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$FUNCTION_NAME = 'function_name'

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE FUNCTION COMPARE_BLOBS
  'Vergleicht zwei Blob-Werte und gibt 1 zurück, wenn beide Werte gleich sind. Sonst wird 0 zurückgegeben';

zurück zum Seitenanfang

DESCRIBE PARAMETER

Hiermit wird die Beschreibung eines Prozedurparameters geändert.

Syntax

  DESCRIBE PARAMETER parameter_name PROCEDURE procedure_name 'description';
ArgumentBeschreibung
parameter_nameName eines vorhandenen Prozedurparameters.
procedure_nameName einer vorhandenen Stored Procedure.
'description'String in einfachen Anführungszeichen, beinhaltet eine Parameterbeschreibung.

Beschreibung

DESCRIBE PARAMETER ändert die Beschreibung eines vorhandenen Parameters parameter_name einer spezifizierten Stored Procedure procedure_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$PROCEDURE_PARAMETERS, verbunden mit dem spezifizierten Parameter und den Prozedurnamen. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$PROCEDURE_PARAMETERS
  SET RDB$DESCRIPTION = :DESC
  WHERE (RDB$PROCEDURE_NAME = 'procedure_name') AND
        (RDB$PARAMETER_NAME = 'parameter_name')

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE PARAMETER USER_ID PROCEDURE CALC_TRAFFIC
  'User ID';

zurück zum Seitenanfang

DESCRIBE PROCEDURE

Hiermit wird die Beschreibung einer Stored Procedure geändert.

Syntax

  DESCRIBE PROCEDURE procedure_name 'description';
ArgumentBeschreibung
procedure_nameName einer vorhandenen Stored Procedure.
'description'String in einfachen Anführungszeichen enthält eine Prozedurenbeschreibung.

Beschreibung

DESCRIBE PROCEDURE ändert die Beschreibung einer vorhandenen Stored Procedure procedure_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$PROCEDURES verbunden mit der festgelegten Prozedur. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$PROCEDURES
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$PROCEDURE_NAME = 'procedure_name'

wobei der Parameter DESC mit der Schreibung ausgefüllt wird.

Beispiel

  DESCRIBE PROCEDURE CALC_TRAFFIC
  'Berechnet den Summary-Datenverkehr';

zurück zum Seitenananfang

DESCRIBE TABLE

Hiermit wird eine Tabellenbeschreibung geändert.

Syntax

  DESCRIBE TABLE table_name 'description';
ArgumentBeschreibung
table_nameName einer vorhandenen Tabelle.
'description'String in einfachen Anführungszeichen beinhaltet eine Tabellenbeschreibung.

Beschreibung

DESCRIBE TABLE ändert die Beschreibung einer vorhandenen Tabelle table_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION in RDB$RELATIONS verbunden mit der festgelegten Tabelle. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$RELATIONS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$RELATION_NAME = 'table_name'

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE TABLE CUSTOMERS
  'Kunden unserer hervorragenden Anwendung';

zurück zum Seitenanfang

DESCRIBE TRIGGER

Hiermit wird eine Triggerbeschreibung geändert.

Syntax

  DESCRIBE TRIGGER trigger_name 'description';
ArgumentBeschreibung
trigger_nameName eines vorhandenen Triggers.
'description'String in einfachen Anführungszeichen beinhaltet eine Triggerbeschreibung.

Beschreibung

DESCRIBE TRIGGER ändert die Beschreibung eines vorhandenen Triggers trigger_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION of RDB$TRIGGERS verbunden mit der festgelegten Tabelle. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$TRIGGERS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$TRIGGER_NAME = 'trigger_name'

wobei der Paramter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE TRIGGER USERS_BI
  'Erzeugt einen einmaligen Identifizierer';

zurück zum Seitenanfang

DESCRIBE VIEW

Hiermit wird eine Viewbeschreibung geändert.

Syntax

  DESCRIBE VIEW view_name 'description';
ArgumentBeschreibung
view_nameName eines vorhandenen Views.
'description'String in einfachen Anführungszeichen enthält eine Viewbeschreibung.

Beschreibung

DESCRIBE VIEW ändert die Beschreibung eines vorhandenen Views view_name. Wenn die IBExpert Skriptausführung diese Anweisung ausführt, modifiziert sie den Wert der Spalte RDB$DESCRIPTION der RDB$RELATIONS verbunden mit dem festgelegten View. Tatsächlich wird folgende Anweisung ausgeführt:

  UPDATE RDB$RELATIONS
  SET RDB$DESCRIPTION = :DESC
  WHERE RDB$RELATION_NAME = 'view_name'

wobei der Parameter DESC mit der Beschreibung ausgefüllt wird.

Beispiel

  DESCRIBE VIEW ALL_USERS
  'Einfach alle Benutzer...:)';

zurück zum Seitenanfang

INSERTEX (CSV file import)

Hiermit werden Daten aus einer CSV-Datei in einer Datenbanktabelle importiert.

Syntax

  INSERTEX INTO table_name [(columns_list)]
     FROM CSV file_name
     [SKIP n]
     [DELIMITER delimiter_char]
ArgumentBeschreibung
table_nameName einer Tabelle, in die Daten eingegeben werden sollen.
columns_listListe von Spalten, in die Daten eingegeben werden sollen.
file_nameName der CSV-Datei, aus der Daten importiert werden sollen.
SKIP nErlaubt das Überspringen der ersten n-Zeilen einer CSV-Datei beim Importieren von Daten.
DELIMITER delimiter_charErmöglicht die Festlegung eines Begrenzers, der zum Parsen der Daten verwendet wird.

Wenn dieses Argument nicht definiert wird, verwendet IBExpert einen Doppelpunkt als Begrenzer.

Unterstützung des Firebird 3 BOOLEAN-Datentyps wurde in IBExpert Version 2015.12.21 implementiert.

Beschreibung

INSERTEX importiert Daten aus einer CSV-Datei in eine Datenbanktabelle. Werte innerhalb einer CSV-Datei müssen mit einem Doppelpunkt CHAR oder einem anderen CHAR begrenzt werden. Im letzteren Fall ist es notwendig, einen Begrenzer CHAR mit dem Argument DELIMITER festzulegen. Es ist auch möglich, Nicht-Druckzeichen als Begrenzer festzulegen. Zum Beispiel, wenn Werte in Tab-Char (ASCII value $09) definiert sind, können sie als DELIMITER #9 oder DELIMITER $9 definiert werden.

Um unerwünschte Anführungszeichen zu ignorieren, verwenden Sie die Option QUOTECHAR '"'.

Wenn eine Tabelle table_name in einer Datenbank fehlt, wird sie automatisch erzeugt. In diesem Fall wird die Anzahl der Spalten in der neu erzeugten Tabelle gleich der Anzahl der Werte in der ersten Zeile der CSV-Datei sein. Spalten werden F_1, F_2 etc. benannt. Der Datentyp jeder Spalte ist VARCHAR(255).

Wenn die columns_list nicht definiert ist, wird IBExpert die Daten der ersten Spalte einfügen. Ansonsten werden Daten nur in die festgelegten Spalten eingefügt. Es ist möglich, die ersten Zeilen einer CSV-Datei mit dem Argument SKIP zu überspringen. Dies kann hilfreich sein, wenn die erste Zeile Spaltenüberschriften enthält oder leer ist.

Es ist auch möglich, den Befehl INSERTEX im SQL Editor zu verwenden.

Beispiele

In folgendem Beispiel gehen wir von der Verwendung von INSERTEX aus. Angenommen, es gibt eine CSV-Datei mit folgenden Daten, begrenzt mit einem Doppelpunkt:

  C:\Mydata.csv
  =======================================================
  ID:FIRST_NAME:LAST_NAME:SEX
  1:John:Doe:M
  2:Bill:Gates:M
  3:Sharon:Stone:F
  4:Stephen:King:M
  =======================================================

Die folgende Anweisung INSERTEX erzeugt eine Tabelle PEOPLE (falls diese nicht bereits vorhanden ist) und befüllt diese mit Daten aus C:\Mydata.csv:

  INSERTEX INTO PEOPLE FROM CSV 'C:\Mydata.csv' DELIMITER ':';

Die Struktur und Inhalte von PEOPLE nach dem Datenimport werden unten gezeigt:

F_1 (VARCHAR(255))F_2 (VARCHAR(255))F_3 (VARCHAR(255))F_4 (VARCHAR(255))
IDFIRST_NAMELAST_NAMESEX
1JohnDoeM
2BillGatesM
3SharonStoneF
4StephenKingM

Die folgende Anweisung INSERTEX ist fast identsich mit der oben, aber die erste Zeile der CSV-Datei wurde übersprungen:

  INSERTEX INTO PEOPLE FROM CSV 'C:\Mydata.csv' DELIMITER ':' SKIP 1;

Die Struktur und Inhalte der Tabelle PEOPLE nach dem Import wird unten gezeigt:

F_1 (VARCHAR(255))F_2 (VARCHAR(255))F_3 (VARCHAR(255))F_4 (VARCHAR(255))
1JohnDoeM
2BillGatesM
3SharonStoneF
4StephenKingM

In dem nächsten Beispiel wird die Tabelle PEOPLE erst erzeugt und dann nachträglich mit den Daten aus C:\Mydata.csv bestückt:

  CREATE TABLE PEOPLE (
      ID         INTEGER NOT NULL,
      FIRST_NAME VARCHAR(30),
      LAST_NAME  VARCHAR(30),
      SEX        CHAR(1));

  INSERTEX INTO PEOPLE FROM CSV 'C:\Mydata.csv' DELIMITER ':' SKIP 1;

Unten sehen Sie die Struktur und den Inhalt der Tabelle PEOPLE nach dem Import:

ID (INTEGER)FIRST_NAME (VARCHAR(30))LAST_NAME (VARCHAR(30))SEX (CHAR(1))
1JohnDoeM
2BillGatesM
3SharonStoneF
4StephenKingM

In dem nächsten Beispiel sind nur drei Spalten (ID, FIRST_NAME and LAST_NAME) betroffen:

  CREATE TABLE PEOPLE (
      ID         INTEGER NOT NULL,
      FIRST_NAME VARCHAR(30),
      LAST_NAME  VARCHAR(30),
      SEX        CHAR(1));

  INSERTEX INTO PEOPLE (ID, FIRST_NAME, LAST_NAME)
      FROM CSV 'C:\Mydata.csv'
      DELIMITER ':' SKIP 1;

Die Struktur und Inhalte der Tabelle PEOPLE nach dem Import sehen Sie unten:

ID (INTEGER)FIRST_NAME (VARCHAR(30))LAST_NAME (VARCHAR(30))SEX (CHAR(1))
1JohnDoeNULL
2BillGatesNULL
3SharonStoneNULL
4StephenKingNULL

zurück zum Seitenanfang

OUTPUT

Hiermit wird die Ausgabe der SELECT-Anweisung zur benannten Datei umgeleitet.

Syntax

  OUTPUT [filename [DELIMITER delim_char]
                   [QUOTECHAR 'quote_char']
                   [TIMEFORMAT 'time_format']
                   [DATEFORMAT 'date_format']
                   [DECIMALSEPARATOR 'dec_sep']
                   [NULLS]
                   [FIELDNAMES]
                   [ASINSERT | AsUpdateOrInsert [INTO table]]


ArgumentBeschreibung
filename Name der Datei, in der die Ausgabe gespeichert werden soll.
DELIMITER delim_charBestimmt ein Begrenzungszeichen, das zur Trennung der Feldwerte verwendet wird. Wenn der Begrenzer nicht definiert wird oder ein leerer String als Begrenzer festgelegt wird, wird der Austausch der Daten in dem Format mit den festen Positionen der Felder durchgeführt. Es ist auch möglich, ein Begrenzungszeichen als Dezimal- oder Hexadezimalwert eines Zeichencodes festzulegen. Um beispielsweise das Tab-Zeichen (ASCII value $09) als Begrenzer zu definieren, definieren Sie einfach DELIMITER #9 oder DELIMITER $9.
QUOTECHAR 'quote_char'Definiert das Zeichen, dass zur Setzung des Strings in Anführungszeichen verwendet wird. Wenn dieses Argument nicht definiert ist oder ein leerer String definiert wurde, werden die Stringwerte nicht in Anführungszeichen gesetzt.
TIMEFORMAT 'time_format'Definiert den String, der zur Formatierung der Werte von Zeitfeldern und die Zeitintervalle in Datum/Zeit-Werten. Wenn das Argument nicht definiert wurde, wird der Zeitwert in dem nativen InterBase®-Format ausgegeben (zum Beispiel 17:15:45).
DATEFORMAT 'date_format'Definiert den String, der zur Formatierung der Werte der Datumsfelder und der Datumsteile des Datum/Zeit-Wertes verwendet wird. Wenn das Argument nicht definiert wird, werden die Datumswerte in dem nativen InterBase®-Format ausgegeben (zum Beispiel 17-FEB-2001).
DECIMALSEPARATOR 'dec_sep'Definiert den Dezimalseparator, der beim Datenaustausch verwendet wird. Wenn das Argument nicht definiert ist, wird der System-Dezimalseparator verwendet.
NULLSDefiniert die Ausgabe von NULL-Werten. Wenn das Argument nicht festgelegt ist, werden NULLs als leerer String ausgegeben. Ansonsten werden NULL-Werte als String <null> ausgegeben.
FIELDNAMESWenn dieses Argument festgelegt ist, wird die erste Zeile in der Ergebnisdatei eine Zeile mit Namen von SELECT Spalten sein.
ASINSERTDieses Argument ermöglicht die Ausgabe von Daten als INSERT-Operatorensatz, d.h. um ein gewöhnliches SQL-Skript zu bekommen.
INTO tableWird zusammen mit ASINSERT zur Umbenennungen von Tabellennamen in INSERT-Operatoren verwendet. Wenn dieses Argument nicht definiert ist, wird der Name der ersten Tabelle in dem Datensatz verwendet.
AsUpdateOrInsertProduziert ein Skript mit der UPDATE OR INSERT-Anweisung.
OctetsAsHexErmöglicht die Extrahierung von CHAR(n) CHARACTER SET OCTETS-Werten in hexadezimalem Format.

Beschreibung

Der OUTPUT-Operator dient der Umleitung der Ausgabe der SELECT-Anweisungen in eine externe Datei. Mithilfe der gegebenen Operatoren ist es möglich, Daten einfach in eine Datei mit Separatoren oder mit festen Spaltenpositionen zu exportieren. OUTPUT ohne Parameter schließt die Datei, die mit dem vorherigen OUTPUT-Befehl geöffnet wurde und setzt alle Export-Anpassungen auf die Standardvorgabe zurück.

Wenn ASINSERT nicht festgelegt wurde, werden Blobfelder beim Datenaustausch ignoriert. Mit ASINSERT werden sogar Blobwerte exportiert, d.h. es wird eine zusätzliche Datei mit dem Suffix .lob erzeugt, in der alle Blobfelder gespeichert werden.

Bei der Ausgabe in ein SQL-Skript (ASINSERT ist definiert), werden DELIMITER, QUOTECHAR, NULLS und FIELDNAMES Argumente ignoriert.

Seit IBExpert Version 2014.03.16 unterstützt die OUTPUT Befehl die OctetsAsHex Option, welche die Extrahierung von CHAR(n) CHARACTER SET OCTETS-Werten in hexadezimalem Format ermöglicht (siehe Beispiel unten).

Beispiele

Das folgende Skript erzeugt eine MyData.txt-Datei in dem aktuellen Verzeichnis und gibt die Daten des SELECTs mit einer festen Spaltenposition dort hinein. Wenn die MyData.txt-Datei bereits in dem aktuellen Verzeichnis vorhanden ist, werden die Daten dort angehangen.

  OUTPUT MyData.txt;
  SELECT * FROM MY_TABLE;
  OUTPUT;

In dem nächsten Beispiel werden die Daten in kommaseparierten Werten im CSV-Format exportiert:

  OUTPUT 'C:\MyData\MyData.csv' DELIMITER ';'
                                FIELDNAMES
                                QUOTECHAR '"'
                                DECIMALSEPARATOR '.';
  SELECT * FROM MY_TABLE;
  OUTPUT;

In dem folgenden Skript werden die Daten in SQL-Skripte als INSERT-Operatorensatz exportiert:

  OUTPUT 'C:\MyScripts\Data.sql' ASINSERT INTO "MyTable";
  SELECT * FROM MY_TABLE;
  OUTPUT;

Das nächste Beispiel illustriert die Verwendung der OUTPUT-Anweisung zusammen mit SHELL.

  /* First create a folder C:\MyData*/
  SHELL MKDIR C:\MyData;

  /* Try to delete mydata.csv */
  SHELL DEL C:\MyData\mydata.csv;

  /* Redirect output of SELECTs into mydata.csv */
  OUTPUT C:\MyData\mydata.csv DELIMITER ';'
                              DATEFORMAT 'MMMM-dd-yyyy'
                              TIMEFORMAT 'hh:nn:ss.zzz'
                              QUOTECHAR '"';

  SELECT * FROM MY_TABLE;

  /* Close C:\MyData/mydata.csv */
  OUTPUT;

  /* Try to open just created CSV-file with Windows Notepad */
  SHELL notepad.exe C:\MyData\mydata.csv NOWAIT;

  /* Try to open C:\MyData\mydata.csv with the application
     associated with CSV files */
  SHELL C:\MyData\mydata.csv NOWAIT;

Beispiel zur Verwendung der AsUpdateOrInsert-Option:

    OUTPUT 'C:\MyScripts\data.sql' ASUPDATEORINSERT;
    SELECT * FROM MYTABLE ORDER BY ID;
    OUTPUT;
    COMMIT;

Beispiel mit der OctetsAsHex Option:

    OUTPUT 'D:\MyData\data.sql' AS INSERT OctetsAsHex;
    SELECT * FROM MYTABLE
    OUTPUT;

Erweiterte Syntax des OUTPUT-Befehls:

1.
     output 'E:\data.sql'
     as insert into mytable commit after 1000;
     select * from IBE$$TEST_DATA where F_INTEGER < 3000;
     output;
2.
     output 'E:\data.sql'
     as reinsert into mytable
     commit after 2000;
     select * from IBE$$TEST_DATA where F_INTEGER < 3000;
     output;
3.
     output 'E:\data.sql'
     as execute procedure myproc;
     select * from IBE$$TEST_DATA where F_INTEGER < 3000;
     output;

Die Option ASINSERT dient der Kompatibilität.

zurück zum Seitenanfang

RECONNECT

RECONNECT schließt die aktuelle Verbindung und erzeugt eine neue mit den gleichen Parametern (Datenbank, Benutzername, Passwort usw.).

Syntax

  RECONNECT; 

zurück zum Seite

REINSERT

IBExpert hat die Anweisung REINSERT eingeführt. Direkt auf einen INSERT folend, können weitere INSERTs mit neuen Inhalten erfolgen.

zurück zum Seitenanfang

SET BLOBFILE

IBExpert verwendet einen Riginalmechanismus zum extrahieren von Werten von Blobfelder in ein Skript. Dies ermöglicht Ihnen die gesamte Datenbank (Metadaten und Daten) in einer Skriptdatei zu speichern udn diese Skripte mit IBExpert auszuführen. Ein kleines Beispiel illustriert die Methode zur Extrahierung von Blobwerten.

Beispielsweise hat Ihre Datenbank eine Tabelle COMMENTS:

 CREATE TABLE COMMENTS (
    COMMENT_ID INTEGER NOT NULL PRIMARY KEY,
    COMMENT_TEXT BLOB SUBTYPE TEXT);

Diese Tabelle enthält drei Datensätze:

COMMENT_IDCOMMENT_TEXT
1First comment
2NULL
3Another comment

Wenn die Option Extract BLOBs nicht aktiviert ist, erhalten Sie folgendes Skript:

 CREATE TABLE COMMENTS (
    COMMENT_ID INTEGER NOT NULL PRIMARY KEY,
    COMMENT_TEXT BLOB SUBTYPE TEXT);

 INSERT INTO COMMENTS (COMMENT_ID) VALUES (1);
 INSERT INTO COMMENTS (COMMENT_ID) VALUES (2);
 INSERT INTO COMMENTS (COMMENT_ID) VALUES (3);

... und natürlich verlieren Sie Ihre Kommentare, wenn Sie die Datenbank aus diesem Skript wiederherstellen.

Wenn die Option Extract BLOBs aktiviert ist, erzeugt IBExpert ein ganz anderes Skript:

 SET BLOBFILE 'C:\MY_SCRIPTS\RESULT.LOB';

 CREATE TABLE COMMENTS (
    COMMENT_ID INTEGER NOT NULL PRIMARY KEY,
    COMMENT_TEXT BLOB SUBTYPE TEXT);

 INSERT INTO COMMENTS (COMMENT_ID, COMMENT_TEXT) VALUES (1, h0000000_0000000D);
 INSERT INTO COMMENTS (COMMENT_ID, COMMENT_TEXT) VALUES (2, NULL);
 INSERT INTO COMMENTS (COMMENT_ID, COMMENT_TEXT) VALUES (3, h000000D_0000000F);

IBExpert erzeugt auch eine spezielle Datei mit dem Suffix .lob, in der Blobwerte gespeichert werden. In dem aktuellen Beispiel ist result.lob 28 Bytes groß und enthält den ersten commentAnother Kommentar.

SET BLOBFILE ist eine spezielle Erweiterung der Skriptsprache, die es der IBExpert Skriptausführung ermöglicht, Skripte auszuführen, die Referenzen zu Blobfelderwerten enthalten.

zurück zum Seitenanfang

SET CLIENTLIB

Hiermit wid die Clientbibliothek definiert, die bei der Ausführung eines Skripts verwendet wird.

Syntax

  SET CLIENTLIB file_name;
ArgumentDescription
file_nameClient Bibliothek Dateiname.

Beschreibung

SET CLIENTLIB definiert die Clientbibliothek, die bei der Ausführung eines Skripts verwendet wird. DIe Standard-Clientbibliothek ist gds32.dll.

Beispiel

  SET CLIENTLIB 'C:\Program Files\Firebird\Bin\fbclient.dll';

zurück zum Seitenanfang

SET LOGIN PROMPT

Implementiert in IBExpert Version 2014.06.17, dieser Befehl aktiviert oder deaktiviert die Login-Aufforderungsdialog, wenn der Benutzername und/oder Passwort innerhalb CONNECT oder CREATE DATABASE nicht angegeben wird. Der SET LOGIN PROMPT-Befehl ist nützlich, wenn Sie Trusted Authentication verwenden und keinen Login-Promptdialog benötigen. Der Standardwert ist ON.

Beispiel

 SET NAMES UTF8;
 SET LOGIN PROMPT OFF;
 CONNECT ...;
 ...

zurück zum Seitenanfang

SET PARAMFILE

Die Datei PARAM ist eine ini-Datei mit param-Werten.

Wenn Ihr Skript zum Beispiel einige parameterisierte INSERT/UPDATE/DELETE-Anweisungen enthält, können SIe Parameterwerte in einer externen Datei definieren (Params-Datei):

 param1=12-FEB-2003
 param2=John Doe
 param3=35
 ...

Wenn IBEScript eine Abrage mit Parametern findet, sucht es die Werte dieser Parameter in der festgelegten params-Datei.

zurück zum Seitenananfang

SET TRPARAMS

Der Befehl SET TRPARAMS ermöglicht Ihnen, anstelle der Standardparameter Ihre eigenen Parameter für die Skript-Transaktion festzulegen.

Syntax

     SET TRPARAMS '<params>';
     where <params> is a list of transaction parameters separated by commas or
     spaces.
          Example:
          SET TRPARAMS 'isc_tpb_concurrency, isc_tpb_nowait';

Bitte beachten Sie: Wenn die aktuelle Transaktion aktiv ist, wird SET TRPARAMS sie committen und anschließend die Transaktionsparameter ändern.

zurück zum Seitenanfang

SHELL

Dies ermöglicht die Ausführug eines Befehls des Betriebssystems.

Syntax

  SHELL os_command [NOWAIT];
ArgumentBeschreibung
os_commandEin Befehl des Betriebssystems.
NOWAITOptionales Argument. Wenn dies definiert ist, wird die Ausführung eines Skripts gleich nach der Erzeugung des Prozesses durch Ausführung des Befehls des Betriebssystems fortgeführt und es wird nicht auf dessen Abschluss gewartet.

Beschreibung

Der Operator SHELL versucht den Befehl os_command auszuführen. Wenn NOWAIT nicht festgelegt wurde, wird die weitere Ausführung eines Skripts vor Abschluss des vom Operator SHELL erzeugten Prozesses gestoppt. Ansonsten wird die Skriptausführung sofort nach dem BEginn der Ausführung des Befehls os_command fortgeführt.

Beispiel

Das folgende Skript versucht einen Ordner MyFolder in dem aktuellen Verzeichnis zu erzeugen:

  SHELL mkdir MyFolder;

Das folgende Beispiel zeigt die Verwendung des Befehls SHELL, um die Notepad.exe zu starten und die Datei :\MyTexts\Shedule.txt dort zu laden. Es ist notwendig, hier NOWAIT zu verwenden, sonst ist es nicht möglich das Skript weiter auszuführen und es ist nicht möglich die Arbeit in IBExpert weiterzuarbeiten, ohne das Notepad geschlossen zu haben.

  SHELL "notepad.exe C:\MyTexts\Shedule.txt" NOWAIT;

Das nächste Beispiel illustriert die Verwendung der SHELL-Anweisung zusammen mit OUTPUT.

  /* First create a folder C:\MyData*/
  SHELL MKDIR C:\MyData;

  /* Try to delete mydata.csv */
  />SHELL DEL C:\MyData\mydata.csv;

  /* Redirect output of SELECTs into mydata.csv */
  OUTPUT C:\MyData\mydata.csv DELIMITER ';'
                              DATEFORMAT 'MMMM-dd-yyyy'
                              TIMEFORMAT 'hh:nn:ss.zzz'
                              QUOTECHAR '"';


  SELECT * FROM MY_TABLE;

  /* Close C:\MyData\mydata.csv */
  OUTPUT;

  /* Try to open just created CSV-file with Windows Notepad */
  SHELL notepad.exe C:\MyData\mydata.csv NOWAIT;

  /* Try to open C:\MyData\mydata.csv with the application
     associated with CSV files */
  SHELL C:\MyData\mydata.csv NOWAIT;

Siehe auch:
deutschsprachig:
DB Registrierungsinfo / Log-Dateien / Skriptausführung
Extrahiere Metadaten
IBEScript
SQL Monitor
Stored Procedure
Trigger
englischsprachig:
IBEBLOCK (EXECUTE IBEBLOCK)

zurück zum Seitenanfang
<< Datenanalyse (OLAP) | IBExpert | Kopiere Datenbankobjekt >>