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 2014.06.17
- IBExpert 2014.04.07
- IBExpert 2014.03.16 & 2014.03.22
- IBExpert 2014.01.01
- IBExpert 2013.10.08
- IBExpert 2013.06.26
- IBExpert 2013.02.15
- IBExpert 2012.12.16
- IBExpert 2012.11.15
- IBExpert 2012.09.02
- IBExpert 2012.08.19
- IBExpert 2012.05.19
- IBExpert 2012.05.10
- IBExpert 2012.02.21
- IBExpert 2011.12.11
- IBExpert 2011.12.01
- IBExpert 2011.09.05
- IBExpert 2011.06.13
- IBExpert 2011.03.29
- IBExpert 2011.01.12
- IBExpert 2010.10.08
- IBExpert 2010.07.29
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.
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).
- Support der
explain_plan
-Option hinzugefügt (Firebird 3).
- Support für Stored Funktionen implementiert (Firebird 3).
- Support für Subroutinen implementiert (Firebird 3).
- 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.
- Support für Stored Funktionen implementiert (Firebird 3).
- Support für Privilegien auf UDFs implementiert (Firebird 3).
- Support für Privilegien auf Exceptions implementiert (Firebird 3).
- Support für zusätzliche Tabellendaten implementiert (Firebird 3).
10. Package Editor (Firebird 3)
- Skript-Seite implementiert.
- Packages erscheinen nun in der Code Insight-Liste (Firebird 3).
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;
Der Service Control Center wird nun automatisch mit den notwendigen Adminrechte gestartet.
14. Geringfügige Fehlerbehebungen und Verbesserungen
IBExpert 2014.04.07
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
IBExpert 2014.03.16 & 2014.03.22
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)
Die Option Extrahiere Werte der CHAR (n) CHARACTER SET OCTETS
-Felder als Hex-Strings wurde hinzugefügt.
Stored Funktionen (Firebird 3) werden nun unterstützt.
7. Automatische Rechtezuweisung
Packages und Funktionen (Firebird 3) werden nun unterstützt.
Subroutines und Funktionen (Firebird 3) werden unterstützt.
- Zeigt nun, wenn möglich, den Explain-Plan (Firebird 3) an.
- Unterstützung der Versionshistorie für Funktionen (Firebird 3).
- Unterstützung der
log_function_start
/log_function_finish
-Optionen (Firebird 3).
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.
SELECT ... EXPORT AS
undibec_ds_Export
Funktionen unterstützen nun dasexport 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 dieOctetsAsHex
-Option, welche die Extrahierung derCHAR(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 dieibec_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
IBExpert 2014.01.01
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).
- 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.
- 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).
- Unterstützt Packages (Firebird 3.0).
- Die Möglichkeit wurde hinzugefügt, Views bei der Ausführung von Reverse-Engineering wegzulassen.
- Unterstützung der Firebird 3.0 Konfig-Syntax.
10. Drag-n-Drop vom Datenbank Explorer
- Vorlagen für die
ibec_ShutdownDatabase
- andibec_OnlineDatabase
-Funktionen werden nun beim Ziehen eines Datenbankknoten in einen Code Editor angeboten.
ibec_GetStatementPlan
undibec_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 imOptions
-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 vonINSERT
/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
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.
- Unterstützung der
ROWS
-Klausel vonSELECT
-Anweisungen implementiert.
Die Möglichkeit wurde hinzugefügt, Trace-Daten aus dem Grid Ansicht-Modus zu exportieren.
- 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.
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 deribec_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
(oderHostName
): der URL des FTP ServernamenUser
(oderUserName
): der UsernamePass
(oderPassword
): das PasswortPort
: die Portnummer (als String)Data
: der Inhalt des internen DatenbuffersSessionLog
: die Session-LogdatenLastResponse
: die letzte Antwort des FTP Servers (das Gleiche wieibec_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
(oderHostName
): setzt den URL des FTP Servers, bedeutungslos nachdem die Verbindung hergestellt ist.User
(oderUserName
): setzt den Usernamen, bedeutungslos nachdem die Verbindung hergestellt ist.Pass
(oderPassword
): 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
IBExpert 2013.06.26
- Die Möglichkeit wurde hinzugefügt, alle Abfragen des aktuellen Abfragesets gleichzeitig zu löschen.
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.
Formatierungsregeln wurden für JOIN ... ON
- und MERGE ... ON
-Ausdrücke hinzugefügt.
- Blobwerte als Hex-Strings exportieren wurde implementiert. Ist diese Option
ON
, werden Blobwerte direkt in dieVALUES
-Klausel derINSERT
-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.
- 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.
IBExpert 2013.02.15
1. Datenbankobjekt kopieren/Tabelle kopieren
- Das Problem mit dem falschen Kopieren von
COMPUTED BY
-Feldern wurde behoben.
- Nun können Sie Statistiken nur für spezifizierte Tabellen aufrufen.
- Eine andere Möglichkeit ist durch Verwendung des DB Explorer Kontextmenüs, Statistiken für ausgewählte Tabellen aufrufen.
- 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.
- Für eine schnelle Auswahl wurden Snapshot RO (snapshot read-only) und Read Committed RO (read committed read-only) Transaktions-Isolierstufen hinzugefügt.
- 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.
- Die Das Auslösen Datenbank-/Transaktionstrigger verhindern-Option wurde hinzugefügt.
ibec_BackupDatabase
/ibec_RestoreDatabase
: DieNoDBTriggers
-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.
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.
- Nun mit Support des erweiterten Syntax der
[FOR] EXECUTE STATEMENT
-Anweisung(ON EXTERNAL ...)
.
- Für
SELECT
-Anweisungen mit einerWITH LOCK
-Klausel erteilt IBExpert nun einUPDATE
-Privileg auf der betroffenen Tabelle.
- 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.
IBExpert 2012.11.15
Die Beschreibung-Seite wurde hinzugefügt, um die in der RDB$DATABASE.RDB$DESCRIPTION
-Tabelle befindliche Datenbankbeschreibung anzuzeigen und zu editieren.
Die Datenbankbeschreibung erscheint in der Dokumentation, wenn die Option, Beschreibungen aufnehmen ..., aktiviert ist.
Das Problem mit der falschen Formatierung der WITH
-Klausel innerhalb INSERT
- und MERGE
-Anweisungen wurde behoben.
[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.
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.
Die fehlende Funktionalität für Datenimport von Textdateien mit festen Spaltenbreiten wurde implementiert.
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.
Passwort anzeigen-Checkbox 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.
IBExpert 2012.09.02
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).
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.
IBExpert 2012.08.19
- 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.
- CRLF nach UPDATE- und Vor Tabellennamen einrücken-Optionen für die
UPDATE
-Anweisung hinzugefügt.
- 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.
IBExpert 2012.05.19
- Einige kleinen Bugs wurde entfernt.
IBExpert 2012.05.10
- Das Formatieren der
IN AUTONOMOUS TRANSACTION
-Anweisung wurde implementiert. - Es gibt eine neue Option für
SELECT
- undUPDATE
-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 ...
- 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 derINSERT
-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.
- 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.
- Das Problem mit dem Suchen von nicht-ASCII-Text bei Verwendung eines UTF8 Verbindungstzeichensatzes wurde behoben.
ibec_ImportData
: Unterstützung derTrimStrings
-Option hinzugefügt.ibec_Decode
Funktion implementiert. Dieibec_Decode
Funktion bietet die Funktionalität einerIF...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 mitExpression
verglichen wird.Result
ist der zurückgegebene Wert, wennExpression
gleichSearch
.Default
ist optional. Sollte keine Übereinstimmungen gefunden werden, gibtibec_Decode
denDefault
-Wert zurück. WirdDefault
ausgelassen, gibt dieibec_Decode
FunktionNULL
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:
ibec_fs_ReadByte(FileHandle : variant) : integer;
ibec_fs_WriteByte(FileHandle : variant; Value : integer) : integer;
ibec_fs_ReadWord(FileHandle : variant) : integer;
ibec_fs_WriteWord(FileHandle : variant; Value : integer) : integer;
ibec_fs_ReadDoubleWord(FileHandle : variant) : integer;
ibec_fs_WriteDoubleWord(FileHandle : variant; Value : integer) : integer;
ibec_fs_ReadInt32(FileHandle : variant) : integer;
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.
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.
IBExpert 2012.02.21
- 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 insmallint
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.
- 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.
- Formatieren der
IN
Funktion implementiert.
- 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.
- Nun kann ein To-Do-Eintrag dupliziert werden. Verwenden Sie hierfür den Kontextmenü.
- Das Problem der Positionierung zum Fehler, wenn nur einen ausgewählten Teil des Skripts ausgeführt wird, wurde behoben.
- COLLATE immer berücksichigen-Option implementiert.
- Nicht in Kommentaren suchen-Option implementiert. Diese verhindert die Suche nach einem spezifizierten String in den Kommentaren.
ibec_SaveToFile
undibec_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
undibec_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
IBExpert 2011.12.11
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
IBExpert 2011.12.01
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.
- Nun können Daten in Updatable Views importiert werden.
- 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.
- Das Problem mit der falschen Formatierung des
FULL JOIN
- Klausels wurde behoben.
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.
- Das gelegentlich auftretende Problem mit Blobextrahierung, wenn sie in getrennte
lob
-Dateien extrahiert werden, wurde behoben.
9. Geringfügige Fehlerbehebungen und Verbesserungen
IBExpert 2011.09.05
- 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 statt0
(Null) exportiert.
- 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.
- 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
undUPDATE OR INSERT
Anweisungen.
- Der Datenbankstrukturvergleich verwendet jetzt zusätzliche Verbindungsparameter, vorausgesetzt sie sind in der Registrierungsinfo der zu vergleichenden Datenbank spezifiziert.
- Nun ist es möglich, den Trigger Tabelleneditor direkt aus dem Trigger-Menü zu öffnen.
- 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.
- Unterstützung der
WHERE
-Klausel in deribec_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üribec_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
IBExpert 2011.06.13
- Vollständige
UTF8
-Unterstützung implementiert. Interne Darstellung von Stringwerten wurde vonANSI
aufUTF8
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.
- 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.
- Die Option Strings von ANSI zu UTF8 konvertieren wurde hinzugefügt.
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.
- Die Möglichkeit besteht jetzt, Objekte nach ihrer Beschreibung zu filtern: geben Sie einfach '
~
' (tilde) am Anfang des Filterstrings ein.
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.
- 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 inINPUT
,SET BLOBFILE
undSET 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';
ConvertToUTF8
-Option implementiert füribec_ds_Export
undSELECT ... AS EXPORT
, wenn Daten in HTML-Format exportiert werden.AnsiToUTF8
-Option implementiert füribec_ImportData
. Wenn diese Option spezifiziert wird, werden Stringwerte zuUTF8
konvertiert, bevor sie in eine Datenbank eingefügt werden.
14. Geringfügige Fehlerbehebungen und Verbesserungen
IBExpert 2011.03.29
- 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.
- Der gelegentlich auftretende Fehler,
stream write error
, wurde behoben.
- 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.)
- 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.), dietmp
als Teil des Objektnamens beinhalten.
*tmp*
+ [Ctrl + Space].
- UTF8 Support wurde implementiert.
- 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.
- Verbesserter
VAR
-Werte Editor. - Unterstützt UTF8.
- Die
ibec_iif
undibec_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
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.
- 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).
- Export in eine XML Tabelle implementiert.
- Behebung einiger Probleme bezüglich der falschen Verschlüsselung des Dokuments beim Export in MS Excel Dateien.
- Unterstützung der Tastaturkürzel [Ctrl + C], [Ctrl + X], [Ctrl + V] für den Abfrage Manager Baum.
- 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.
- Quell- und Zielspalten können über ihre Namen automatisch gelinkt werden.
- 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
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.
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
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 dieFIX_FSS_DATA
undFIX_FSS_METADATA
Optionen, die den entsprechendengbak
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.
- Jetzt können Fehlermeldungen in die Zwischenablage kopiert werden.
14. Geringfügige Fehlerbehebungen und Verbesserungen.
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 dieFIX_FSS_DATA
undFIX_FSS_METADATA
Optionen, die den entsprechendengbak
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.
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.
- Direkter Zugang zu den Codeformatierungs-Optionen wurde hinzugefügt.
- 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.
- 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.
- Strings von OEM in ANSI konvertieren-Option hinzugefügt.
- IBEBlock-Seite mit automatisch generierten IBEBlocks für den Datenimport hinzugefügt.
- 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.
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
undibec_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('https://www.ibexpert.com/download/setup_trial.exe', 'd:\downloads\ibexpert_trial.exe', ''); if (Res) then ibec_ShowMessage('Downloaded successfully'); ... MyVar = null; Res = ibec_DownloadToVar('https://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
undibec_mime_Decode
Funktionen implementiert. Dieibec_mime_Encode
/ibec_mime_EncodeNoCRLF
Funktionen verschlüsseln einen String mit MIME Base64. Dieibec_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 = 'https://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
IBExpert 2010.07.29
1. Datenseite, Formularansicht:
- Problem mit Control has no parent window beim Durchsuchen von Datensätzen mit Blobfeldern behoben.
- Speicherverlustproblem bei der Ausführung verschachtelter IBEBlocks mit der
EXECUTE IBEBLOCK
-Anweisung behoben. ibec_ExtractMetadata
Funktion: hinzugefügt:ServerVersion
,AddKeyword
undRemoveKeyword
-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.
- 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.
- As IBExpert/Firebird Block (Als IBExpert/Firebird Block)-Seite mit integriertem Debugging hinzugefügt. Aktuell wird nur die Fehlerbeseitigung von IBEBlocks unterstützt.
- Eine Standard Datenbanksortierreihenfolge für Firebird 2.5 Datenbanken kann nun definiert werden.
- Default collation (Standard Sortierung) für die Angabe einer Standardsortierreihenfolge für Firebird 2.5 Datenbanken hinzugefügt.
- Ein paar Probleme mit Viewabhängigkeiten beim Recreate Script (Skript neu erstellen)-Erzeugung behoben.
- Es ist nun möglich, Umgebungsvariablen in
INPUT
,OUTPUT
undSET 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';
- 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).
- Unterstützung der
EXECUTE STATEMENT ... ON
externe Verbindung implementiert.
11. Geringfügige Fehlerbehebungen und Verbesserungen
zurück zum Seitenanfang
<< Was ist neu? | IBExpert | Onlinedokumentation >>