This functions performs code formatting of an PSQL statement.
ibec_psql_Format(PSQLObject : variant; FormatOptions : string) : string;
ibec_psql_Format returns string value containing formatted PSQL code.
The following example retrieves all procedure DDL's from a database, formats them and saves formatted code in separate files:
execute ibeblock as begin sFormatOptions = ''; -- Try to get format options from the IBExpert User Database userdb = ibec_GetUserDBConnection(); if (userdb is not null) then begin ibec_UseConnection(userdb); select data from config where ident = 'CodeFormatOptions' into :sFormatOptions; end db = ibec_GetDefaultConnection(); ibec_UseConnection(db); -- Directory to save formatted sources of procedures sDir = 'D:\Temp\Procs'; ibec_ForceDirectories(sDir); for select rdb$procedure_name from RDB$PROCEDURES -- Comment the next line if your server doesn't support packages where rdb$package_name is null order by 1 into :ProcName do begin ProcName = ibec_Trim(:ProcName); -- Pass an empty string as an option string to get pure single CREATE statement without SET TERM etc. sPSQL = ibec_GetObjectScript(db, :ProcName, __dboProcedure, ''); -- Just for example we will replace CREATE PROCEDURE with CREATE OR ALTER PROCEDURE sPSQL = ibec_Trim(sPSQL); sPSQL = ibec_preg_Replace('^(?i)CREATE[\x01-\x20]+PROCEDURE', 'CREATE OR ALTER PROCEDURE', sPSQL); ObjPSQL = ibec_psql_Parse(sPSQL, 3, __svFB30); try sPSQLSource = ibec_psql_Format(ObjPSQL, sFormatOptions); sFileName = sDir || '\' || ProcName || '.sp'; ibec_SaveToFile(sFileName, sPSQLSource, __stfOverwrite); finally ibec_psql_Free(ObjPSQL); end end; end;