aLeXanDer.. Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VaNaTiC Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 Das TTable-Object ist dafür nicht geeignet um SQL auszuführen! Dafür gibt es das TQuery-Object. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
aLeXanDer.. Geschrieben 28. April 2009 Autor Teilen Geschrieben 28. April 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VaNaTiC Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 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} Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.