Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datenbankspaltenname per Code umbennen

Empfohlene Antworten

Veröffentlicht

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

  • Autor

ich benutze ja auch kein SQL-Befehl in der TTable.

Den SQL-Befehl hab ich selbstverfreilich in der TQuery benutzt aber Paradox kennt diesen Befehl nicht.

Also wollt ich es über die TTable probieren

Entweder hast dus falsch verstadnen oder ich dich

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}

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.