IBExpert Neue Features Archiv

<< Was ist neu? | IBExpert | Onlinedokumentation >>

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


IBExpert Neue Features Archiv


IBExpert 2014.06.17

Wichtige Personal Edition Änderungen

  • Die Freischaltungen für die Personal Edition sind nur noch jeweils bis zum Ende des Kalendermonats gültig.
  • Beim ersten Start der Personal Edition im neuen Monat muss man einen neuen Freischaltcode eingeben.
  • Um einen Freischaltcode zu generieren benötigt man einen gültigen IBExpert Downloadcenter Account.
  • Die Freischaltcodes sind weiterhin kostenlos.
  • Die neue Version ist auch mit Linux/Wine lauffähig.

Wenn Sie über gültige IBExpert Developer Studio Vollversionen in Ihrem IBExpert Download Center Account verfügen, können Sie eine unbegrenzte Anzahl an Personal Edition Registrierungen in Ihrem IBExpert Download Center Account aktivieren. Ansonsten können Sie maximal 4 Personal Edition Registrierungen pro Monat pro Account freischalten.

1. Skriptausführung

SET LOGIN PROMPT ON/OFF Befehl implementiert.

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 ...;
 ...

Das Problem mit dem falschen Parsing von PSQL Code mit Subroutinen wurde behoben (Firebird 3).

2. Trace and Audit

  • Support der explain_plan-Option hinzugefügt (Firebird 3).

3. Autogrant Privilegien

  • Support für Stored Funktionen implementiert (Firebird 3).
  • Support für Subroutinen implementiert (Firebird 3).

4. Rechte Manager

  • Support für Stored Funktionen implementiert (Firebird 3).
  • Support für Privilegien auf UDFs implementiert (Firebird 3).

5. Stored Funktionen Editor (Firebird 3)

  • Lazy Mode implementiert.
  • Rechte-Seite implementiert.
  • Ausführung von Stored Funktionen implementiert.

6. Metadaten extrahieren

  • Support für Stored Funktionen implementiert (Firebird 3).

7. UDF Editor

  • Support für Privilegien auf UDFs implementiert (Firebird 3).

8. Exception Editor

  • Support für Privilegien auf Exceptions implementiert (Firebird 3).

9. Datenbankstatistik

  • Support für zusätzliche Tabellendaten implementiert (Firebird 3).

10. Package Editor (Firebird 3)

  • Skript-Seite implementiert.

11. Code Editor

  • Packages erscheinen nun in der Code Insight-Liste (Firebird 3).

12. IBEBlock

  • ibec_PasswordQuery Funktion implementiert.

Syntax:

 function ibec_PasswordQuery(const ACaption, APrompt: string; var Value: string): Boolean;

Die ibec_PasswordQuery-Funktion ist ibec_InputQuery ähnlich; der einzige Unterschied ist der Asterisk ('*') anstelle des Eingabetextes.

  • ibec_ExtractMetadata

DataTimeFormat-Optionen hinzugefügt, um die benutzerdefinierte Formatierung von Werten für datetime (timestamp) zu ermöglichen. Die Verwendung ist der Option Dateformat ähnlich:

 DateTimeFormat="dd.mm.yy hh:mm:ss.zzz"


  • ibec_ExtractMetadata

Support von Stored Funktionen hinzugefügt (Firebird 3). Die Liste der zu extrahierenden Stored Funktionen sollte im Options-String angegeben werden:

 FUNCTIONS=ALL;

oder

 FUNCTIONS=FUNCTION_1,FUNCTION_2,...;

oder

 FUNCTIONS=NONE;

13. Service Control Center

Der Service Control Center wird nun automatisch mit den notwendigen Adminrechte gestartet.

14. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2014.04.07

1. IBExpert Day License

Mit IBExpert Version 2014.04.07 veröffentlicht IBExpert KG die neue IBExpert Day Edition: Die IBExpert IDE wann und wo immer Sie diese einsetzen möchten. Ideal, wenn Sie Ihren Kunden Remote-Support bieten möchten, für Datenbankreparaturen, oder, um einen kurzen Blick in eine Firebird/InterBase®-Datenbank zu werfen, wenn Sie unterwegs sind. Dieses Softwareprodukt beinhaltet die IBExpert IDE. Jede Aktivierung ist nur für einen Computer für einen Tag (00:00 bis 23.59 Uhr Ortszeit) gültig. Wenn IBExpert auf dem aktivierten Computer am selben Tag (00:00 bis 23.59 Uhr Ortszeit) mehrfach startet, wird keine neue Aktivierung verbraucht!

Preise und Information.

2. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2014.03.16 & 2014.03.22

1. Daten exportieren

In JSON exportieren-Format implementiert.

Es gibt zwei spezifische Optionen:

  • Lesbar: wenn aktiviert, JSON Daten werden lesbar formatiert.
  • BOM schreiben: wenn aktiviert, wird ein UTF-8 BOM am Anfang der Datei geschrieben.

2. Daten als SQL Skript exportieren

Die Möglichkeit, CHAR(n) CHARACTER SET OCTETS Werte in hexadezimalem Format (z.B. x'F62100CEA976') zu exportieren, wurde hinzugefügt. Die entsprechenden Optionen befinden sich auf der Optionen-Seite.

3. Skriptausführung, IBEScript

Der OUTPUT-Befehl unterstützt nun die OctetsAsHex-Option, welche die Extrahierung von CHAR(n) CHARACTER SET OCTETS-Werten in hexadezimalem Format ermöglicht.

Beispiel:

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

4. Unterstützung der CREATE/ALTER/RECREATE/DROP/COMMENT FUNCTION-Anweisungen und Versionshistorie für Stored Funktionen (Firebird 3)

5. Metadaten extrahieren

Die Option Extrahiere Werte der CHAR (n) CHARACTER SET OCTETS-Felder als Hex-Strings wurde hinzugefügt.

6. Rechtemanager

Stored Funktionen (Firebird 3) werden nun unterstützt.

7. Automatische Rechtezuweisung

Packages und Funktionen (Firebird 3) werden nun unterstützt.

8. PSQL Parser

Subroutines und Funktionen (Firebird 3) werden unterstützt.

9. SQL Editor

  • Zeigt nun, wenn möglich, den Explain-Plan (Firebird 3) an.
  • Unterstützung der Versionshistorie für Funktionen (Firebird 3).

10. Trace und Audit Dienst

  • Unterstützung der log_function_start/log_function_finish-Optionen (Firebird 3).

11. Datenframe

  • INSERT ... RETURNING ... wird nun beim Einfügen neuer Datensätze (wenn möglich) unterstützt.
  • Der Funktionen-Editor erlaubt die Erzeugung und das Editieren von Stored Funktionen bei der Arbeit mit Firebird 3 Datenbanken.

12. IBEBlock

  • SELECT ... EXPORT AS und ibec_ds_Export Funktionen unterstützen nun das export to JSON-Format.

Beispiel 1:

    select * from "Customer"
      export as json into 'D:\MyData\customer.json'
      options 'DateTimeFormat="dd-mm-yyy hh:nn:ss";
               DateFormat="dd-mm-yyyy";
               TimeFormat="hh:nn:ss";
               ExportTextBlobs; 
               Readable;
               WriteBOM';

Beispiel 2:

    ExportOptions = 'DateTimeFormat="dd-mm-yyy hh:nn:ss";
               DateFormat="dd-mm-yyyy";
               TimeFormat="hh:nn:ss";
               ExportTextBlobs; 
               Readable;
               WriteBOM';

    select * from "Customer" order by "CustNo" as dataset MyDS;
    ibec_ds_Export(MyDS, __etJSON, 'D:\MyData\customer.json', ExportOptions);
    ibec_ds_Close(MyDS);


  • ibec_ExtractMetadata unterstützt nun die OctetsAsHex-Option, welche die Extrahierung der CHAR(n) CHARACTER SET OCTETS-Werte in hexadezimalem Format ermöglicht.
  • ibec_JsonToXML-Funktion implementiert. Sie ermöglicht die Konvertierung von JSON Daten in XML. Anschließend können die ibec_msxml_xxx-Funktionen verwendet werden, um Daten zu verarbeiten.

Beispiel:

    s = ibec_LoadFromFile('d:\temp\data.json');
    s = ibec_JsonToXML(s, 'Readable');
    ibec_SaveToFile('d:\temp\data.xml', s, __stfOverwrite);

13. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2014.01.01

1. SP/Trigger Debugger

Collect Statistics (Statistiken sammeln) Modus implementiert. In diesem Modus sammelt der Debugger einige statistischen Informationen (Prepare/Execute-Zeit, betroffene Zeilen, indizierte/nicht-indiziert Reads) für jede Ausführung der SELECT/INSERT/UPDATE/DELETE/MERGE/EXECUTE-Anweisungen, und ermittelt Gesamt- und Durchschnittswerte.

2. Einfacher Packages Editor (Firebird 3.0) implementiert

Funktioniert derzeit nur im Bearbeitungsmodus (der Package sollte bereits in der Datenbank vorhanden sind).

3. Trigger Editor

  • Support für DDL Trigger hinzugefügt (Firebird 3.0).

4. Skriptausführung / IBEScript.exe

  • Packages Support (Firebird 3.0).
  • UTF8 BOM wird bei der Skriptausführung aus einer Datei nun übersprungen.

5. Datenbank Online / Datenbank Shutdown

  • Support der Online-/Shutdown-Modi. Ab Firebird 2.5.

6. Metadaten extrahieren

  • Unterstützt Packages (Firebird 3.0).
  • Unterstützt DDL Trigger (Firebird 3.0).
  • Unterstützt USAGE Privilegien für Exceptions und Generatoren (Firebird 3.0).

7. Rechtemanager

  • Unterstützt Packages (Firebird 3.0).

8. Datenbankdesigner

  • Die Möglichkeit wurde hinzugefügt, Views bei der Ausführung von Reverse-Engineering wegzulassen.

9. Trace und Audit Dienst

  • Unterstützung der Firebird 3.0 Konfig-Syntax.

10. Drag-n-Drop vom Datenbank Explorer

  • Vorlagen für die ibec_ShutdownDatabase- and ibec_OnlineDatabase-Funktionen werden nun beim Ziehen eines Datenbankknoten in einen Code Editor angeboten.

11. IBEBlock

  • ibec_GetStatementPlan und ibec_GetStatementExplainPlan Funktionen implementiert.

ibec_GetStatementPlan gibt die Standard IB/FB Plan der angegebene Anweisung zurück. ibec_GetStatementExplainPlan gibt den erweiterten Plan zurück, wenn Sie mit dem Firebird 3 Server arbeiten.

Syntax:

 function ibec_GetStatementPlan(Database : variant; 
                                           Statement : string; 
                                           RaiseError : boolean) : variant;
 function ibec_GetStatementExplainPlan(Database : variant; 
                                           Statement : string; 
                                           RaiseError : boolean) : variant;

Die Raiseerror-Parameter gibt an, wie eventuell auftretende Fehler bei der Anforderung eines Plans behandelt werden sollen. Wenn Raiseerror gleich TRUE ist und ein Fehler auftritt, geben beide Funktionen eine Fehlermeldung als Ergebnis zurück. Ansonsten wird im Falle von Fehler-Funktionen ein leerer String zurückgegeben.

Beispiel:

 execute ibeblock
 as
 begin
   db = ibec_GetDefaultConnection();
   sQuery = 'select * from rdb$fields where rdb$field_name = :field_name';
   sPlan = ibec_GetStatementPlan(db, sQuery, FALSE);
   sQuery = 'select * from rdb$relations where rdb$relation_name = ?';
   sPlan = ibec_GetStatementPlan(db, sQuery, FALSE);
 end


  • ibec_ExtractMetadata-Funktion: unterstützt nun Packages (Firebird 3.0). Sie sollen Packages im Options-String spezifizieren:


 PACKAGES=ALL;

oder

 PACKAGES=PACKAGE_1,PACKAGE_2,...;

oder

 PACKAGES=NONE;


  • ibec_SetConnectionProp-Funktion: die Möglichkeit wurde hinzugefügt, die Anfrage nach der Anzahl der betroffenen Zeilen nach der Ausführung von INSERT/UPDATE/DELETE/MERGE-Anweisungen zu deaktivieren. Dies verbessert zum Beispiel die Leistung bei der Ausführung vieler Updates/Inserts im Zyklus.

