Zum Inhalt springen

Datenbankspaltenname per Code umbennen


Empfohlene Beiträge

Hallo Community,

Ich habe folgendes Problem.

Wie kann ich in einer Paradoxdatenbank

ein bestimmtes Feld, das in mehreren Datenbanken falsch benannt wurde, umbenennen?!

Den SQL-Befehl

ALTER TABLE xxx.db RENAME... oder CHANGE
kennt die Paradoxdatenbank nicht. Nun Hab ichs probiert mit einem TTable Objekt indem ich den Namen neu setze

anl->TableName = "dptab";

anl->Active = true;

anl->FieldDefs->Items[6]->Name = "Vertikal";

anl->FieldDefs->Update();

anl->Active = false;

Beim Tracen wird erst der jetzige Name angezeigt und danach eben "Vertikal"

jedoch schreibt der diese Änderung anscheinend nicht in die Datenbank.

Da dort nach Beendigung immernoch der vorherige Name vorhanden ist.

Ist es von der Idee her richtig?! Oder geht das ganz anders?!

Danke

Alex

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe gerade in einem alten Projekt mit Delphi nachgesehen, wie die Funktionen dort waren.

Eventuell hilft Dir das die Syntax und Funktionen in Deiner OnlineHilfe zu finden. Fangen alle mit Dbi.... an:

{$IFDEF BDE}

function ChangePassword(Table : TTable; NewPW : String): Boolean;

var

  TblDesc: CRTblDesc;

  DBDir  : String;

  hDb    : hDbiDb;

begin

                   (* der Rückgabewert ist so lange false, bis

                      das Paßwort erfolgreich geändert worden ist    *)

  Result:=false;

                   (* den Datenbankpfad bestimmen                    *)

  DBDir:=Table.DataBaseName;

                   (* eine Datenbank auf diesem Pfad öffnen, weil

                      das Handle benötigt wird                       *)

  if DbiOpenDatabase(nil,nil,dbiReadWrite,dbiOpenExcl,nil,0,nil,

     nil,hDb) = DBIERR_NONE

    then begin

      if DbiSetDirectory(hDb,PChar(DBDir)) = DBIERR_NONE

        then begin

                   (* den Descriptor-Record zunächst löschen und

                      anschließend die notwendigen Daten zuweisen    *)

          FillChar(TblDesc, sizeof(CRTblDesc), #0);

          StrPCopy(TblDesc.szTblName,Table.TableName);

          StrCopy(TblDesc.szTblType,szParadox);

          StrPCopy(TblDesc.szPassword,NewPW);

          TblDesc.bProtected:=true;

                   (* die Tabelle umstrukturieren, d. h. ein Paßwort

                      setzen, und als Funktionswert true zurück-

                      liefern, wenn das geklappt hat                 *)

          Result:=DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil,

            false)=DBIERR_NONE;

        end;

                   (* die Datenbank wieder schließen                 *)

      DbiCloseDatabase(hDb);

    end;

end;

{$ENDIF}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...