meta data for this page
ibec_psql_Format
This functions performs code formatting of an PSQL statement.
Syntax
ibec_psql_Format(PSQLObject : variant; FormatOptions : string) : string;
- PSQLObject - PSQL object created with ibec_psql_Parse function
- FormatOptions - string with set of formatting options. It can be loaded from an ini-file (Options | Code formatting options | Save formatting options to file).
ibec_psql_Format returns string value containing formatted PSQL code.
Example
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;