Fehler 515 im Grid

Anwender der Professional bzw. Enterprise Edition v4.x haben hier einen separaten Bereich rund um die Power Features der Profi-Versionen.
Antworten
Benutzeravatar
migo
Beiträge: 365
Registriert: 03.01.2004, 20:58
Wohnort: Wiesbaden

Fehler 515 im Grid

Beitrag von migo »

Hallo Elmar,

seit einigen Tagen benimmt sich Baywotch etwas merkwürdig. Wenn ich eine größere Menge Artikel aufliste, kommt folgende Fehlermeldung:

Code: Alles auswählen

Unerwarteter Laufzeitfehler:

Modul: s_DisplayArticleDataInGrid
Zeile: 0
Code: -2147220989 (515)
Description: This key is already associated with an element of this collection.
Source: iGrid
Datenbank: D:\ebay\BayWotch4\baywotch.db5 (594,05 MB)
LastDLLError: 0
Zeit: 20.09.2009 18:25:44
App Version: 4.1.22 FINAL.16
DAO Version: 3.6
ADO Version: 2.8
wodHTTP.dll Version: 1.5.6.148
OS: Windows XP 2600 Service Pack 3
Zuerst dachte ich, die Datenbank wäre defekt, aber komprimieren und reparieren hat keinen Effekt. Die Fehlermeldung kommt trotzdem.

Michael
Benutzeravatar
migo
Beiträge: 365
Registriert: 03.01.2004, 20:58
Wohnort: Wiesbaden

Beitrag von migo »

Hallo Elmar,

schau dir das mal an. :O

Bild

In der Datenbank ist der Artikel nur einmal vorhanden. Dafür hat es Baywotch irgendwie geschafft, zwei Einträgen in der tblUser die selbe ID zu geben. Dadurch wurde anscheinend der Fehler verursacht.

Michael
Mash
Beiträge: 282
Registriert: 04.01.2004, 15:58
Wohnort: Hannover

Beitrag von Mash »

Moin migo,

zwar weiss ich auch nicht, wie BW das geschafft hat, aber "Dein" Fehler entsteht meistens durch defekten Index.

Gruß
Mash
"ABAP is neither cool nor sexy." - Horst Keller
denkmann
Administrator
Beiträge: 5369
Registriert: 31.12.2003, 00:14
Wohnort: Stolberg (Rhld.) bei Aachen
Kontaktdaten:

Beitrag von denkmann »

Moin Michael,
migo hat geschrieben:In der Datenbank ist der Artikel nur einmal vorhanden. Dafür hat es Baywotch irgendwie geschafft, zwei Einträgen in der tblUser die selbe ID zu geben. Dadurch wurde anscheinend der Fehler verursacht.
dann ist definitiv Deine Datenbank beschädigt. :(

Die ID ist das eindeutige, unveränderliche und automatisch fortlaufende Merkmal in Tabelle "tblUser". Selbst wenn BayWotch wollte, könnte es die ID nicht doppelt vergeben.

Wenn hier Werte doppelt vorkommen, greift der "Primary Key" nicht.

Hast Du Access zur Hand? Dann könntest Du die Feld-Definitionen in den Tabellen anhand einer "jungfräulichen" Datenbank vergleichen.
Gruß,
Elmar Denkmann
(Entwickler)
Borkumer
Beiträge: 1443
Registriert: 03.01.2004, 17:27
Wohnort: Borkum
Kontaktdaten:

Beitrag von Borkumer »

Hallo!

Die "tblauction" ist per "inner Join" mit "tbluser" verknüpft. Das bedeutet, dass soviele Datensätze angezeigt werden wie in der "rechten" Tabelle der Verküpfungswert in der Spalte "ID" vorhanden ist. In diesem Fall zweimal!

Code: Alles auswählen

SELECT tblAuction.seller_id, tblUser.id
FROM tblUser INNER JOIN tblAuction ON tblUser.id = tblAuction.seller_id;
Werden zweimal die gleichen Datensätze angezeigt, jedoch mit zwei verschiedenen Verkäufern, so "müßte" in der "tbluser" die selbe "ID" zweimal vergeben worden sein. Das darf aber nicht sein weil ->"indiziert=Ja (Ohne Duplikate)" für dies Feld als Bedingung eingestellt ist.

Das nur als Erklärung für die Mitleser, die nicht in die DB reinschauen wollen/können.

migo hat geschrieben:Dafür hat es Baywotch irgendwie geschafft, zwei Einträgen in der tblUser die selbe ID zu geben.
@ migo
Ist das ein Einzelfall oder sind in Deiner "tbluser" noch mehrere solcher Duplikate vorhanden?
Hast Du mal rep/komp unter Access direkt gemacht?
Gruß

Tim
__________________________
XP Pro; SP3 (werde ohne Not auch nicht wechseln !!)
Benutzeravatar
migo
Beiträge: 365
Registriert: 03.01.2004, 20:58
Wohnort: Wiesbaden

Beitrag von migo »

Hi,

insgesamt gab es drei "Dubletten". Merkwürdigerweise war der Primary Key in dieser Datenbank in der tblUser nicht gesetzt, in meinen anderen Datenbanken aber schon. Ich vermute mal, daß das Flag bei einem der Abstürze verloren gegangen ist, welche diese Datenbank schon erlebt hat. Merkwürdig, das ganze...

Michael
Borkumer
Beiträge: 1443
Registriert: 03.01.2004, 17:27
Wohnort: Borkum
Kontaktdaten:

Beitrag von Borkumer »

Hallo Michael!

Das ominöse "Grid" ist eine heikle Schnittstelle zur DB. Wenn das Grid auf Tabellen der DB5 zugreift scheint sie "weitergehende" Rechte zu besitzen als dies direkt unter Access möglich wäre. So ist es mir möglich gewesen, die 2GB-Grenze für die DB mit dem Grid gewaltig zu unterlaufen. Die DB ließt sich danach unter Access weder verwalten noch war es möglich sie zu reparieren.

Deshalb scheint der Hinweis wichtig, dass bei einem Absturz von BayWotch (warum auch immer) die DB einen Knax bekommen hat, da ja das Grid in der Regel in dem Moment auf die DB zugreift.

Aber nach einem Neustart von BW ist in den allermeisten Fällen kein Fehler festzustellen, aber, wie Dein Beispiel zeigt, möglich: !!


Deshalb der dringende Hinweis an Alle: so oft wie möglich die DB sichern und rep/komp durchführen !!
Gruß

Tim
__________________________
XP Pro; SP3 (werde ohne Not auch nicht wechseln !!)
Antworten