Announcement

Collapse
No announcement yet.

Indexfehler mit BDE und Oracle 8

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

  • Indexfehler mit BDE und Oracle 8

    Hallo!
    Ich bin immer noch am portieren meiner MS-SQL Datenbank nach Oracle 8 und

    habe folgendes Proplem:

    Bei ALLEN Tabelle tritt immer der selbe Fehler auf, wenn ich versuche via

    ODBC->BDE mit Ttable zu öffnen:

    Indexfehler [Oracle][ODBC][Ora]ORA-00904: Ungültiger Spaltenname.

    Alle Tabellen haben einen Primärschlüssel und lassen sich aber mit SELECT

    * FROM… mit TQuery darstellen!

    Jetzt bin ich nun mal auf TTable angewiesen (Master-Detail...).

    Das Editieren der Tabellen mit DBArtisan funktioniert ja auch, ich habe

    damit auch schon Tabellen erstellt mit nur zwei Spalten (eine davon

    Primärschlüssel) es ist immer das gleiche!

    Ich verwende BDE 5.01 Delphi 5 Prof. und Oracle 8.00.05.00 ODBC Treiber.

    Kann mir jemand bitte sagen, was hier falsch läuft?!

    Mit freundlichen Grüßen karl.s

  • #2
    >Jetzt bin ich nun mal auf TTable angewiesen (Master-Detail...).

    Das halte ich für ein Gerücht, es gibt auch Master Detail Mechanismen für TQuery bzw auch für TClientDataSet und Provider.

    Erklärungen dazu erwünscht

    Comment


    • #3
      >Das halte ich für ein Gerücht, es gibt auch Master Detail Mechanismen für TQuery bzw auch für TClientDataSet und Provider.

      >Erklärungen dazu erwünscht?

      Ja bitte für TQuery das würde mich interessieren und auch weiterhelfen!

      mfg Karl.

      Comment


      • #4
        Da gibt es auch ein Beispiel in den DBDemos zu Delphi. Machen wir es also kurz

        Du hast eine Query1 mit mit dem Hauptsatz, damit verbunnden eine Datasource1 und ggf damit verbunden was zum Anzeigen. Query1 enthält sowas wie select knr, name from kunde.

        Die Detailquery soll nun dazu die Bestellungen anzeigen. Dazu verwendet Du eine parametrisierte Query2 mit dem SQL select daten from bestellung where knr=:knr.

        Den Parameter kannst Du nun manuell im OnDataChange der DataSource1 setzen und die Query2 neu öffnen (refresh ist sinnlos).

        Du kannst aber auch den eingebauten Mechanismus verwenden und das property Datasource der Query2 mit DataSource1 verbinden.
        Dabei wird dann der Paremeter beim Datensatzwechelt mit dem Inhalt eines Feldes gleichen Names aus der Query1 gefüllt. Was hier hilft.

        p.s. Lies das obige aufmerksam, ich denke da ist kein Wort zuviel drin ;-)

        Comment

        Working...
        X