Creating an UPDATE script with domain descriptions
The following IBEBlock creates a script with UPDATE statements for all database domains that have a description:
execute ibeblock
as
begin
FHSQL = ibec_fs_OpenFile('D:\DomDescs.sql', __fmCreate);
FHBlobs = ibec_fs_OpenFile('D:\DomDescs.lob', __fmCreate);
if ((not FHSQL is null) and (not FHBlobs is null)) then
begin
ibec_fs_Writeln(FHSQL, 'SET BLOBFILE ''D:\DomDescs.lob'';');
ibec_fs_Writeln(FHSQL, '');
for select rdb$field_name, rdb$description
from rdb$fields
where (rdb$description is not null)
order by 1
into :FieldName, :FieldDesc
do
begin
if (FieldDesc <> '') then
begin
FieldName = ibec_Trim(FieldName);
iOffs = ibec_fs_Position(FHBlobs);
iLen = ibec_fs_WriteString(FHBlobs, FieldDesc);
sParamName = ':h' || ibec_IntToHex(iOffs, 8) || '_' || ibec_IntToHex(iLen, 8);
UpdStmt = 'UPDATE RDB$FIELDS' || ibec_Chr(13) || ibec_Chr(10) ||
'SET RDB$DESCRIPTION = ' || :sParamName ||
ibec_Chr(13) || ibec_Chr(10) ||
'WHERE (RDB$FIELD_NAME = ''' || FieldName || ''');';
ibec_fs_Writeln(FHSQL, UpdStmt);
ibec_fs_Writeln(FHSQL, '');
end
end
ibec_fs_Writeln(FHSQL, 'COMMIT WORK;');
ibec_fs_CloseFile(FHSQL);
ibec_fs_CloseFile(FHBlobs);
end
commit;
end;
back to top of page
<< Creating a script from a Database Designer model file | IBEBlock | IBEBlock User Forms >>







