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_PasswordQueryFunktion 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 ASundibec_ds_ExportFunktionen 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_ExtractMetadataunterstü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
USAGEPrivilegien 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_GetStatementPlanundibec_GetStatementExplainPlanFunktionen 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_DecodeFunktion implementiert. Dieibec_DecodeFunktion 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;
Expressionist der Wert zu vergleichen.Searchist der Wert, dass mitExpressionverglichen wird.Resultist der zurückgegebene Wert, wennExpressiongleichSearch.Defaultist optional. Sollte keine Übereinstimmungen gefunden werden, gibtibec_DecodedenDefault-Wert zurück. WirdDefaultausgelassen, gibt dieibec_DecodeFunktionNULLzurü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_ReadByteFunktion liest ein Byte vom Dateistream und gibt einen unsignierten Integerwert (0..255) zurück.ibec_fs_ReadWordFunktion liest zwei Bytes vom Dateistream und gibt einen unsignierten Integerwert (0..65535) zurück.ibec_fs_ReadDoubleWordFunktion liest für Bytes vom Dateistream und gibt einen unsignierten Integerwert (0..4294967295) zurück.ibec_fs_ReadInt32Funktion liest für Bytes vom Dateistream und gibt einen signierten Integerwert (–2147483648..2147483647) zurück.ibec_fs_WriteByteFunktion schreibt ein Byte zum Dateistream als einen 8-Bit unsignierten Integer.ibec_fs_WriteWordFunktionen schreibt zwei Bytes zum Dateistream als einen 16-Bit unsignierten Integer.ibec_fs_WriteDoubleWordFunktionen schreibt vier Bytes zum Dateistream als einen 32-Bit unsignierten Integer.ibec_fs_WriteInt32Funktionen 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 insmallintWerte, 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
INFunktion implementiert.
- Aktive Benutzer werden nun, wenn möglich, aus der
MON$ATTACHMENTSgeholt.
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_SaveToFileundibec_fs_xxxFunktionen 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_GetFilesFunktion 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_md5undibec_md5FileFunktionen 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:IncludeCollateOption 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/REFERENCEPrivilegien 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
INSERTundUPDATE OR INSERTAnweisungen.
- 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_CompareTablesFunktion 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
__gfDirectoriesOption 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_FileAttrFunktion 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_SetFileAttrFunktion 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_RenameFileFunktion 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_xorFunktionen 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 vonANSIaufUTF8geä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
IBECurrentScriptPathUmgebungsvariable 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 BLOBFILEundSET PARAMFILEAnweisungen verwenden, um zu spezifizieren, wo IBExpert/IBEScriptnach den erforderlichen Dateien suchen soll.
Beispiel:
INPUT 'Inputs\data.sql'; ... SET BLOBFILE 'Data\blobs.lob';
ConvertToUTF8-Option implementiert füribec_ds_ExportundSELECT ... AS EXPORT, wenn Daten in HTML-Format exportiert werden.AnsiToUTF8-Option implementiert füribec_ImportData. Wenn diese Option spezifiziert wird, werden Stringwerte zuUTF8konvertiert, 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.), dietmpals 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_iifundibec_CoalesceFunktionen 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_GetDiskFreeSpaceFunktion 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_GetServerLogFunktion 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 NULLund 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_RestoreDatabaseunterstützt dieFIX_FSS_DATAundFIX_FSS_METADATAOptionen, die den entsprechendengbakKeys 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 NULLund 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_Coalesceimplementiert.
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 ASunterstü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_ExportDatensatzexport 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_RestoreDatabaseunterstützt dieFIX_FSS_DATAundFIX_FSS_METADATAOptionen, die den entsprechendengbakKeys 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_MoveFileFunktion 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_DownloadToFileundibec_url_DownloadToVarFunktionen 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_EncodeNoCRLFundibec_mime_DecodeFunktionen implementiert. Dieibec_mime_Encode/ibec_mime_EncodeNoCRLFFunktionen verschlüsseln einen String mit MIME Base64. Dieibec_mime_DecodeFunktion 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_ExtractMetadataFunktion: hinzugefügt:ServerVersion,AddKeywordundRemoveKeyword-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:
IB5xIB61IB65IB70IB71IB75IB2007FB10FB15FB20FB21FB25YA10
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,OUTPUTundSET 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 ... ONexterne Verbindung implementiert.
11. Geringfügige Fehlerbehebungen und Verbesserungen
zurück zum Seitenanfang
<< Was ist neu? | IBExpert | Onlinedokumentation >>






