Ver Mensaje Individual
  #3  
Antiguo 14-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
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;
{----------------------------NOMBRES DE TABLAS Y VISTAS ----------------------}
    m.SQL.Text:=   'SELECT RDB$RELATION_NAME FROM RDB$RELATIONS' + {do not localize}
                          ' WHERE RDB$SYSTEM_FLAG = 0'; {do not localize}

    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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita