Fehler Beim Starten
Zuletzt geändert: 10.06.2023 08:05

Fehler beim Starten #

Fehler beim Start „Zeile mit doppeltem Schlüssel” #

EULANDA lässt sich nicht starten. Es wird eine der nachfolgenden Fehlermeldungen angezeigt. Der Fehler tritt nur bei einzelnen Benutzern auf bestimmten PCs auf. Der Fehler tritt nur im Zusammenhang mit einem Programmupdate, einem neuen Benutzer oder neuer Hardware auf.

Native Error 512 Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.

Native Error 512 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Lösung #

Führen Sie folgenden SQL-Befehl sooft aus, bis im Ergebnisbereich angezeigt wird, dass keine oder Null Zeilen betroffen sind:

update cnProcesses`
`set program_name = RTRIM(program_name) + 'X'`
`where id in (`
`select min(id)`
`from cnProcesses`
`group by`
`uid, sid,hostname,program_name,nt_domain,nt_username,net_address,net_library,loginame`
`having count(*)>1`
`)

Datenbankbesitzer ist ein Windows-Benutzer #

EULANDA lässt sich nicht starten - auch nicht als Administrator. Beim Starten - ggf. auch an anderer Stelle im Programm - erscheint eine der folgenden oder eine ähnliche Meldungen:

Meldung 15517 Die Ausführung als Datenbankprinzipal ist nicht möglich, weil der Prinzipal “dbo” nicht vorhanden ist, für diesen Typ von Prinzipal kein Identitätswechsel möglich ist, oder Sie nicht die erforderliche Berechtigung haben.

Message 15517 Cannot execute as the database principal because the principal “dbo” does not exist, this type of principal cannot be impersonated, or you do not have permission.

In anderen Fällen lässt sich EULANDA® starten, aber gewisse Funktionen - beispielsweise das Kopieren von Adressen - schlagen fehl. Hierbei wird dann obige oder nachstehende Meldung ausgegeben:

Meldung 15404 Die Informationen über Windows NT-Gruppe oder -Benutzer ‘dbo’ konnten nicht abgerufen werden, Fehlercode 0xffff0002.

Meldung 15404 Could not obtain information about Windows NT group\user ‘dbo’, error code 0xffff0002.

Mögliche Ursache #

Der Besitzer der Datenbank ist nicht der fest hinterlegte SQL Administrator “sa”, sondern ein Windows-Anmeldename. Das ist beispielsweise der Fall, wenn beim Anlegen der Datenbank kein Anmeldenamen eingegeben wurde. In diesem Fall wird der jeweils angemeldete Windows-Benutzer als Datenbankbesitzer hinterlegt.

Überprüfen Sie den aktuell hinterlegten Datenbankbesitzer #

Den aktuell hinterlegten Datenbankbesitzer finden Sie im SQL Management Studio heraus, wenn Sie mit der rechten Maustaste auf die Datenbank klicken und Eigenschaften auswählen.

Alternativ können den Besitzer auch über nachfolgenden SQL-Befehl ermitteln. Diesen können Sie beispielsweise im EULANDA-SQL-Designer ausführen:

select suser_sname(owner_sid)`
`from master.sys.databases`
`where database_id = db_id()
select suser_sname(sid)`
`from sys.database_principals`
`where name = 'dbo'

Beide Abfragen müssen „sa“ als Ergebnis haben. Wenngleich der Fall, dass sich die Ausgaben unterscheiden seltener ist.

Lösung #

Ändern Sie den Datenbankbesitzer in “sa” um.

Hierzu muss nachfolgender SQL-Befehl ausgeführt werden. Führen Sie vor der Änderung unbedingt eine Datensicherung Ihres kompletten Systems durch.

sp_changedbowner @loginame = 'sa'

Technischer Hintergrund #

Einige serverseiten Prozeduren (stored procedures) sind mit der EXECUTE-AS-Klausel angelegt worden - etwa wie im folgenden Beispiel:

ALTER PROC [dbo].[ProzedurName]`
`with execute as owner`
`AS`
`SET NOCOUNT ON`
`(...)