En FB 1.5 esto furula:
Código Delphi
[-]
const SALTOLINA = #13#10;
procedure CheckTablename(const TableName:string);
var Tablas:string;
begin
tablas := uppercase(GetTableNames);
if Pos(uppercase(TableName),tablas)= 0 then
raise Exception.Create(Format('La Tabla "%s" no existe en la BBDD.'+saltolinea+
'Tablas Correctas:'+SALTOLINEA+
'%s',[TableName,tablas]));
end;
function GetTableNames:string;
var Tablas:TStringList;
m :TMDOQuery;
begin
Tablas := TStringList.Create;
m := TMDOQuery.Create(nil);
try
m.Database:= dtm.DB;
m.Transaction:= dtm.Trans;
m.SQL.Text:= 'SELECT RDB$RELATION_NAME FROM RDB$RELATIONS' +
' WHERE RDB$SYSTEM_FLAG = 0';
m.Open;
lpsql.VerResultadoSql(m,tablas);
Result := Format('Tablas existentes en la BBDD:'+saltolinea+
'%s',[insertbreakline(tablas.CommaText,76)]);
finally
FreeAndNil(m);
end;
end;
VerResultadossql: toma todos los registros de la consulta "m", (cada registro es el nombre de una tabla o vista) y las añade al StringList "tablas".
InsertBreakLine hace lo propio, cada 76 caracteres, añade un salto de linea.
No incluyo esas funciones, ya que uso otras rutinas de terceros y se alargaría mucho el post.
Saludos