Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Überprüfen ob Spalte existiert

  Alt 31. Mai 2009, 17:57
Naja,

ich habe es jetzt über den SQLITE_MASTER gelöst:
Delphi-Quellcode:
function TDatenbankWrapper.ColumnExists(const ATableName, AColumnName: string;
  const AWrapper: TDatenbankWrapper): Boolean;
var
  BufferTable : TSQLiteTable;
  TableDesc, ColumnName : string;
  Offset, NameEnd : Integer;
begin
  Result := false;
  BufferTable := GetTable('SELECT sql FROM SQLITE_MASTER WHERE name = "' + ATableName + '"', AWrapper);
  try
    TableDesc := BufferTable.FieldAsString(0);

    Offset := Pos('(', TableDesc);
    while (Offset > 0) or (not Result) do
    begin
      // Ignoring leading spaces
      while TableDesc[Offset + 1] = ' do
        Inc(Offset);

      NameEnd := PosEx(' ', TableDesc, Offset + 1);
      if NameEnd = 0 then
        NameEnd := Pos(')', TableDesc);
      ColumnName := Copy(TableDesc, Offset + 1, NameEnd - Offset - 1);
      if ColumnName = AColumnName then
        Result := true;
      Offset := PosEx(',', TableDesc, Offset + 1);
    end;
  finally
    BufferTable.Free;
  end;
end;
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat