Announcement

Collapse
No announcement yet.

Felder zur Laufzeit zu Paradox-DB hinzufügen (Strukturänderung)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Felder zur Laufzeit zu Paradox-DB hinzufügen (Strukturänderung)

    Hallo, alle miteinander,
    ich arbeite mit Delphi 5 und entwickele eine DB-Anwendung auf Paradox-Basis. In einer Tabelle sollen zur Laufzeit neue Felder hinzugefügt werden können. Dafür gibt es leider keine TTable-Methode, es funktioniert wohl per BDE-API (dbiDoRestructure). In das Eingemachte möchte ich aber nur ungern einsteigen. Hat jemand eine Routine, mit der man einfach per Aufruf die Struktur der Tabelle verändern kann? Würde mir viel Zeit sparen!
    Daher 1000 Dank im Voraus!
    Gruß
    Jürgen Hofmann

  • #2
    Hallo Jürgen,

    du kannst Paradox Tabellen mittels Local SQL nicht nur abfragen, sondern auch verändern, z.B.:

    Alter Table [Tabellenname] Add -> Spalten hinzufügen Drop -> Spalten löschen

    Beispiel: Neue Spalte "Gebäude_Nr" (Typ Small Integer) in die Tabelle Gebäude einfügen: Alter Table "Gebaeude.db" Add Gebaeude_Nr SmallInt

    oder

    Die Spalte "Strasse2" aus der Tabelle "Adressen" löschen: Alter Table "Adressen" Drop Strasse2

    Für das Ändern der Spalteneigenschaften habe ich kein SQL Statement gefunden, aber ich denke das läßt sich mit einer Kombination aus Add (Neues Feld) einer Kopierfunktion (AltesFeld.AlterWert in NeuesFeld.NeuerWert) und Drop (Altes Feld) realisieren. Das Ganze würde als SQL Statement in eine TQuery Komponennte passen, d.h. keine BDE Programmierung!!!!!. In der Datei LocalSQL.HLP (wird mit der BDE mitgeliefert) findest du weitere Hilfe zu Local SQL. Ach ja, im Verzeichnis BDE findest du noch weitere Diskussionen um dieses Thema.

    Ich hoffe das Hilft Dir weiter!

    t

    Comment


    • #3
      Hallo,

      generell ist SQL für die Umstrukturierung am einfachsten einzusetzen, allerdings steht über SQL nicht alles zur Verfügung. Delphi-Beispiele für die IDAPI-Funktionen (DbiDoRestructure) sind auf den Web-Seiten (<i>Developer Support</i> und <i>CodeCentral</i>) von Borland zu finden - darunter ist auch ein Programm zur Umstrukturierung von Paradox-Tabellen

      Comment


      • #4
        Herzlichen Dank für den Hinweis

        Comment


        • #5
          hallo,

          ich hatte vor einigen wochen die selbe frage gestellt. an einer implementation via bde wäre ich ebenfalls interessiert. im codecentral konnte ich leider kein programmierbeispiel finden. könnten sie vielleicht dir id hier posten (falls noch zur hand) ?

          thx
          andr

          Comment


          • #6
            Hallo, Thomas,
            herzlichen Dank für Deinen Hinweis. Funktioniert auch prima: ein Problem habe ich allerdings noch: der Name der neuen Spalte ist variabel und zur Laufzeit in einem String gespeichert (z.B. SName). Wie kriege ich diesen String in die SQL-Anweisung?
            SQL.Add('Alter Table "Daten.db" ADD SName SMALLINT');
            funktioniert nicht. Ich habe es auch zuvor mit
            ParamByName('SName').AsString := SName;
            probiert. Funktioniert aber auch nicht. Hast Du vielleicht noch einen Tipp? Handbücher und Literatur sind sehr dürftig (einer schreibt beim anderen ab)! 1000 Dank im Voraus

            Comment


            • #7
              Es gibt ein Code-Beispiel mit einer BDE Implementation namens "AUTOINC.pas". Es stammt vom G. Walker und kann von verschiedenen Sites heruntergeladen werden (u.a. Richeys Delphi Page http://inner-smile.com oder mit altavista nach AUTOINC suchen). Ich hab´s für meine Zwecke leider nicht zum Laufen gebracht. Vielleicht klappts ja bei Dir

              Comment


              • #8
                Hat sich erledigt: ist trivial. Strings einfach verketten

                Comment


                • #9
                  Hallo,

                  das Beispielprogramm für das Umstrukturieren von Paradox-Tabellen ist seit Mai 1997 unter der URL <b>http://www.borland.com/devsupport/bde/delphifiles.html</b> zu finden:

                  <i>
                  Paradox table alter with source (Updated 5/20/97, Size 206,568 bytes)<br>
                  Paradox table alter with source (Package Version) (Size 19,1368 bytes)<br>
                  Paradox table alter (Packaged EXE) (Size 28,160 bytes)<br>
                  In some cases, it might be useful to change the version, block size or strict integrity of an existing Paradox table. Before, the table had to be recreated, and data moved from the old table to the new. This is not the case with this program. Included is source to build the project and a UI to the procedures needed.
                  </i>

                  Über die URL <b>http://www.borland.com/devsupport/bde/ti/</b> sind auch die restlichen Bespiele für fast alle IDAPI-Funktionen zu erreichen

                  Comment


                  • #10
                    ok, habs gefunden. werde ich mir mal in ruhe angucken.

                    nochmal danke

                    andr

                    Comment

                    Working...
                    X