Beispiel:

 execute ibeblock
 as
 begin
   execute statement 'CREATE TABLE TEST_INSERT (ID  INTEGER)';
   commit;

   TimeStart = ibec_GetTickCount();
   for i = 1 to 10000 do
   begin
     insert into test_insert (id) values (:i);
   end;
   TimeEnd = ibec_GetTickCount();
   Time1 = TimeEnd - TimeStart;
   commit;

   execute statement 'delete from test_insert';
   commit;

   ibec_SetConnectionProp(ibec_GetDefaultConnection(), 'GETROWSAFFECTED', FALSE);
   TimeStart = ibec_GetTickCount();
   for i = 1 to 10000 do
   begin
     insert into test_insert (id) values (:i);
   end;
   TimeEnd = ibec_GetTickCount();
   Time2 = TimeEnd - TimeStart;
   commit;

   ibec_ShowMessage(Time1 || '       ' || Time2);
 end


  • ibec_OnlineDatabase/ibec_ShutdownDatabase: Unterstützung von Online-/Shutdown-Modi (Firebird 2.5 und höher).

Mögliche Modi für ibec_ShutdownDatabase: Multi, Single, Full. Der Standardwert ist Multi.

Beispiel:

 Res = ibec_ShutdownDatabase('myserver/3052:C:\Firebird\FB30.FDB',
                         'ClientLib="D:\Temp\fbclient.dll";
                          User=ADMIN; Password=masterkey;
                          Wait=10; DenyAttachment; Mode=Full');

Mögliche Modi für ibec_OnlineDatabase: Normal, Multi, Single. Der Standardwert ist Normal.

Beispiel:

 Res = ibec_OnlineDatabase('myserver/3052:C:\Firebird\FB30.FDB',
                       'ClientLib="D:\Temp\fbclient.dll";
                        User=ADMIN; Password=masterkey;
                        Mode=Single');

12. Geringfügige Fehlerbehebungen und Verbesserungen zurück zum Seitenanfang


IBExpert 2013.10.08

1. IBExpert Benchmark

Vergleichen Sie die Performance Ihres Servers mit unseren IFS Servern! Dieses einfache aber effektive Tool bietet Ihnen eine Referenz-Benchmark auf Basis unseren empfohlenen IFS Server. Unsere Server zeigen eine typische Leistung von 100% bei dem CPU und HDD Test. Wenn Ihr Server zeigt zum Beispiel 50%, war es viel langsamer. Höhere Werte zeigen eine bessere Leistung.

Wichtig: Dieser Benchmark bietet Ihnen die Möglichkeit, einen Wert auf mehreren Firebird Server Hardware- oder Software-Konfigurationen zu vergleichen. Eine Umstellung des Servers auf eine leistungsfähigere Hardware könnte die Leistung um 100% verbessern, allerdings kann eine Optimierung Ihrer Software- und Datenbank-Operationen die Leistung oft um mehr als 1000% steigern. Fragen Sie sales@ibexpert.biz nach weiterer Unterstützung, zum Beispiel unserem Remote-Support oder unseren Vor-Ort-Workshops.

2. Code Editoren Parameter-Tipp

  • Unterstützung von Server-integrierten Funktionen. Für eingebaute Funktionen zeigt IBExpert einen Tipp mit der Anzahl/Art der Parameter und einer kurzen Beschreibung der Funktion.

3. Code Formattierer

  • Unterstützung der ROWS-Klausel von SELECT-Anweisungen implementiert.

4. Trace and Audit Dienste

Die Möglichkeit wurde hinzugefügt, Trace-Daten aus dem Grid Ansicht-Modus zu exportieren.

5. IBE Versionhistorie

  • Unterstützt nun das Logging der Clientadresse (IP Adresse).

Existiert die IBE$VERSION_HISTORY-Tabelle bereits in Ihrer Datenbank, fügen Sie folgende Änderungen manuell hinzu, wenn Sie die Clientadresse loggen möchten und die RDB$GET_CONTEXT-Funktion verfügbar ist:

Neues Feld in die IBE$VERSION_HISTORY-Tabelle einfügen:

     ALTER TABLE IBE$VERSION_HISTORY ADD IBE$VH_CLIENT_ADDRESS VARCHAR(32) CHARACTER 
     SET NONE;

Zusätzliche Code-Zeile in den IBE$VERSION_HISTORY_BI Trigger einfügen:

     NEW.IBE$VH_CLIENT_ADDRESS = RDB$GET_CONTEXT('SYSTEM', 'CLIENT_ADDRESS');      

6. Support für einige Firebird 3 Features implementiert

Sie können nun Ihre Firebird 3.0 Datenbank registrieren. Die ersten stabilen Features werden bereits von IBExpert unterstützt. Weitere folgen!

  • Unterstützung der USAGE-Privileg für Generatoren und Exceptions im Rechtemanager.
  • Unterstützung des BOOLEAN-Datentyps.
  • Unterstützung von Autoincrement-Feldern, die interne Generatoren verwenden (Tabelleneditor).
  • Unterstützung von Scroll Cursors in SP/Trigger-Editoren und Debuggern.

7. IBEBlock

Folgende Funktionen wurden für die Arbeit mit FTP-Protokollen implementiert:

  • ibec_ftp_OpenSession: creates an FTP session object with specified options.

Syntax

 function ibec_ftp_OpenSession(Options : string) : variant;

Die ibec_ftp_OpenSession-Funktion erzeugt ein FTP-Session Objekt mit den spezifizierten Optionen. Es führt keine Netzwerkoperationen aus, sondern vergibt lediglich die notwendigen Ressourcen und initialisiert interne Eigenschaften. Sie sollen ibec_ftp_Connect-Funktionen verwenden, um mit dem spezifizierten Server zu verbinden.

Optionen

  • HostName: URL des FTP Servers
  • UserName: Benutzername
  • Password: Passwort
  • Port : Defaultwert der Verbindungs-Portnummer ist 25

UserName und Password können weggelassen werden, wenn der FTP Server diese nicht zwingend benötigt.

Beispiel

    FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret'); 


  • ibec_ftp_CloseSession: löscht eine FTP Sessionobjekt, die mit der ibec_ftp_OpenSession-Funktion gestartet wurde.

Syntax

 function ibec_ftp_CloseSession(FTPSession : variant) : variant;

Die ibec_ftp_CloseSession-Funktion löscht eine FTP Sessionobjekt, die mit der FTPSession Variable spezifiziert wurde und gibt immer NULL zurück. Die Funktion führt keine Netzwerkoperationen aus; Sie sollen die ibec_ftp_Disconnect-Funktionen im Falle einer aktiven Verbindung zuerst ausführen,

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      ...
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_Connect: erstellt eine Verbindung zum FTP Server.

Syntax

 function ibec_ftp_Connect(FTPSession : variant) : boolean;

ibec_ftp_Connect erstellt eine Verbindung zum FTP Server mit den Optionen, die mit der ibec_ftp_OpenSession-Funktion definiert wurden. Wenn erfolgreich gibt es TRUE zurück. Ansonsten gibt es FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end; 


  • ibec_ftp_Disconnect: trennt die Verbindung zum FTP Server.

Syntax

 function ibec_ftp_Disconnect(FTPSession : variant) : boolean;

Die The ibec_ftp_Disconnect-Funktion trennt die Verbindung vom FTP Server und gibt bei erfolgreicher Trennung TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        ...
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;  


  • ibec_ftp_ChangeDir: wechselt das Arbeitsverzeichnis auf dem FTP Server.

Syntax

    function ibec_ftp_ChangeDir(FTPSession : variant; DirName : string) : boolean;

Die ibec_ftp_ChangeDir-Funktion wechselt das Arbeitsverzeichnis auf dem FTP Server. Die DirName-Variable bestimmt das neue Arbeitsverzeichnis auf dem FTP Server. Wenn erfolgreich gibt die Funktion TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        ibec_ftp_ChangeDir(FTPSession, '\uploads');
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end; 


  • ibec_ftp_MakeDir: erzeugt ein Verzeichnis auf dem FTP Server.

Syntax

 function ibec_ftp_MakeDir(FTPSession : variant; DirName : string) : boolean;

ibec_ftp_MakeDir erzeugt ein Verzeichnis auf dem FTP Server. Die DirName-Variable bestimmt den Namen des neuen Verzeichnisses. Wenn erfolgreich, gibt die Funktion TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
          ibec_ftp_MakeDir(FTPSession, 'DataFiles');
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_RemoveDir: löscht ein spezifiziertes Verzeichnis auf dem FTP Server.

Syntax

 function ibec_ftp_RemoveDir(FTPSession : variant; DirName : string) : boolean;

ibec_ftp_RemoveDir löscht ein spezifiziertes Verzeichnis auf dem FTP Server. Die DirName-Variable bestimmt den Namen des zu löschenden Verzeichnisses. Wenn erfolgreich gibt die Funktion TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        ibec_ftp_RemoveDir(FTPSession, 'DataFiles');
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_Rename: benennt Dateien/Verzeichnisse auf dem FTP Server um.

Syntax

 function ibec_ftp_Rename(FTPSession : variant; OldName : string; NewName : string) : boolean;

ibec_ftp_Rename benennt Dateien/Verzeichnisse auf dem FTP Server um, die mit der OldName-Variable spezifiziert wurden. NewName bestimmt den neuen Datei- oder Verzeichnisnamen. Wenn erfolgreich gibt die Funktion TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
          ibec_ftp_Rename(FTPSession, 'db.fdb', 'old_db.fdb');
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_DeleteFile: löscht eine Datei auf dem FTP Server.

Syntax

    function ibec_ftp_DeleteFile(FTPSession : variant; FileName : string) : boolean;

ibec_ftp_DeleteFile löscht die Datei, die durch die FileName-Variable spezifiziert wurde. Wenn erfolgreich gibt die Funktion TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
          ibec_ftp_DeleteFile(FTPSession, 'db.fdb');
        ...
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_FileSize: gibt die Dateigröße in Bytes zurück.

Syntax

 function ibec_ftp_FileSize(FTPSession : variant; FileName : string) : variant;

ibec_ftp_FileSize gibt die Größe der durch die FileName-Variable spezifizierten Datei in Bytes zurück. Diese Funktion gibt NULL zurück, sollte die Datei nicht existieren oder ein anderer Fehler vorliegen.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          FileSize = ibec_ftp_FileSize(FTPSession, 'db.fdb'); 
          if (FileSize is not null) then
            ibec_ShowMessage('File size is ' || FileSize || ' bytes');
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end; 


  • ibec_ftp_FileDate: gibt die Modifizierung-Timestamp einer Datei zurück.

Syntax

 function ibec_ftp_FileDate(FTPSession : variant; FileName : string) : variant;

ibec_ftp_FileDate gibt die Modifizierung-Timestamp einer durch die FileName-Variable spezifizierten Datei zurück. Diese Funktion gibt NULL zurück, sollte die Datei nicht existieren oder ein anderer Fehler vorliegen.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          FileTS = ibec_ftp_FileDate(FTPSession, 'db.fdb'); 
          if (FileTS is not null) then
            ibec_ShowMessage('File date/time ' || FileTS);
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end; 


  • ibec_ftp_GetFile: kopiert eine Datei vom FTP Server auf den lokalen Computer.

Syntax

 function ibec_ftp_GetFile(FTPSession : variant; FTPFileName : string; LocalFileName : string) : boolean;

ibec_ftp_GetFile kopiert eine durch die FTPFileName-Varaible spezifizierte Datei vom FTP Server auf den lokalen Computer. LocalFileName bestimmt den Namen für Verwendung auf dem lokalen Computer. Sollte LocalFileName als NULL oder als leeren String angegeben werden, wird der Inhalt der Remotedatei in interne Buffer des FTP Sessionobjektes gespeichert, und kann später durch Verwendung der ibec_ftp_GetProperty-Funktion zurück geholt werden. Wenn erfolgreich gibt ibec_ftp_GetFile TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel 1

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          ibec_ftp_GetFile(FTPSession, 'db.fdb', 'd:\mydata\db.fdb'); 
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;  

Beispiel 2

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          if (ibec_ftp_GetFile(FTPSession, 'db.fdb', NULL)) then
          begin
            FileData = ibec_ftp_GetProperty(FTPSession, 'DATA');
            ibec_SaveToFile(FileData, 'd:\mydata\db.fdb', __stfOverWrite);
            ibec_ftp_SetProperty(FTPSession, 'DATA', ''); -- Just to clear the data buffer
          end; 
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_PutFile: kopiert eine lokale Datei auf den FTP Server.

Syntax

 function ibec_ftp_PutFile(FTPSession : variant; LocalFileName : string; FTPFileName : string) : boolean;

ibec_ftp_PutFile kopiert eine durch die LocalFileName-Variable spezifizierte Datei vom lokalen Computer auf den FTP Server. Sollte LocalFileName als NULL oder als leeren String angegeben werden, wird der Inhalt des internen Datenbuffers auf den FTP Server kopiert. FTPFileName spezifiziert den Namen der kopierten Datei auf dem FTP Server. Wenn erfolgreich gibt ibec_ftp_PutFile TRUE zurück. Ansonsten gibt sie FALSE zurück.

Beispiel 1

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          ibec_ftp_PutFile(FTPSession, 'd:\mydata\db.fdb', 'db.fdb'); 
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;  

Beispiel 2

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          FileData = ibec_LoadFromFile('d:\mydata\db.fdb');
          ibec_ftp_SetProperty(FTPSession, 'DATA', FileData);  
          ibec_ftp_PutFile(FTPSession, NULL, 'db.fdb');
          ibec_ftp_SetProperty(FTPSession, 'DATA', ''); -- Just to clear the data buffer
        end;
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;


  • ibec_ftp_LastResponse: gibt die letzte Antwort des FTP Servers zurück.

Syntax

 function ibec_ftp_LastResponse(FTPSession : variant) : string;

Die ibec_ftp_LastResponse-Funktion gibt einen String mit der letzten Antwort des FTP Servers zurück.

Beispiel

 FTPSession = ibec_ftp_OpenSession('HostName=myftpserver.com; UserName=me; 
                    Password=mysecret');
    try 
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (not ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
          ibec_ShowMessage(ibec_ftp_LastResponse(FTPSession));
        ibec_ftp_Disconnect(FTPSession);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end;  


  • ibec_ftp_GetProperty: holt den Wert der angegebenen Eigenschaft.

Syntax

 function ibec_ftp_GetProperty(FTPSession : variant; PropertyName : string) : variant;

ibec_ftp_GetProperty gibt den Wert der angegebenen Eigenschaft des FTP Serverobjektes zurück. PropertyName ist der Name der zu lesenden Eigenschaft. Ist der Eigenschaftname unbekannt gibt die Funktion NULL zurück.

Folgende Eigenschaften können gelesen werden:

  • Host (oder HostName): der URL des FTP Servernamen
  • User (oder UserName): der Username
  • Pass (oder Password): das Passwort
  • Port: die Portnummer (als String)
  • Data: der Inhalt des internen Datenbuffers
  • SessionLog: die Session-Logdaten
  • LastResponse: die letzte Antwort des FTP Servers (das Gleiche wie ibec_ftp_LastResponse)


  • ibec_ftp_SetProperty: setzt den Wert der angegebenen Eigenschaft.

Syntax

 function ibec_ftp_SetProperty(FTPSession : variant; PropertyName : string; Value : variant) : variant;

ibec_ftp_SetProperty den Wert der angegebenen Eigenschaft des FTP Serverobjektes. PropertyName ist der Name der zu lesenden Eigenschaft. Wenn erfolgreich gibt ibec_ftp_PutFile TRUE zurück. Ansonsten gibt es FALSE zurück.

Folgende Eigenschaften stehen zur Verfügung:

  • Host (oder HostName): setzt den URL des FTP Servers, bedeutungslos nachdem die Verbindung hergestellt ist.
  • User (oder UserName): setzt den Usernamen, bedeutungslos nachdem die Verbindung hergestellt ist.
  • Pass (oder Password): setzt das Passwort, bedeutungslos nachdem die Verbindung hergestellt ist.
  • Port: setzt die Portnummer, bedeutungslos nachdem die Verbindung hergestellt ist.
  • Data: setzt den Wert des internen Datenbuffers.
  • SessionLog: setzt den Wert der internen Sessionlog-Variable. Darf verwendet werden, um den Log zu löschen, falls notwendig.

Beispiel

 FTPSession = ibec_ftp_OpenSession('');
    try 
      ibec_ftp_SetProperty(FTPSession, 'host', 'myftpserver.com');
      ibec_ftp_SetProperty(FTPSession, 'user', 'me');
      ibec_ftp_SetProperty(FTPSession, 'pass', 'mysecret');
      ibec_ftp_SetProperty(FTPSession, 'port', 25);
      if (ibec_ftp_Connect(FTPSession)) then
      begin
        if (ibec_ftp_ChangeDir(FTPSession, '\uploads')) then
        begin
          FileData = ibec_LoadFromFile('d:\mydata\db.fdb');
          ibec_ftp_SetProperty(FTPSession, 'DATA', FileData);  
          ibec_ftp_PutFile(FTPSession, NULL, 'db.fdb');
          ibec_ftp_SetProperty(FTPSession, 'DATA', ''); -- Just to clear the data buffer
        end;
        ibec_ftp_Disconnect(FTPSession);
        SessionLog = ibec_ftp_GetProperty(FTPSession, 'SessionLog');
        ibec_SaveToFile('D:\Temp\ftplog.txt', SessionLog, __stfOverwrite);
      end;
    finally
      ibec_ftp_CloseSession(FTPSession); 
    end; 

8. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2013.06.26

1. SQL Editor

  • Die Möglichkeit wurde hinzugefügt, alle Abfragen des aktuellen Abfragesets gleichzeitig zu löschen.

2. IBEBlock

ibec_FormatDateTime Funktion wurde implementiert.

Syntax

 function ibec_FormatDateTime(Format: string; DateTime : variant): string;

ibec_FormatDateTime formatiert den in DateTime angegebenen Timestamp-, Datum- oder Zeitwert mit dem Format, das in Format spezifiziert wird.

Unterstützung der OPEN/FETCH/CLOSE Operatoren für SQL Cursors wurde implementiert.

3. Code Formatter

Formatierungsregeln wurden für JOIN ... ON- und MERGE ... ON-Ausdrücke hinzugefügt.

4. Export als INSERT

  • Blobwerte als Hex-Strings exportieren wurde implementiert. Ist diese Option ON, werden Blobwerte direkt in die VALUES-Klausel der INSERT-Anweisung als Hex-Strings geschrieben, wie folgt:
    ... VALUES (..., X'0A66756E6374696F6E2024242873297B72', ...)

Diese Darstellung ist in Firebird 2.5 unterstützt. Leider ist die Länge von DML/DDL-Anweisungen in Firebird/InterBase® auf 64 Kilobytes beschränkt, so dass es mit dieser Methode sehr einfach ist, Anweisungen mit einer Länge > 64 Kb zu bekommen, die dann nicht vom Server ausgeführt werden können.

5. Database Inside

  • In dieser IBExpert Version stellen wir ein neues Feature vor: Database Inside. Es ist in der IBExpert Vollversion im Nutzliches-Menü zu finden.
  • Database Inside liest die Datenbankdatei direkt, ohne einen Server. Diese ermöglicht die Extrahierung der Daten/Metadaten von beschädigten Datenbanken, auch wenn es mit einer normalen Datenbankverbindung nicht möglich ist.
  • Database Inside bearbeitet Dateien im Read-Only Modus, so dass die Dateien unverändert bleiben.
  • Die Alle Seiten-Seite zeigt eine Liste der Datenbankseiten in natürlicher Reihenfolge an. Die hier angezeigten Seitentypen können auf der Optionen-Seite spezifiziert werden. Bitte merken Sie, dass bei großen Datenbanken, die Anzeige des Indexbaums, des Index Roots und der Blob Datenseiten deaktiviert werden soll, um Speicherbbenutzung zu optimieren.
    • Verdächtige Seiten (Seiten vermerkt mit einer Zuordnung als unbekannter Seitentyp und/oder falsche Prüfsumme) werden in rot hervorgehoben.
    • Mit einem Doppelklick oder Enter wird die Datenseite in einem neuen Fenster geöffnet.
  • Die Statistiken-Seite enthält wertvolle Statistiken über die Seitenverteilung innerhalb der Datenbankdatei. Verdächtige Daten (Anzahl der zugeordneten Seiten mit nicht definiertem/unbekanntem Seitentyp und/oder falscher Prüfsumme) werden in rot hervorgehoben.
  • Die Header-Seite enthält die Datenbank Header-Daten.
  • Die PIPs (Pointer Inventory Pages) Seite enthält eine Liste aller PIPs in der Datenbankdatei sowie Information über die Seitenzuordnung.
  • Die TIPs (Transaction Inventory Pages) Seite enthält eine Liste aller TIPs in der Datenbank.
  • Die Pointer pages Seite enthält eine Liste aller Pointer-Seiten für jede Beziehung in der Datenbank.
  • Auf der Optionen-Seite können Sie die Seitentypen auswählen, die auf der Alle Seiten-Seite erscheinen soll.
  • Die Daten/Metadaten extrahieren-Seite ermöglicht die Daten- und/oder Metadatenextrahierung direkt aus der Datenbankdatei. Metadaten/Daten können in einen Satz SQL Skriptdateien oder in eine neue Datenbank (in diesem Fall ist eine funktionierende Serverinstanz notwendig) extrahiert werden.
    • Sie können alle Datentabellen im Kontextmenü der Datentabellenliste simultan auswählen/deselektieren.
  • Derzeitige Einschränkungen:
    • lediglich Einzeldatei-Datenbanken werden zur Zeit unterstützt.
    • InterBase® Datenbanken mit Objektnamenlängen > 31 Zeichen sind noch nicht unterstützt.
    • die Database Inside Feature wurde mit Firebird 1.5-2.5 Datenbanken, die mit Firebird 32-Bit für Windows erzeugt wurden, getestet.

6. Einige geringfügige Fehlerbehebungen und kleine Verbesserungen.

zurück zum Seitenanfang


IBExpert 2013.02.15

1. Datenbankobjekt kopieren/Tabelle kopieren

  • Das Problem mit dem falschen Kopieren von COMPUTED BY-Feldern wurde behoben.

2. Datenbankstatistik

  • Nun können Sie Statistiken nur für spezifizierte Tabellen aufrufen.
Um Statistiken nur für bestimmte Tabellen aufzurufen, ziehen Sie die gewünschten Tabellen einfach aus dem DB Explorer in das Datenbankstatistiken-Fenster hinein.
  • Eine andere Möglichkeit ist durch Verwendung des DB Explorer Kontextmenüs, Statistiken für ausgewählte Tabellen aufrufen.

3. Code Editoren

  • Nun ist es möglich, ausgewählten Text zu formatieren, durch Verwendung des Editorenkontextmenüs. Beachten Sie hierbei, dass IBExpert unterstützt das Formatieren lediglich von PSQL Blocks und separaten DML Anweisungen.

4. SQL Editor

  • Für eine schnelle Auswahl wurden Snapshot RO (snapshot read-only) und Read Committed RO (read committed read-only) Transaktions-Isolierstufen hinzugefügt.

5. Datenbank Login Form

  • Das Das Auslösen Datenbank-/Transaktionstrigger verhindern-Checkbox wurde hinzugefügt.

Dies ist die isc_dpb_no_db_triggers-Option in Zusätliche Verbindungsparameter gleich.

6. Datenbank Backup/Restore

  • Die Das Auslösen Datenbank-/Transaktionstrigger verhindern-Option wurde hinzugefügt.

7. IBEBlock

  • ibec_BackupDatabase/ibec_RestoreDatabase: Die NoDBTriggers-Option wurde implementiert. Diese verhindert das Auslösen von Datenbank-/Transaktionstriggern während eines Backup/Restores.
  • Verbessertes Handling der Int64 (bigint) Werte, und einige kritischen Fehler korrigiert.

8. Einige geringfügige Fehlerbehebungen und kleine Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.12.16

1. Das Problem mit der Verlangsamung während des Scrollens/der Textauswahl in Code Editoren und des Scrollens durch Daten in Datengittern wurde behoben.

2. Code Formattierer

  • Nun mit Support des erweiterten Syntax der [FOR] EXECUTE STATEMENT-Anweisung (ON EXTERNAL ...).

3. Autogrant Feature

  • Für SELECT-Anweisungen mit einer WITH LOCK-Klausel erteilt IBExpert nun ein UPDATE-Privileg auf der betroffenen Tabelle.

4. Abhängigkeiten

  • Nun ist es möglich alle/ausgewählte Prozeduren/Trigger im Abhängigkeitsbaum direkt vom Kontextmenü neu zu komplieren.

5. Einige geringfügige Fehlerbehebungen und kleine Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.11.15

1. SQL Assistent

Die Beschreibung-Seite wurde hinzugefügt, um die in der RDB$DATABASE.RDB$DESCRIPTION-Tabelle befindliche Datenbankbeschreibung anzuzeigen und zu editieren.

2. HTML Dokumentation

Die Datenbankbeschreibung erscheint in der Dokumentation, wenn die Option, Beschreibungen aufnehmen ..., aktiviert ist.

3. Code Formatierer

Das Problem mit der falschen Formatierung der WITH-Klausel innerhalb INSERT- und MERGE-Anweisungen wurde behoben.

4. Datenbank Designer

[Strg] + DblClick auf eine Tabelle oder einen View öffnet den Tabelle-/Vieweditor für die entsprechende Tabelle/den entsprechenden View in der aktiven Datenbank.

Nach dem Löschen von Tabellen, die vom Datenbank Explorer gezogen worden, werden eventuelle Referenzen (Foreign Keys) analysiert und in das Datenbankdiagramm nach Bestätigung eingefügt.

5. Index Editor, Abhängigkeiten-Ansicht, Tabelleneditor / Indizes-Seite

Nun mit Unterstützung von Index-Abhängigkeiten.

6. Skriptausführung

Nun werden Vor/Nach Metadatenänderungen-Events unterstützt. 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.

Optionen-Seite: Eventblocks auslösen-Option hinzugefügt, die nur die aktuelle Instanz der Skriptausführung betrifft.

7. Optionen / Programmeinstellungen / SQL Skript

Eventblocks auslösen-Option hinzugefügt.

8. Daten importieren

Die fehlende Funktionalität für Datenimport von Textdateien mit festen Spaltenbreiten wurde implementiert.

9. Datenbank Restore

Jetzt analysiert und holt IBExpert Fehlermeldungen von dem Restoreprotokoll auch wenn die Verbose-Option deaktiviert ist. Sollten Fehler entdeckt werden, werden sie am Ende des Protokolls hinzugefügt und der Benutzer wird über eventuelle Probleme gewarnt.

10. Login Fenster

Passwort anzeigen-Checkbox hinzugefügt.

11. IBEBlock

  • FixedWidths-Optionen für die ibec_ImportData-Funktion hinzugefügt.

Beispiel:

    execute ibeblock
    as
    begin
      ...
      sMappings = 'Field1=1,26;' +
                  'Field2=27,26;' +
                  'Field3=53,45';

      Res = ibec_ImportData(DB, 'MYTABLE', __impText,
                            'D:\Import\country_fixed_colnames.txt', '',
                            'RowFirst=1; RowLast=255555;
                            TrimStrings;
                            FixedWidths;', :sMappings, cbb);
      ...
    end

Vermerk: der Mappings-Parameter ist Pflicht, wenn Sie Daten aus einer Textdatei mit festen Spaltenbreiten importieren. Der Syntax jedes Elements im Mappings-String lautet:

 <source_field_name>=<start_position>,<length>

IBExpert produziert automatisch einen IBEBlock für Datenimport direkt im Daten importieren-Fenster (auf der Block-Seite), so können Sie ihn immer dort finden.

  • Die Leistung der ibec_StringReplace-Funktion wurde erheblich verbessert; nun ist sie etwa 10 mal schneller.
  • ibec_PosEx-Funktion implementiert.

Syntax:

    function ibec_PosEx(Substr : string; S : string; StartPos : integer) : integer;

Der einzige Unterschied zwischen den ibec_Pos- und ibec_PosEx-Funktionen ist der StartPos-Parameter, welche die Anfangsposition für Scannen definiert.

12. Einige geringfügige Fehlerbehebungen und kleine Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.09.02

1. Datenbank Explorer

Hervorhebung des Datenbankordners, der die aktiven Datenbank enthält, wurde implementiert. Die Hervorhebungsfarbe kann unter Optionen / Umgebungsoptionen / DB Explorer eingestellt werden (Datenbankordner mit der aktiven DB).

2. C/Pascal/Basic/JS scripts

Class TdxPageControl not found Fehler behoben.

3. Objekt kopieren, Tabelle kopieren

Zusätzliche Optionen hinzugefügt, die das Kopieren in bestehende Tabellen und das Ändern Generatorenwerte ermöglichen.

4. Einige geringfügige Fehlerbehebungen und Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.08.19

1. Trace und Audit Dienst

  • Unterstützung für die log_sweep-Option implementiert (Firebird 2.5.2).
  • Quelle/Details-Fenster implementiert. Im Grid-Modus können Sie den Quellcode und die Details jedes Trace-Rekords ansehen.

2. Code Formattierer

  • CRLF nach UPDATE- und Vor Tabellennamen einrücken-Optionen für die UPDATE-Anweisung hinzugefügt.

3. Event Blocks

  • In dieser Version führen wir das neue Event Blocks-Feature ein, das Ihnen ermöglicht, bestimmte Events innerhalb IBExpert zu bearbeiten.
  • Folgende Events stehen aktuell zur Bearbeitung zur Verfügung:
    • Nach dem Starten von IBExpert-Event
    • Vorm Beenden von IBExpert-Event
    • Vor der Datenbankverbindung-Event
    • Nach der Datenbankverbindung-Event
    • Vor Verbindungslösung-Event
    • Nach Verbindungslösung-Event
    • Vor Metadatenänderung-Event
    • Nach Metadatenänderung-Event
  • Event Blocks werden in der IBExpert Benutzerdatenbank gespeichert und stehen als normale IBEBlocks auf der Blocks-Seite im DB Explorer zur Verfügung.
  • Es gibt zwei Möglichkeiten einen Event Block zu erzeugen:
    • Erzeugen Sie einen normalen IBEBlock und assoziieren Sie es mit dem Event-Seite im Blockeditor.
    • Verwenden Sie den Kontextmenüpunkt, Event/Block erzeugen/bearbeiten im Blocks-Baum. IBExpert assoziiert einen neuen Block automatisch mit dem ausgewählten Event.
  • Es gibt eine Schablone/ein Beispiel eines Event Blocks auf der Event-Seite im Block Editor. Sie listet den aktuellen Block Input-Parameter und kann auch etwas Code enthalten, der mögliche Aktionen anzeigt, die Sie vielleicht bei der Eventbearbeitung ausführen möchten.
  • Event Blocks funktionieren sofort nach dem Speichern - bitte berücksichtigen!
  • Die Debug beim Abfeuern-Option ermöglicht das Starten des Block Debuggers, wenn ein assoziierter Event abfeuert. Diese Option ist sofort nach dem Anschalten wirksam, gilt allerdings nur für die aktuelle IBExpertsitzung.
  • Möchten Sie bestimmte Events innerhalb IBExpert ausführen, sagen Sie uns was Sie genau bearbeiten möchten und welche Ergebnisse Sie erwarten.

4. Standardblocks und Sprachdateien

  • In dieser Version haben wir alle Default Blocks und die meisten Sprachdateien aktualisiert.

7. Einige geringfügige Fehlerbehebungen und Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.05.19

Bugfix Release

  • Einige kleinen Bugs wurde entfernt.


IBExpert 2012.05.10

1. Code Formattierer

  • Das Formatieren der IN AUTONOMOUS TRANSACTION-Anweisung wurde implementiert.
  • Es gibt eine neue Option für SELECT- und UPDATE-Anweisungen, Zeilenvorschub vor Spaltenliste Trennzeichen, die folgende Formatierungen erlaubt:
   SELECT Customer
        , Contact_First
        , Contact_Last
        , Address_Line1
          ...

   UPDATE Help_Items
     SET Item_Parent_Id = :Varpitem_Parent_Id
       , Item_Title = :Varpitem_Title
       , Item_Order = :Varpitem_Order
       , Item_Data = :Varpitem_Data
         ...

2. Daten importieren

  • Zu lange Stringwerte kürzen-Option hinzugefügt (Allgemeine Optionen-Register). Ist diese Option aktiviert, kürzt IBExpert im Hintergrund Stringwerte, wenn Sie zu lang für die Zielfeld-Länge sind.

3. Code Editor / Code Insight / Code Parameter Hinweis

  • Für Prozeduren enthält der Parameterhinweis eine Beschreibung der aktuellen Input-Parameter. Ist keine Beschreibung für den aktuellen Parameter spezifiziert - eine Beschreibung der Prozedur selbst wird angezeigt, sofern vorhanden.
  • Für User-Defined Funktionen zeigt der Parameter Hinweise die UDF Beschreibung, sofern vorhanden.
  • Für den VALUES-Teil der INSERT-Anweisungen zeigt der Parameter Hinweis eine Beschreibung des aktuellen Feldes oder Tabellenbeschreibung an.
  • Mit den folgenden Optionen unter Optionen / Editoreneinstellungen / Code Insight können Sie das Verhalten der Parameter Hinweise anpassen:
    • Zeige aktuelle Parameter-/Feldbeschreibung an.
    • Zeige Parent-Objektbeschreibung an, wenn keine Beschreibung des aktuellen Parameter/Feldes vorhanden ist.
    • Maximale Anzahl der anzuzeigenden Beschreibungszeilen.

4. Code Editoren

  • Schnellkommentar Feature implementiert. Mit [Strg] + [/] (Strg + Slash) können Sie schnell die aktuelle Codezeile bzw. den ausgewählten Block im Einzelzeilen-Kommentarstil (-- am Zeilenanfang) kommentieren/unkommentieren.

5. Metadaten durchsuchen

  • Das Problem mit dem Suchen von nicht-ASCII-Text bei Verwendung eines UTF8 Verbindungstzeichensatzes wurde behoben.

6. IBEBlock

  • ibec_ImportData: Unterstützung der TrimStrings-Option hinzugefügt.
  • ibec_Decode Funktion implementiert. Die ibec_Decode Funktion bietet die Funktionalität einer IF...THEN...ELSE-Anweisung.

Syntax:

  function ibec_Decode(Expression : variant; Search : variant; Result : variant; 
                       [Search : variant; Result : variant]... [; Default : variant]) : variant;
  • Expression ist der Wert zu vergleichen.
  • Search ist der Wert, dass mit Expression verglichen wird.
  • Result ist der zurückgegebene Wert, wenn Expression gleich Search.
  • Default ist optional. Sollte keine Übereinstimmungen gefunden werden, gibt ibec_Decode den Default-Wert zurück. Wird Default ausgelassen, gibt die ibec_Decode Funktion NULL zurück (wenn keine Übereinstimmungen gefunden werden).

Beispiel:

  CityName = ibec_Decode(CityCode, 1, 'Berlin', 2, 'Rome', 3, 'Bangkok', 'Unbekannt'); 
  • Folgende Funktionen wurden für das Lesen/Schreiben von/zu einen Dateistream implementiert:
Funktion ibec_fs_ReadByte(FileHandle : variant) : integer;
Funktion ibec_fs_WriteByte(FileHandle : variant; Value : integer) : integer;
Funktion ibec_fs_ReadWord(FileHandle : variant) : integer;
Funktion ibec_fs_WriteWord(FileHandle : variant; Value : integer) : integer;
Funktion ibec_fs_ReadDoubleWord(FileHandle : variant) : integer;
Funktion ibec_fs_WriteDoubleWord(FileHandle : variant; Value : integer) : integer;
Funktion ibec_fs_ReadInt32(FileHandle : variant) : integer;
Funktion ibec_fs_WriteInt32(FileHandle : variant; Value : integer) : integer;
  • ibec_fs_ReadByte Funktion liest ein Byte vom Dateistream und gibt einen unsignierten Integerwert (0..255) zurück.
  • ibec_fs_ReadWord Funktion liest zwei Bytes vom Dateistream und gibt einen unsignierten Integerwert (0..65535) zurück.
  • ibec_fs_ReadDoubleWord Funktion liest für Bytes vom Dateistream und gibt einen unsignierten Integerwert (0..4294967295) zurück.
  • ibec_fs_ReadInt32 Funktion liest für Bytes vom Dateistream und gibt einen signierten Integerwert (–2147483648..2147483647) zurück.
  • ibec_fs_WriteByte Funktion schreibt ein Byte zum Dateistream als einen 8-Bit unsignierten Integer.
  • ibec_fs_WriteWord Funktionen schreibt zwei Bytes zum Dateistream als einen 16-Bit unsignierten Integer.
  • ibec_fs_WriteDoubleWord Funktionen schreibt vier Bytes zum Dateistream als einen 32-Bit unsignierten Integer.
  • ibec_fs_WriteInt32 Funktionen schreibt für Bytes zum Dateistream als einen 32-Bit signierten Integer.
Alle ibec_fs_WriteXXX Funktionen geben die Anzahl zum Dateistream geschriebener Bytes zurück.
  • Unten ist ein Beispiel eines IBEBlocks, der eine Datenbankdatei scannt und interessante Information über die Verteilung der Datenbankseiten zurückholt. Sie können diesen Block auch im Ordner, \Blocks\Samples\DB Pages Statistics, finden.
   execute ibeblock (DBFileName varchar(1000) comment 'Path to database file')
   returns (
     PageType varchar(100) comment 'Page Type',
     PageCount integer comment 'Page Count',
     PagePercent numeric(15,2) comment 'Page %',
     PageMb numeric(15,2) comment 'Size, Mb')
   as
   begin
     TimeStart = ibec_GetTickCount();
     iPageIndex = 0;
     aPages = ibec_Array(0,0,0,0,0,0,0,0,0,0,0);
     aPageTypes = ibec_Array('Unused', 'Database Header', 'Page Inventory Page', 'Transaction Inventory Page', 'Pointer Page',
                             'Data Page', 'Index Root Page', 'Index Page', 'Blob Data Page', 'Generator Page', 'Write Ahead Log');

     aBitMasks = ibec_Array(1, 2, 4, 8, 16, 32, 64, 128);

     fs = ibec_fs_OpenFile(DBFileName, __fmOpenRead + __fmShareDenyNone);
     if (fs is null) then
       Exit;
     try
       ibec_fs_Seek(fs, 16, __soFromBeginning);

       iPageSize = ibec_fs_ReadWord(fs);
       iPageSizeSub20 = iPageSize - 20;

       ibec_fs_Seek(fs, iPageSize + 20, __soFromBeginning);
       sPIP = ibec_fs_ReadString(fs, iPageSizeSub20);
       NextPIPIndex = iPageSizeSub20 * 8 - 1;

       ibec_fs_Seek(fs, 0, __soFromBeginning);
       while (not ibec_fs_Eof(fs)) do
       begin
         if (ibec_mod(iPageIndex, 100) = 0) then
         begin
           TimeSpent = ibec_Div(ibec_GetTickCount() - TimeStart, 1000);
           iSpeed = ibec_IIF((iPageIndex = 0) or (TimeSpent = 0), 0, ((iPageSize / 1024) * iPageIndex) / 1024 / TimeSpent);
           ibec_Progress(iPageIndex || '  :  ' || TimeSpent || '  :  ' || iSpeed || ' Mb/s');
         end;
         iVal = ibec_fs_ReadByte(fs);

         iPIPBytePos = ibec_mod(ibec_div(iPageIndex, 8), iPageSizeSub20) + 1;
         iPIPBitMaskIdx = ibec_mod(iPageIndex, 8);
         if (iPIPBitMaskIdx = 0) then
           iPIPByte = ibec_Ord(ibec_Copy(sPIP, iPIPBytePos, 1));
         iPIPBitMask = aBitMasks[iPIPBitMaskIdx];
         IsUsed = (ibec_and(iPIPBitMask, iPIPByte) = 0);

         if (IsUsed) then
           aPages[iVal] = aPages[iVal] + 1;
         else
           aPages[0] = aPages[0] + 1;

         if (iPageIndex = NextPIPIndex) then
         begin
           ibec_fs_Seek(fs, 19, __soFromCurrent);
           sPIP = ibec_fs_ReadString(fs, iPageSizeSub20);
           NextPIPIndex = NextPIPIndex + iPageSizeSub20 * 8;
         end;

         iPageIndex = iPageIndex + 1;
         ibec_fs_Seek(fs, iPageIndex * iPageSize, __soFromBeginning);
       end;

       PageType = 'Total Pages';
       PageCount = iPageIndex;
       PagePercent = 100;
       PageMb = (PageCount * (iPageSize / 1024)) / 1024;
       suspend;

       foreach (aPages as PageCnt key Idx skip nulls) do
       begin
         PageType = aPageTypes[Idx];
         PageCount = PageCnt;
         PagePercent = (PageCnt/iPageIndex) * 100;
         PageMb = (PageCount * (iPageSize / 1024)) / 1024;
         suspend;
       end
     finally
       ibec_fs_CloseFile(fs);
     end
   end 

7. Viele geringfügige Fehlerbehebungen und Verbesserungen.

zurück zum Seitenanfang


IBExpert 2012.02.21

1. Daten importieren

  • Das Problem mit dem Import boolescher Werte von DBF-Dateien wurde behoben.
  • Nun ist es möglich beim Datemimport in eine neue Tabelle, boolesche (boolean) Werte in smallint Werte, zu konvertieren. Wenn boolesche Spalten im Quelldatensatz vorhanden sind, erscheint auf der Spalten/Mappings-Seite die Checkboxoption, Boolesche Werte in Integer konvertieren.
  • Einfache Spaltennamen erzeugen implementiert. Es befindet sich in der Spalten/Mappings-Liste Kontextmenü und erzeugt für die Zieltabelle einfache Spaltennamen, wie COL1, COL2, ..., COLN.

2. Daten in Skript exportieren

  • Das Problem mit dem Schreiben von Blobwerten in eine bestehende lob-Datei in Editiermodus wurde behoben.
  • Nun gibt es die Option, DELETE FROM <table> Anweisung hinzufügen.

3. Abhängigkeitsrahmen

  • Feldnamen werden nun beim Filtern des Abhängigkeits-Baumes berücksichtigt.

4. Datenansicht / Klassische Formularansicht

  • Das Problem mit der Anzeige/dem Editieren von UTF8 Daten in Memo-Feldern wurde behoben.

5. Code Formatierung

  • Formatieren der IN Funktion implementiert.

6. Benutzer Manager

  • Aktive Benutzer werden nun, wenn möglich, aus der MON$ATTACHMENTS geholt.

7. Trace and Audit, Gitteransicht

  • Nun ist es möglich, der Blob Anzeige/Editor in der Gitteransicht zu verwenden, um Daten der Prozessname, Statement Text, Statement Plan, Trigger Event, und der Prozedurname-Spalten anzusehen.

8. Prozedur- und Triggereditoren, Parameter-Grid

  • Das Problem mit dem Editieren von Parameterbeschreibungen in UTF8 wurde behoben.

9. To-do Liste

  • Nun kann ein To-Do-Eintrag dupliziert werden. Verwenden Sie hierfür den Kontextmenü.

10. Skriptausführung

  • Das Problem der Positionierung zum Fehler, wenn nur einen ausgewählten Teil des Skripts ausgeführt wird, wurde behoben.

11. Metadaten extrahieren

  • COLLATE immer berücksichigen-Option implementiert.

12. Metadaten durchsuchen

  • Nicht in Kommentaren suchen-Option implementiert. Diese verhindert die Suche nach einem spezifizierten String in den Kommentaren.

13. IBEBlock

  • ibec_SaveToFile und ibec_fs_xxx Funktionen unterstützen nun Dateien über 2 GB.
  • Folgende Funktionen unterstützen nun Unicode (UTF8) Dateinamen:
      ibec_fs_OpenFile
      ibec_SaveToFile
      ibec_LoadFromFile
      ibec_FileSize
      ibec_FileDateTime
      ibec_SetFileDateTime
      ibec_FileAttr
      ibec_SetFileAttr
      ibec_CopyFile
      ibec_RenameFile
      ibec_MoveFile
      ibec_GetFiles
      ibec_ForceDirectories
      ibec_md5File

Sie können immer noch ANSI-Namen verwenden; die notwendigen Prüfungen und die Konversion erfolgt automatisch.

  • Die ibec_GetFiles Funktion kann nun eine Datei/Ordner-Liste in UTF8 zurückgeben. Spezifizieren Sie einfach die __gfUTF8 -Option:
 ibec_GetFiles(Dirs, 'D:\Pictures\', '*.*', __gfSort + __gfDirectories + __gfFullName + __gfUTF8);

Mask und Path Parameter können auch in UTF8 spezifiziert werden. Die notwendigen Prüfungen und die Konversion erfolgt automatisch.

  • ibec_md5 und ibec_md5File Funktionen implementiert.

Syntax:

 function ibec_md5 (Value : string) : string;
 function ibec_md5File (FileName : string) : string;

Funktionen geben md5 Summe für den angegebenen Wert/die angegebene Datei zurück.

  • ibec_ExtractMetadata: IncludeCollate Option hinzugefügt.

14. Viele geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.12.11

1. IBExpert Named User Lizenz

Einige Änderungen waren für die neue IBExpert Named User Lizenz? erforderlich.

2. Registrierte VAR und Site Lizenzen

Wichtig: Wenn Sie eine gültige VAR oder Site Lizenz besitzen, bitte kontaktieren Sie register@ibexpert.biz für eine neue Lizenzdatei.

3. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.12.01

1. IBExpert Speicherung

Seit dieser Version verwendet IBExpert nun die Firebird Datenbank und Firebird Embedded 2.5 als Default, um alle IBExpert Daten (registrierte Datenbanken, Abfragehistorien usw.) zu speichern. Bisher speicherte IBExpert diese Daten in der IBExpert.stg-Datei, und der Benutzer konnte diese manuell in Optionen / Programmeinstellungen / User Database ändern. Sie können dennoch mit der IBExpert.stg-Datei arbeiten (zum Beispiel, wenn Sie die User Database manuell deaktivieren), aber Sie erhalten beim jeden Start von IBExpert eine Warnung, und wir werden diese Methode in der Zukunft nicht weiter unterstützen.

2. Die Page Control Komponente wurde ersetzt.

Sie können das Aussehen unter Optionen / Darstellungsoptionen / Page Controls ändern. Wenn Sie mit IBExpert in einer Terminalsession arbeiten, ist es eine gute Idee, aus Geschwindigkeitsgründen die Option Terminstil auszuwählen.

3. Daten importieren:

  • Nun können Daten in Updatable Views importiert werden.

4. Blob Anzeige

  • Blobgroße Information wurde hinzugefügt.

5. Optionen / Editoreinstellungen / Tabelleneditor

  • Die ''Domänenbeschreibungen als die Beschreibung für domänenbasierte Felder verwenden""-Option wurde hinzugefügt. Als Standard, wenn Sie ein auf einem Domänen basiertes Feld erzeugen, kopiert IBExpert die Domänenbeschreibung in die Beschreibung des neuen Feldes. Wenn dieses Verhalten nicht erwünscht ist, dann deaktivieren Sie einfach diese Option.

6. Code Formatierung

  • Das Problem mit der falschen Formatierung des FULL JOIN- Klausels wurde behoben.

7. Prozedureneditor:

Information über die Prozeduren Codelänge wurde hinzugefügt. Sie können diese Option ünter Optionen / Objekteditoreneinstellungen / Prozedureneditor mit der Prozeduren DDL-Größe immer anzeigen-Option deaktivieren.

8. Metadaten extrahieren:

  • Das gelegentlich auftretende Problem mit Blobextrahierung, wenn sie in getrennte lob-Dateien extrahiert werden, wurde behoben.

9. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.09.05

1. Daten exportieren

  • Das Problem mit dem Exportieren großer Integer-Werte in Textformate wurde behoben.
  • Das Problem mit den Exportieren Integer-Felder ohne Wert (NULL) in CSV wurde behoben. Nun werden sie als leerer String statt 0 (Null) exportiert.

2. Rechtemanager

  • Nun sind Tabellen/Views mit UPDATE/REFERENCE Privilegien nur auf bestimmten Spalten eindeutig erkennbar. Ein grauer Ball bedeutet, dass mindestens eine Spalte mit einem erteilten Privileg existiert. Ein grauer Ball in der Hand bedeutet, dass es mindestens eine Spalte mit einem erteilten Privileg mit Grant-Autorität gibt.

3. Leistungsanalyse

  • Information über Marks, Expunges (Löschungen), Backouts (Zurücksetzungen) und Purges (Bereinigungen) hinzugefügt.

4. SP/Block Debugger, Variable-Form editieren

  • Die Möglichkeit, Blobwerte aus einer Datei zu laden wurde hinzugefügt.
  • Das Problem mit der Anzeige und dem Editieren BIGINT-Werte wurde behoben.

5. Daten in einen SQL Skript exportieren

  • Keine Zeilenvorschübe und zusätzliche Leerplätze zwischen Statement-Teile einfügen wurde als Option hinzugefügt. Diese ermöglicht zusätzliche Formatierung von INSERT und UPDATE OR INSERT Anweisungen.

6. Datenbankstrukturvergleich

  • Der Datenbankstrukturvergleich verwendet jetzt zusätzliche Verbindungsparameter, vorausgesetzt sie sind in der Registrierungsinfo der zu vergleichenden Datenbank spezifiziert.

7. Trigger Editor

  • Nun ist es möglich, den Trigger Tabelleneditor direkt aus dem Trigger-Menü zu öffnen.

8. Datenbank Monitoring

  • Das Rückspeichern eines aktiven Datensatzes nach dem Aktualisieren wurde implementiert. IBExpert nutzt das allererste Feld im Datensatz, um sich an die aktuelle Stelle zu erinnern und es nach erneutem Öffnen wieder herzustellen.

9. IBEBlock

  • Unterstützung der WHERE-Klausel in der ibec_CompareTables Funktion nun implementiert. Es kann verwendet werden, die zu vergleichenden Datensätze einzuschränken.

Beispiel:

 ibec_CompareTables(MasterDB, SubscriberDB, 'MYTABLE', 'MYTABLE', 
 'E:\CompRes.sql',
    'OmitUpdates; Where="WHERE RECORD_DATE > 
 '12-NOV-2005'"', cbb);

Das "WHERE" kann auch weggelassen werden:

 Where="RECORD_DATE > '12-NOV-2005'" 

IBExpert fügt es automatisch hinzu.

Sie können auch wahlweise WhereClause als Name verwenden:

 WhereClause="RECORD_DATE > '12-NOV-2005'"
  • Neue __gfDirectories Option für ibec_GetFiles. Verwenden Sie diese Option, um eine Liste der Subordner statt Dateien zu erhalten:
 DirCount =  ibec_getfiles(DirList, 'D:\MyData\', '*.*', __gfSort + __gfFullName + __gfDirectories);
  • ibec_FileAttr Funktion implementiert.

Syntax:

 function ibec_FileAttr(FileName : string) : variant;

ibec_FileAttr gibt die Attribute der Datei als Integerwert, der ein Bit-String darstellt, zurück. Im Falle eines Fehlers (z.B. wenn die spezifizierte Datei nicht existiert) gibt ibec_FileAttr NULL zurück.

Sehen Sie das Beispiel für die ibec_SetFileAttr Funktion.

  • ibec_SetFileAttr Funktion implementiert.

Syntax:

 function ibec_SetFileAttr(FileName : string; Attr : integer) : integer;

ibec_SetFileAttr setzt die Dateiattribute der mit FileName-spezifizierten Datei zu dem im Attr festgelegten Wert.

Der Wert von Attr wird durch das Kombinieren der entsprechenden Dateiattribut-Konstante zusammengestellt:

 Konstant     Wert      Beschreibung
 -----------------------------------------------
 __faReadOnly $00000001 Read-only files
 __faHidden   $00000002 Hidden files
 __faSysFile  $00000004 System files
 __faVolumeID $00000008 Volume ID files
 __faDirectory$00000010 Directory files
 __faArchive  $00000020 Archive files
 __faAnyFile  $0000003F Any file

ibec_SetFileAttr gibt Null zurück, wenn die Funktion erfolgreich ist. Sonst ist der Wiedergabewert eine Windows Fehlermeldung.

Beispiel:

 FileAttr = ibec_FileAttr(TargetFileName);
 if (ibec_and(OldFileAttr, __faReadOnly) = __faReadOnly) then
   ibec_SetFileAttr(TargetFileName, ibec_xor(OldFileAttr, 
 __faReadOnly));
  • ibec_RenameFile Funktion implementiert.

Syntax:

 function ibec_RenameFile(OldName : string; NewName : string) : boolean;

ibec_RenameFile versucht den in OldFile spezifizierten Namen zu NewFile zu ändern.

Wenn erfolgreich, gibt RenameFile True zurück. Wenn die Datei nicht umbenannt werden kann (zum Beispiel, wenn eine Datei mit dem in NewName spezifizierten Namen bereits existiert) wird False zurückgegeben.

  • ibec_not, ibec_and, ibec_or, ibec_xor Funktionen implementiert.

Syntax:

 function ibec_not(Operand : integer) : integer;
 function ibec_and(Operand1, Operand2 : integer) : integer;
 function ibec_or(Operand1, Operand2 : integer) : integer;
 function ibec_xor(Operand1, Operand2 : integer) : integer;

Die Funktionen oben manipulieren Integer Operanden bitweise. Zum Beispiel, wenn der Wert in X (binär) 001101 ist, und der in Y gespeicherte Wert 100001 ist, die Anweisung

 Z = ibec_or(X, Y);

weist der Wert 101101 zu Z.

10. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.06.13

1. Databankdesigner

  • Vollständige UTF8-Unterstützung implementiert. Interne Darstellung von Stringwerten wurde von ANSI auf UTF8 geändert (Ausnahme: Exceptiontexte, die Wie sie sind gespeichert werden, gemäß ihren Firebird/InterBase® Zeichsätze - OCTETS).
  • Die Konvertierung bestehender Modelldateien wird automatisch beim ersten Laden in den Datenbankdesigner ausgeführt.

2. Datenexport

  • Die Möglichkeit, Daten in die Zwischenablage in HTML-Format (CF_HTML) zu exportieren, wurde hinzugefügt.
  • Probleme mit dem Export von bigint-Werte in XLS-Dateien wurden gelöst.

3. Datenimport

  • Die Option Strings von ANSI zu UTF8 konvertieren wurde hinzugefügt.
Diese Option ist sichtbar und wird automatisch auf AN gesetzt, wenn die Zieldatenbank Daten in UTF8 benötigt werden (d.h. die Verbindungszeichensatz ist UTF8 oder UNICODE_FSS).

4. Datenbankobjekt kopieren / Tabelle kopieren

  • Jetzt besteht die Möglichkeit, Fremdschlüssel (vorausgesetzt die referenzierten Tabellen vorhanden sind) zu kopieren.

5. SQL Editor, Abfragegenerator

  • Nun ist es möglich, Abfragen/Abfragensets in XML-Dateien zu speichen und laden. Sie können mehrere Abfragen/Abfragensets gleichzeitig speichern. Verwenden Sie den Abfragegenerator Kontextmenü, um Abfragen/Abfragesets zu speichern/laden.
  • Es ist auch möglich, mehrere Abfragensets gleichzeitig zu löschen.

6. Datenbankobjekt-Form wählen [Ctrl + Shift + F12]

  • Beschreibung-Spalte wurde hinzugefügt.
  • Die Option, nach Objektbeschreibungen zu filtern, wurde hinzugefügt: geben Sie einfach '~' (tilde) am Anfang des Filterstrings ein.

7. Datenbank Explorer

  • Die Möglichkeit besteht jetzt, Objekte nach ihrer Beschreibung zu filtern: geben Sie einfach '~' (tilde) am Anfang des Filterstrings ein.

8. Exceptions-Editor

  • UTF8-Unterstützung für Beschreibungen und die DDL-Seite wurde implementiert.

9. Optionen / Programmeinstellungen / Bestätigungen

  • Schließen aller Fenster bestätigen-Option hinzufügt.

10. Systemdienste / Databank Monitoring

  • Beim Aktualisieren Transaktion committen-Option hinzugefügt.
    Wenn diese Option AUS ist (Default), führt IBExpert die überwachte Abfrage in der selben Transaktion aus, wenn ein Benutzer den Aktualisiere-Button druckt oder ein automatisches Aktualisieren durchgeführt wird.
    Wenn diese Option AN ist, wird die aktuelle Transaktion committet und eine neue wird sofort gestartet.

11. Tabellendatenvergleich

  • Ist die Zieldatenbank ODS Version gleich oder größer als 11.1, werden Stringwerte mit dem OCTETS-Zeichensatz im Ergebnisskript als Hexdarstellung angezeigt (z.B. x'7D81AE05CB').
  • Das Problem mit gelegentlich korrupte Skriptdateien nach dem Vergleich mehrerer Tabellen mit verschiedenen Blobs wurde behoben.

12. Skriptausführung, IBEScript

  • Jetzt wird die IBECurrentScriptPath Umgebungsvariable unterstützt.
    Diese Variable 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';

13. IBEBlock

  • ConvertToUTF8-Option implementiert für ibec_ds_Export und SELECT ... AS EXPORT, wenn Daten in HTML-Format exportiert werden.
  • AnsiToUTF8-Option implementiert für ibec_ImportData. Wenn diese Option spezifiziert wird, werden Stringwerte zu UTF8 konvertiert, bevor sie in eine Datenbank eingefügt werden.

14. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.03.29

1. SQL Editor

  • Die Option wurde hinzugefügt, SQL Editor Abfragen unter allen registrierten Datenbanken zu teilen - Allgemeine Abfragen. IBExpert stellt diese Abfragen von allen registrierten Datenbanken zur Verfügung.
  • Der Finde Abfrage-Register ermöglicht die Suche nach Abfragen in Historie und in Gruppen von SQL Editor Abfragen von allen registrierten Datenbanken. Es ist auch möglich, eine Suche in IBEBlocks und Firebird Blocks in der IBExpert Benutzerdatenbank auszuführen.
  • Beide Funktionalitäten stehen nur zur Verfügung, wenn die IBExpert Benutzerdatenbank (Optionen / Programmeinstellungen / Benutzerdatenbank) aktiviert ist.

2. Tabellendatenvergleich

  • Der gelegentlich auftretende Fehler, stream write error, wurde behoben.

3. Restore Datenbank

  • Die Option, eine Datenbank gleich nach dem Restore zu registrieren, wurde hinzugefügt. (Datenbank nach dem Restore registrieren-Checkbox Option unten links; nur sichtbar, wenn Wiederherstellung in neue Datenbank selektiert wurde.)

4. Tabelleneditor / Skript

  • Decode Domäne Checkbox hinzugefügt.

5. Code Editoren / Code Ergänzung

  • Die Option wurde hinzugefügt, eine Liste aller einen spezifizierten String enthaltenden Objektnamen anzuzeigen, statt nur diejenige, die mit jenem String anfangen. Fügen Sie einfach das Dollarzeichen am Anfang des Objektnamens ein. Zum Beispiel, $tmp + [Strg + Leertaste] listet alle Datenbankobjekte (SQL Schlüsselwörter usw.), die tmp als Teil des Objektnamens beinhalten.
Alternativ können Sie zwei Sternchen verwenden: *tmp* + [Ctrl + Space].

6. To-do Liste

  • UTF8 Support wurde implementiert.

7. Datenbank Explorer

  • Das Sichern und die Wiederaufladung des Datenbank Explorer Status (geöffnete Ordner, aktive Nodes) zwischen IBExpert Arbeitssitzungen wurde implementiert.

8. Programmeinstellungen / Bestätigungen

  • Die Option wurde hinzugefügt, das Verhalten beim Schliessen einer aktiven Transaktion zu bestimmen. Als Standardeinstellung fragt IBExpert beim Schliessen jeder aktiven Transaktion jedes Mal nach, wie Sie vorgehen möchten. Nun können Sie das Verhalten durch Auswahl von Commit oder Rollback als Standardvorgehen bestimmen.

9. SP/Trigger/Block Debugger

  • Verbesserter VAR-Werte Editor.
  • Unterstützt UTF8.

10. IBEBlock

  • Die ibec_iif und ibec_Coalesce Funktionen wurden verbessert: Die Auswertung von Input-Ausdrücken wird angehalten, so bald das Ergebnis des Gesamtausdrucks deutlich wird, in einer links nach rechts Reihenfolge der Auswertung.
  • ibec_GetDiskFreeSpace Funktion implementiert. Diese Funktion holt Information über den auf einem spezifizierten Diskvolum verfügbaren Platz.

Syntax:

 function ibec_GetDiskFreeSpace(DirectoryName : variant) : variant; 

DirectoryName ist ein Ordner auf dem Disk. Ist dieser Paramater NULL oder einen leeren String, verwendet diese Funktion das Hauptverzeichnis des aktuellen Disks. ibec_GetDiskFreeSpace gibt die Gesamtanzahl der freien Bytes auf einem Disk zurück, die dem User, der mit dem rufenden Thread assoziiert ist, zur Verfügung stehen.

Beispiel:

 execute ibeblock 
 as 
   begin 
     FreeSpace = ibec_GetDiskFreeSpace('C:\'); 
     ibec_ShowMessage('Total free space: ' || :FreeSpace || ' bytes'); 
   end; 
  • ibec_GetServerLog Funktion implementiert. Diese Funktion holt ein Firebird/InterBase® Server Protokoll mittels des Services API (wenn verfügbar) und speichert es in eine spezifizerte Datei (oder Variable).

Syntax

 function ibec_GetServerLog(ConnectParams : string; FileName : variant) : variant; 

Wenn FileName als NULL oder einen leeren String spezifizert wird, gibt die ibec_GetServerLog Funktion das Serverprotokoll zurück. Sonst gibt es NULL zurück.

Beispiel

 execute ibeblock 
 as 
   begin 
     res = ibec_GetServerLog('ServerName=localHOST/3070; User=SYSDBA; Password=masterke; 
                              ClientLib="C:\Program Files\Firebird25\bin\fbclient.dll"', 
                              'W:\srvlog.txt'); 
   end 

11. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2011.01.12

1. Services / Trace und Audit:

  • Gitteransicht implementiert. Nun können Trace Logdateien im Tabellenformat durchsucht werden.
  • Tracedaten können jetzt von einer Datei geladen und verfolgt werden.
  • Kontextmenü für die Trace Session Register hinzugefügt.

2. Code-Editoren:

  • Die Leistung beim Suchen und Ersetzen ist bei der Arbeit mit sehr langen Texten erheblich verbessert worden.

3. Datenbank Explorer / Daten kopieren / Prozedur kopieren:

  • Unterstützung für TYPE OF COLUMN, NOT NULL und Defaultwerte hinzugefügt (Firebird 2.5).

4. Daten exportieren:

  • Export in eine XML Tabelle implementiert.
  • Behebung einiger Probleme bezüglich der falschen Verschlüsselung des Dokuments beim Export in MS Excel Dateien.

5. SQL Editor:

  • Unterstützung der Tastaturkürzel [Ctrl + C], [Ctrl + X], [Ctrl + V] für den Abfrage Manager Baum.

6. Rechtemanager:

  • Wenn ein aktiver SP/View/Trigger Editor auf dem Bildschirm geöffnet ist, wird das entsprechende Objekt automatisch nach dem Starten des Rechtemanagers selektiert.

7. Datengitter / Kontextmenü / Spalten neu ordnen:

  • Die Möglichkeit wurde hinzugefügt, die Sichtbarkeit der Spalten zu bestimmen.

8. Daten importieren:

  • Quell- und Zielspalten können über ihre Namen automatisch gelinkt werden.

9. Benutzermanager:

  • Die Möglichkeit wurde hinzugefügt, eine Rolle bei der Verbindung mit dem Service Manager zu spezifizieren.

10. Objekte mit Drag 'n' Drop in den Code-Editor ziehen:

  • Folgende Auswahl wurden hinzugefügt:
 DECLARE VARIABLE ... TYPE OF COLUMN
 DECLARE VARIABLE ... TYPE OF <domain>
 DECLARE VARIABLE ... <domain>
 INSERT INTO ... SELECT

11. IBEBlock:

  • ibec_Coalesce implementiert.

Syntax:

 function ibec_Coalesce(Val1 : variant; Val2 : variant; [Val2 : variant; ...]) ; variant;

Die ibec_Coalesce Funktion ist den Firebird COALESCE Funktionen ähnlich. Sie nimmt zwei odere mehr Argumente und gibt den Wert des ersten nicht-NULL Arguments zurück. Wenn alle Argumente NULL sind, wird NULL zurückgegeben.

  • SELECT ... EXPORT AS unterstützt jetzt den Export in eine XML Tabelle.

Beispiel:

 execute ibeblock
 as
 begin
   select * from rdb$relation_fields
   order by rdb$relation_name, rdb$field_position
   export as xmlspreadsheet into 'D:\rdb$relation_fields.xml'
   options 'ConvertToUTF8;
            DateTimeFormat="dd-mm-yyy hh:nn:ss";
            DateFormat="dd-mm-yyyy";
            TimeFormat="hh:nn:ss";
            CurrencyFormat="$0.00";
            IntegerFormat="0";
            FloatFormat="0.0000";
            ExportTextBlobs';

    ibec_ShellExecute('open', 'D:\rdb$relation_fields.xml', , , 0);
 end
  • Jetzt unterstützt ibec_ds_Export Datensatzexport in eine XML Tabelle.

Beispiel:

 execute ibeblock
 as
 begin
    ExportOptions = 'ConvertToUTF8;
                     DateTimeFormat="dd-mm-yyy hh:nn:ss";
                     DateFormat="dd-mm-yyyy";
                     TimeFormat="hh:nn:ss";
                     CurrencyFormat="$0.00";
                     IntegerFormat="0";
                     FloatFormat="0.0000";
                     ExportTextBlobs';

    try
      select * from rdb$relation_fields
      order by rdb$relation_name, rdb$field_position
      as dataset dsFields;

      ibec_ds_Export(dsFields, __etXMLSpreadSheet, 'D:\rdb$relation_fields.xml', ExportOptions);

      ibec_ShellExecute('open', 'D:\rdb$relation_fields.xml', , , 0);
    finally
      if (dsFields is not null) then
        ibec_ds_Close(dsFields);
    end;
 end
  • ibec_RestoreDatabase unterstützt die FIX_FSS_DATA und FIX_FSS_METADATA Optionen, die den entsprechenden gbak Keys gleich sind.

Beispiel:

 res = ibec_RestoreDatabase('D:\NEWBLOCKDEMO.FBK',
                            'localhost:D:\NEWBLOCKDEMO.FB2',
                            'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
                             password=masterkey; user=SYSDBA; OneAtATime; PageSize=8192;
                             fix_fss_data=WIN1251; fix_fss_metadata=WIN1251', null);

12. Datenbankstrukturvergleich:

  • Behebung der Probleme mit dem falschen Ergebnisskript beim Vergleich von temporären und dauerhaften Tabellen mit dem gleichen Namen.

13. Skript Editor:

  • Jetzt können Fehlermeldungen in die Zwischenablage kopiert werden.

14. Geringfügige Fehlerbehebungen und Verbesserungen.

zurück zum Seitenanfang


IBExpert 2011.01.12

1. Services / Trace und Audit:

  • Gitteransicht implementiert. Nun können Trace Logdateien im Tabellenformat durchsucht werden.
  • Tracedaten können jetzt von einer Datei geladen und verfolgt werden.
  • Kontextmenü für die Trace Session Register hinzugefügt.

2. Code-Editoren:

  • Die Leistung beim Suchen und Ersetzen ist bei der Arbeit mit sehr langen Texten erheblich verbessert worden.

3. Datenbank Explorer / Daten kopieren / Prozedur kopieren:

  • Unterstützung für TYPE OF COLUMN, NOT NULL und Defaultwerte hinzugefügt (Firebird 2.5).

4. Daten exportieren:

  • Export in eine XML Tabelle implementiert.
  • Behebung einiger Probleme bezüglich der falschen Verschlüsselung des Dokuments beim Export in MS Excel Dateien.

5. SQL Editor:

  • Unterstützung der Tastaturkürzel [Ctrl + C], [Ctrl + X], [Ctrl + V] für den Abfrage Manager Baum.

6. Rechtemanager:

  • Wenn ein aktiver SP/View/Trigger Editor auf dem Bildschirm geöffnet ist, wird das entsprechende Objekt automatisch nach dem Starten des Rechtemanagers selektiert.

7. Datengitter / Kontextmenü / Spalten neu ordnen:

  • Die Möglichkeit wurde hinzugefügt, die Sichtbarkeit der Spalten zu bestimmen.

8. Daten importieren:

  • Quell- und Zielspalten können über ihre Namen automatisch gelinkt werden.

9. Benutzermanager:

  • Die Möglichkeit wurde hinzugefügt, eine Rolle bei der Verbindung mit dem Service Manager zu spezifizieren.

10. Objekte mit Drag 'n' Drop in den Code-Editor ziehen:

  • Folgende Auswahl wurden hinzugefügt:
 DECLARE VARIABLE ... TYPE OF COLUMN
 DECLARE VARIABLE ... TYPE OF <domain>
 DECLARE VARIABLE ... <domain>
 INSERT INTO ... SELECT

11. IBEBlock:

  • ibec_Coalesce implementiert.

Syntax:

 function ibec_Coalesce(Val1 : variant; Val2 : variant; [Val2 : variant; ...]) ; variant;

Die ibec_Coalesce Funktion ist den Firebird COALESCE Funktionen ähnlich. Sie nimmt zwei odere mehr Argumente und gibt den Wert des ersten nicht-NULL Arguments zurück. Wenn alle Argumente NULL sind, wird NULL zurückgegeben.

  • SELECT ... EXPORT AS unterstützt jetzt den Export in eine XML Tabelle.

Beispiel:

 execute ibeblock
 as
 begin
   select * from rdb$relation_fields
   order by rdb$relation_name, rdb$field_position
   export as xmlspreadsheet into 'D:\rdb$relation_fields.xml'
   options 'ConvertToUTF8;
            DateTimeFormat="dd-mm-yyy hh:nn:ss";
            DateFormat="dd-mm-yyyy";
            TimeFormat="hh:nn:ss";
            CurrencyFormat="$0.00";
            IntegerFormat="0";
            FloatFormat="0.0000";
            ExportTextBlobs';

    ibec_ShellExecute('open', 'D:\rdb$relation_fields.xml', , , 0);
 end
  • Jetzt unterstützt ibec_ds_Export Datensatzexport in eine XML Tabelle.

Beispiel:

 execute ibeblock
 as
 begin
    ExportOptions = 'ConvertToUTF8;
                     DateTimeFormat="dd-mm-yyy hh:nn:ss";
                     DateFormat="dd-mm-yyyy";
                     TimeFormat="hh:nn:ss";
                     CurrencyFormat="$0.00";
                     IntegerFormat="0";
                     FloatFormat="0.0000";
                     ExportTextBlobs';

    try
      select * from rdb$relation_fields
      order by rdb$relation_name, rdb$field_position
      as dataset dsFields;

      ibec_ds_Export(dsFields, __etXMLSpreadSheet, 'D:\rdb$relation_fields.xml', ExportOptions);

      ibec_ShellExecute('open', 'D:\rdb$relation_fields.xml', , , 0);
    finally
      if (dsFields is not null) then
        ibec_ds_Close(dsFields);
    end;
 end
  • ibec_RestoreDatabase unterstützt die FIX_FSS_DATA und FIX_FSS_METADATA Optionen, die den entsprechenden gbak Keys gleich sind.

Beispiel:

 res = ibec_RestoreDatabase('D:\NEWBLOCKDEMO.FBK',
                            'localhost:D:\NEWBLOCKDEMO.FB2',
                            'ClientLib=C:\Program Files\Firebird\Bin\fbclient.dll;
                             password=masterkey; user=SYSDBA; OneAtATime; PageSize=8192;
                             fix_fss_data=WIN1251; fix_fss_metadata=WIN1251', null);

12. Datenbankstrukturvergleich:

  • Behebung der Probleme mit dem falschen Ergebnisskript beim Vergleich von temporären und dauerhaften Tabellen mit dem gleichen Namen.

13. Skript Editor:

  • Jetzt können Fehlermeldungen in die Zwischenablage kopiert werden.

14. Geringfügige Fehlerbehebungen und Verbesserungen.

zurück zum Seitenanfang


IBExpert 2010.10.08

1. Systemdienste / Trace und Audit:

  • Nun werden Include/Exclude-Filter für den Dienste-Teil unterstützt.

2. Tabelle/View/Trigger/Prozedur-Editoren:

  • Jetzt können Tabellen, Views, Trigger und Prozeduren direkt im Objekteditor gelöscht werden. Um ein Objekt zu löschen, verwenden Sie den Objekteditor Hauptmenü (üblicherweise links in der Objekteditorensymbolleiste zu finden).

3. Datenbankstrukturvergleich:

  • IBEBlock-Seite hinzugefügt. Diese beinhaltet einen Block für den Datenbankvergleich. Dieser Block wird automatisch unter Verwendung der benutzerspezifizierten Parameter und Optionen generiert.

4. SQL Editor:

  • Direkter Zugang zu den Codeformatierungs-Optionen wurde hinzugefügt.

5. Skriptausführung:

  • Die Optionen-Seite wurde hinzugefügt, mit den Möglichkeiten Skript beim Fehler abbrechen und beim Abbruch zurückrollen für die aktuellen Skriptausführungsinstanz zu wählen.

6. Exportiere Daten:

  • Nun ist es möglich, Textwerte beim Dateienexport in XML-Dateien durch Aktivierung der Encode Text in UTF8-Option in UTF8 zu konvertieren. Diese Option darf nur beim Export von ANSI-Daten angewendet werden.

7. Importiere Daten :

  • Strings von OEM in ANSI konvertieren-Option hinzugefügt.
  • IBEBlock-Seite mit automatisch generierten IBEBlocks für den Datenimport hinzugefügt.

8. Datengitter:

  • Nun ist es möglich, Unicodedaten direkt im Gitter zu bearbeiten.

9. Optionen / Programeinstellungen / SQL Editor:

  • Einige Optionen wurde hinzugefügt, um das Verhalten des SQL Editor Abfragemanager beim Starten einer zweiten, einer dritten usw. Instanz des SQL Editors zu steuern.

10. IBEBlock:

  • ibec_MoveFile Funktion implementiert.

Die ibec_MoveFile Funktion benennt eine bestehende Datei oder einen bestehenden Pfad (einschließlich aller Unterordner) um.

Syntax:

 function ibec_MoveFile(ExistingFileName, NewFileName : string) : boolean;

Die ibec_MoveFile Funktion wird entweder eine Datei oder einen Ordner (einschließlich aller Unterordner) umbenennen, entweder im selben Ordner oder über mehrere Ordner. Die ibec_MoveFile Funktion wird nicht beim Ordnerwechsel funktionieren, wenn der Zielordner sich auf einem anderen Datenträger befindet.

Bei erfolgreicher Ausführung ist der Rückgabewert nonzero. Bei misslungener Ausführung ist der Rückgabewert zero.

  • ibec_url_DownloadToFile und ibec_url_DownloadToVar Funktionen implementiert.

Beide Funktionen downloaden den Inhalt einer spezifizierten URL.

Syntax:

 function ibec_url_DownloadToFile(URL : string; FileName : string; Options : variant) : boolean;

 function ibec_url_DownloadToVar(URL : string; var V : variant; Options : variant) : boolean;

Der Options Parameter wird noch nicht benutzt (für die Zukunft reserviert).

Beide Funktionen versuchen die Daten einer spezifizierten HTTP oder FTP URL zu downloaden. Wenn erfolgreich, erhält man den Rückgabewert TRUE. Wenn nicht erfolgreich, erhält man den Rückgabewert FALSE.

Die ibec_url_DownloadToFile Funktion speichert heruntergeladene Daten in einer durch den FileName Parameter spezifizierten Datei.

Die ibec_url_DownloadToVar Funktion speichert heruntergeladene Daten in einem durch die V Parameter spezifizierte lokale Variable.

Beispiel:

    Res = ibec_url_DownloadToFile('http://www.ibexpert.com/download/setup_trial.exe',
                                  'd:\downloads\ibexpert_trial.exe', '');
    if (Res) then
      ibec_ShowMessage('Downloaded successfully');
    ...
    MyVar = null;
    Res = ibec_DownloadToVar('http://www.ibexpert.com/download/setup_trial.exe',
                             MyVar, '');
    if (Res) then
      ibec_SaveToFile('d:\downloads\ibexpert_trial.exe', MyVar, 0);
  • ibec_mime_Encode, ibec_mime_EncodeNoCRLF und ibec_mime_Decode Funktionen implementiert. Die ibec_mime_Encode/ibec_mime_EncodeNoCRLF Funktionen verschlüsseln einen String mit MIME Base64. Die ibec_mime_Decode Funktion entschlüsselt Base64-verschlüsselte Daten.

Syntax:

 function ibec_mime_Encode(Str : string) : string;
 function ibec_mime_EncodeNoCRLF(Str : string) : string;
 function ibec_mime_Decode(Str : string) : string;

Der einzige Unterschied zwischen ibec_mime_Encode und ibec_mime_EncodeNoCRLF ist, dass die erste Funktion Zeilenumbrüche (CRLF) während der Mime-Verschlüssung nach RFC 2045 einfügt.

Beispiel:

 ...
 s = 'My data';
 sBase64 = ibec_mime_Encode(s);
 ...
 s = ibec_mime_Decode(sBase64);
 ...
  • Folgende Funktionen wurden für das Lesen von Daten in XML-Dateien implementiert.
      ibec_msxml_Create
      ibec_msxml_Free
      ibec_msxml_Save
      ibec_msxml_Load
      ibec_msxml_LoadXML
      ibec_msxml_SelectNodes
      ibec_msxml_SelectSingleNode
      ibec_msxml_GetText
      ibec_msxml_GetTextUTF8
      ibec_msxml_GetAttribute

Folgendes Beispiel zeigt die Verwendung der ibec_msxml_xxx Funktionen für die Verarbeitung von XML-Daten. Detaillierte Beschreibungen dieser Funktionen folgen demnächst.

    execute ibeblock
    as
    begin
      UserDB = ibec_GetUserDBConnection();
      if (UserDB is null) then
      begin
        ibec_ShowMessage('You have to use the IBExpert User Database.' + ibec_CRLF() +
                         '(Options | Environment Options | User Database)');
        Exit;
      end;

      ibec_UseConnection(UserDB);


      xmlfile = 'http://www.ibexpert.com/rus/ibedemoscripts.xml';
      --xmlfile = 'w:\ibedemoscripts.xml';
      xml = ibec_msxml_Create();
      try
        ibec_msxml_Load(xml, xmlfile);
        nodes = ibec_msxml_SelectNodes(xml, 'demoscripts/script');

        foreach (nodes as node skip nulls) do
        begin
          sid = ibec_msxml_GetAttribute(node, 'id');
          sorder = ibec_msxml_GetAttribute(node, 'order');
          stype = ibec_msxml_GetAttribute(node, 'type');
          sparent = ibec_msxml_GetAttribute(node, 'parentid');

          tempnode = ibec_msxml_SelectSingleNode(node, 'name');
          if (tempnode is not null) then
            sname = ibec_msxml_GetText(tempnode);

          tempnode = ibec_msxml_SelectSingleNode(node, 'description');
          if (tempnode is not null) then
            sdesc = ibec_msxml_GetText(tempnode);

          tempnode = ibec_msxml_SelectSingleNode(node, 'source');
          if (tempnode is not null) then
            ssource = ibec_mime_Decode(ibec_msxml_GetText(tempnode));

          if (exists(select id from ibescripts where id = :sid)) then
            update ibescripts
            set item_order = :sorder,
                item_type = :stype,
                item_parent_id = :sparent,
                item_name = :sname,
                item_description = :sdesc,
                item_source = :ssource
            where id = :sid;
          else
            insert into ibescripts (id, item_order, item_type, item_parent_id, item_name, item_description, item_source)
                        values (:sid, :sorder, :stype, :sparent, :sname, :sdesc, :ssource);
          commit;
        end

      finally
        ibec_msxml_Free(xml);
      end;
    end

11. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang


IBExpert 2010.07.29

1. Datenseite, Formularansicht:

  • Problem mit Control has no parent window beim Durchsuchen von Datensätzen mit Blobfeldern behoben.

2. IBEBlock:

  • Speicherverlustproblem bei der Ausführung verschachtelter IBEBlocks mit der EXECUTE IBEBLOCK-Anweisung behoben.
  • ibec_ExtractMetadata Funktion: hinzugefügt: ServerVersion, AddKeyword und RemoveKeyword-Optionen. Alle Optionen sind hauptsächlich für die Kontrolle der in Anführungszeichen gesetzten Bezeichnungen, die Keywords gleichen.

Beispiele:

 ibec_ExtractMetadata(MyDB, 'D:\MyDB.sql', 'ServerVersion=FB21; AddKeyword=FIRST,SECOND,KEY; 
 RemoveKeyword=START,TIME; ...', cbb);

Sie können folgende Serverversionen mit der ServerVersion-Option verwenden:

  • IB5x
  • IB61
  • IB65
  • IB70
  • IB71
  • IB75
  • IB2007
  • FB10
  • FB15
  • FB20
  • FB21
  • FB25
  • YA10
  • ibec_SetEnvironmentVariable-Funktion implementiert.

Die ibec_SetEnvironmentVariable-Funktion ist ein Umschlag für die Windows API SetEnvironmentVariable-Funktion, die den Wert einer Umgebungsvariable für den aktuellen Prozess setzt.

Syntax:

 function ibec_SetEnvironmentVariable(VarName : string; Value : string) : integer;

Wenn die Funktion erfolgreich ist, gibt sie den Wert nonzero zurück. Wenn die Funktion nicht erfolgreich ist, gibt sie den Wert zero zurück.

3. Abhängigkeitsseite:

  • Apply block to selected objects (Block auf ausgewählten Objekten anwenden) wurde zum Rechtsklickmenü hinzugefügt. Hiermit können Benutzer ausgewählte Objekte mit individuellen IBEBlocks bearbeiten.

4. Blob Anzeige/Editor:

  • As IBExpert/Firebird Block (Als IBExpert/Firebird Block)-Seite mit integriertem Debugging hinzugefügt. Aktuell wird nur die Fehlerbeseitigung von IBEBlocks unterstützt.

5. Extrahiere Metadata:

  • Eine Standard Datenbanksortierreihenfolge für Firebird 2.5 Datenbanken kann nun definiert werden.

6. Datenbank erzeugen:

  • Default collation (Standard Sortierung) für die Angabe einer Standardsortierreihenfolge für Firebird 2.5 Datenbanken hinzugefügt.

7. View Editor:

  • Ein paar Probleme mit Viewabhängigkeiten beim Recreate Script (Skript neu erstellen)-Erzeugung behoben.

8. IBEScript, SQL Skripte:

  • Es ist nun möglich, Umgebungsvariablen in INPUT, OUTPUT und SET BLOBFILE-Anweisungen zu verwenden.

Beispiel:

 execute ibeblock 
 as
 begin
 ibec_SetEnvironmentVariable('MyScriptDir', 'D:\Scripts\MyScripts');
 ibec_SetEnvironmentVariable('MyDataDir', 'D:\Data');
 ibec_SetEnvironmentVariable('MyBlobData', 'D:\Data\Blobs');
 end;

 SET BLOBFILE '\mytable.lob';

 OUTPUT '\mytable.sql';
 select * from mytable
 asinsert;
 COMMIT;

 INPUT '\ProcessData.sql';

9. Tabellen-/View Editor:

  • Nun kann ein Fremdschlüssel direkt in der Felderliste (sofern vorhanden) über das Rechtsklickmenü gelöscht werden.
  • Computed by (berechnete)-Ausdrücke können nun geändert werden (Firebird 2.5).

10. SP/Trigger Debugger:

  • Unterstützung der EXECUTE STATEMENT ... ON externe Verbindung implementiert.

11. Geringfügige Fehlerbehebungen und Verbesserungen

zurück zum Seitenanfang
<< Was ist neu? | IBExpert | Onlinedokumentation >>