![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: SQL
Wie lautet die Datensatznummer einer Paradox-Tabelle in SQL?
Hallo,
ich will über den Borland Datenbank-Explorer per SQL-Befehl Daten aus einer Quell- in eine Zieltabelle schreiben. Beides sind Paradox-Tabellen. Ich will dabei Datensatz für Datensatz abarbeiten.
SQL-Code:
Es gibt aber immer eine Fehlermeldung "Ungültiger Feldname id".
UPDATE Zieltabelle
SET ANr = (SELECT BNr FROM Quelltabelle WHERE Zieltabelle.ID = Quelltabelle.id); Weiß jemand, wie ich die Datensatznummer richtig in den SQL-Befehl schreiben muss? |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
In SQL würde ich das über den Primärschlüssel machen.Ob man auf die Datensatznummer per SQL zugreifen kann (wenn sie als solches überhaupt in der DB existiert) kann ich nicht sagen.
|
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Zitat:
Zum Vergleich, welche Datensätze übertragen werden sollen, benötigst Du deshalb eine ID (genauer: einen kompatiblen PrimaryKey) innerhalb von Quell- und von Zieltabelle. Wenn ich mich recht erinnere, unterscheidet Paradox auch noch Groß- und Kleinschreibung bei Feldnamen. Vielleicht liegt darin der Fehler. Wenn Du die Datensätze sowieso einzeln bearbeiten willst (warum eigentlich?), bringt der Zugriff über SQL möglicherweise keine Vorteile. Arbeitest Du mit der BDE? Dann könntest Du zur Beschleunigung einen Filter auf die Quelltabelle setzen. Für genauere Tipps bitte ich um genauere Hinweise (Tabellendefinition mit Indizes, Auswahl der Datensätze, die übertragen werden sollen). Aber vielleicht reichen diese Hinweise. Jürgen |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Hallo Barny,
jetzt versuche ich mich auch nochmal... Zitat:
Ich will noch auf etwas anderes hinaus... Gibt es in der Quelltabelle immer nur eine Zeile pro ID? (ist ID also ein Primarykey?) Wenn die Unterabfrage mehrere Zeilen liefert kann das auch nicht gehen. Also vielleicht so...
SQL-Code:
MIN oder auch MAX.
UPDATE Zieltabelle
SET ANr = (SELECT MIN(BNr) FROM Quelltabelle WHERE id = Zieltabelle.id); Gruss Thorsten |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
An mkinzler,
vielen Dank für den Vorschlag. Leider unterscheiden sich die Primärschlüssel der Tabellen. In der Zieltabelle haben wir einen zusammengesetzten Schlüssel aus 4 Feldern, in der Quelltabelle einen ganz einfachen AUTOINCREMENT-Schlüssel. Da diese unterschiedlich sind, kann ich die Datensätze nicht über die Primärschlüssel ansprechen. |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
An Jürgen Thomas
Vielen Dank für deine Antwort. Zitat:
Zitat:
|
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Gibt et außer der Position ein anderes Kriterium, wie du die Dummytabelle zuordnen kannst?
|
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
An mkinzler
Ich habe leider kein anderes eindeutiges Kriterium gefunden. |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Hallo,
Zitat:
mfg wo |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Zitat:
Zitat:
1. Lies alle gewünschte Daten aus der Quelltabelle in eine Temp-Tabelle (je nachdem, welche Utilities Du sonst verwendest, z.B. eine in-Memory-Table). 2. Erweitere diese Tabelle um eine ID. Füge jedem Datensatz eine laufende Nummer als ID hinzu. Damit kannst Du einen Update-Befehl ähnlich Deinem ersten Versuch erledigen. Alternative: 1. Alle Daten aus der Quelltabelle in die Zieltabelle kopieren. 2. Mit einer Programm-Prozedur kannst Du in einer Schleife (First/Next/EOF) ebenso eine ID simulieren und jeden Datensatz einzeln verknüpfen. Zusatzvorschlag: Erzeuge mehrere Zufallszahlen RandomVorname, RandomNachname, RandomStrasse usw. Mit RandomVorname holst Du aus der Dummy-Tabelle einen zufälligen Vornamen usw. Damit kannst Du viel mehr Testdaten erzeugen, als Datensätze in der Arbeitsdatei und in der Dummy-Tabelle enthalten sind. Vielleicht hilft Dir das. Jürgen |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Zitat:
man kommt ran, ist aber den Aufwand nicht wert. Falls jemand wirklich Langeweile hat... Borland hat mal die BDE 3.0 als separates Produkt vertickt. Hat kein Mensch gekauft, habe nur einen flüchtigen Blick darauf geworfen. Inhalt war u.a. eine Doku der BDE. mit diesem Wissen kann man die Nummer auslesen, aber nicht für SQL, sondern nur für Tabellen und über Low-Level-BDE. und viele Prozeduren ändern sich, je nach BDE-Version, häufig sogar bei Unterversionen. ... Falls Dich das nicht abschreckt... ![]() Aber sage nicht, ich hätte Dich nicht gewarnt <g> Mfg DB |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
An WoGe und Jürgen Thomas
Vielen Dank für eure Informationen. Da ich per direkter SQL-Bearbeitung nicht weitergekommen bin - weil ich den einzelnen Datensatz nicht über ein Identifikationsfeld ansprechen kann - habe ich es eben anders gemacht. Ich habe mich ja lange dagegen gewehrt und habe jetzt doch für mein Anliegen ein Programm in Delphi geschrieben. Wie Jürgen Thomas vorgeschlagen hat, habe ich mir auf einem Formular mehrere Memo-Objekte für Vorname, Nachname, Strasse usw. angelegt. In den "Lines" habe ich die Dummy-Strings geschrieben. Mit einer Schleife (First/Next/EOF) lasse ich mir jetzt per Zufallszahl aus diesen Memo-Lines meine Dummy-Daten zusammenstellen und schreibe diese in meine Tabellen. Funktioniert sehr gut und ist für weitere Anpassungen bestens geeignet. Nochmals vielen Dank für eure Unterstützung. |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
An Dirk_B
Vielen Dank für Deine Warnung. Der Aufwand ist mir zu groß und deine Erläuterungen schrecken mich ab. Daher habe ich es anders gelöst wie du meiner Antwort an WoGe und Jürgen Thomas entnehmen kannst. |
Re: Wie lautet die Datensatznummer einer Paradox-Tabelle in
Zitat:
Nur zur Klarstellung, damit nicht bei anderer Gelegenheit falsche Schlüsse gezogen werden: Im Beitrag #10 hatte ich geschrieben: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz