Datenbank
Datenbank
Hallo Zusammen!
Ich hab' da ein kleines Problem mit dem Zugriff auf eine Datenbank mittels ODBC.
Ich habe eine führende Tabelle die ich komplett auslesen muß. Hieraus resultierend erhalte ich eine Key mit dem weitere 5 Tabellen zugegriffen werden soll.
Den Zugriff auf die Datenbank habe ich mit OpenDatabase erfolgreich hinter mir. Anschließend lese ich mittels DatabaseQuery und NextDatabaseRow die entsprechenden Zeilen der führenden Datenbank aus. Wenn ich nun in der Schleife (bei NextDatabaseRow) ein neues DatabaseQuery absetzte funktioniert das ganze nicht mehr....
Wie kann ich mein Problem lösen?? - Kann mir jemand weiter helfen??
Danke Ralf
Ich hab' da ein kleines Problem mit dem Zugriff auf eine Datenbank mittels ODBC.
Ich habe eine führende Tabelle die ich komplett auslesen muß. Hieraus resultierend erhalte ich eine Key mit dem weitere 5 Tabellen zugegriffen werden soll.
Den Zugriff auf die Datenbank habe ich mit OpenDatabase erfolgreich hinter mir. Anschließend lese ich mittels DatabaseQuery und NextDatabaseRow die entsprechenden Zeilen der führenden Datenbank aus. Wenn ich nun in der Schleife (bei NextDatabaseRow) ein neues DatabaseQuery absetzte funktioniert das ganze nicht mehr....
Wie kann ich mein Problem lösen?? - Kann mir jemand weiter helfen??
Danke Ralf
Re: Datenbank
> Wie kann ich mein Problem lösen??
meine Kristallkugel ist gerade in Reparatur.
Hast Du mal 'n Stückchen Code für uns?
Grüße ... Kiffi
meine Kristallkugel ist gerade in Reparatur.
Hast Du mal 'n Stückchen Code für uns?
Grüße ... Kiffi
Hallo Kiffi!
Ich habe einen kleinen Codeausschnitt für Dich/Euch:
Grüße
Ralf
Schade das Deine Kristallkugel nicht griffbereit ist....meine Kristallkugel ist gerade in Reparatur.
Ich habe einen kleinen Codeausschnitt für Dich/Euch:
Code: Alles auswählen
RetVal = DatabaseQuery("Select AKZ, HGKZ, HSTR, HSTN, HHNZ from SvKo.FzSqHaltt WHERE AKZ LIKE 'KO%'")
While NextDatabaseRow()
HalttAkz.s = Trim(GetDatabaseString(0))
HalttHgkz.s = Trim(GetDatabaseString(1))
HalttHStr.s = Trim(GetDatabaseString(2))
HalttHStn.s = Trim(GetDatabaseString(3))
HalttHhNz.s = Trim(GetDatabaseString(4))
PrintN("HALTT --> " + HalttAkz + HalttHgkz + HalttHstr + HalttHStn + HalttHhNz)
PrintN("Select AKZ, SGKZ, SSTR, SHNR from SvKo.FzSqSortt WHERE AKZ = '"+ HalttAkz+"'")
RetVal = DatabaseQuery("Select AKZ, SGKZ, SSTR, SHNR from SvKo.FzSqSortt WHERE AKZ = '"+ HalttAkz+"'")
If RetVal = 0
dbFehler = DatabaseError()
MessageRequester(" Fehler ", "Fehler bei: Select AKZ, SGKZ, SSTR, SHNR, SHHNZ from SvKo.FzSqSortt WHERE AKZ = '"+ HalttAkz + "' --> " + dbFehler + " Programm wird beendet....", 0)
PgmEnde()
EndIf
SorttAkz.s = Trim(GetDatabaseString(0))
SorttSgKz.s = Trim(GetDatabaseString(1))
SorttSStr.s = Trim(GetDatabaseString(2))
SorttSHnr.s = Trim(GetDatabaseString(3))
PrintN("SORTT --> " + SorttAkz + SorttSgKz + SorttSStr + SorttSHnr)
Wend
Grüße
Ralf
Code: Alles auswählen
RetVal = DatabaseQuery("Select AKZ, HGKZ, HSTR, HSTN, HHNZ from SvKo.FzSqHaltt WHERE AKZ LIKE 'KO%'")
While NextDatabaseRow()
[...]
RetVal = DatabaseQuery("Select AKZ, SGKZ, SSTR, SHNR from SvKo.FzSqSortt WHERE AKZ = '"+ HalttAkz+"'")
[...]
Wend
abgesetzen DatabaseQuery(). Aus diesem Grund beinflusst das innere
DatabaseQuery die darüberliegende NextDatabaseRow-Anweisung.
HTH
Grüße ... Kiffi
> Gibt es aber eine Möglichkeit das von mir gewünschte Ergebnis zu erzielen
> (eine Tabelle führend und die restlichen Lesen aufgrund des ermittelten
> Keys aus der führenden Tabelle)?
mmh, da sehe ich nur die Möglichkeit, die Keys der führenden Tabelle in
einem Rutsch in eine LinkedList einzulesen und diese dann für weitere
DB-Operationen zu verwenden.
Die DB-Gurus hier (sofern vorhanden) mögen mich berichtigen, wenn ich da
falsch liege.
Grüße ... Kiffi
> (eine Tabelle führend und die restlichen Lesen aufgrund des ermittelten
> Keys aus der führenden Tabelle)?
mmh, da sehe ich nur die Möglichkeit, die Keys der führenden Tabelle in
einem Rutsch in eine LinkedList einzulesen und diese dann für weitere
DB-Operationen zu verwenden.
Die DB-Gurus hier (sofern vorhanden) mögen mich berichtigen, wenn ich da
falsch liege.
Grüße ... Kiffi