Zitat von
Dezipaitor:
Hast du geschrieben, dass du die Übersetzung selbst gemacht oder irgendwoher kopiert hast?
Ich habe den Wrapper von Agnisoft, da ich mir Anfangs nicht bewusst war, dass eine
JEDI version existierte.
Ok. Ich verwende jetzt die
jedi Units und es funktioniert soweit super. Nur habe ich immer noch das Problem, dass ich mit den HRESULT nicht klar komme...
Ich nehme nochmals das Besipiel (AdsGetObject)
Mit untenstehendem Code ergibt sich folgendes:
#1: Ich verwende einen Falschen Benutzername und Passwort -> result = 16 >> S_ADS_ERRORSOCCURRED
#2: Ich will auf ein Objekt zugreiffen das nicht existiert -> result = 0 >> Keine Übereinstimmung
Delphi-Quellcode:
result := '0';
if (hr and E_ADS_BAD_PATHNAME) = 0 then
result := '1'
else if (hr and E_ADS_INVALID_DOMAIN_OBJECT) = 0 then
result := '2'
else if (hr and E_ADS_INVALID_USER_OBJECT) = 0 then
result := '3'
else if (hr and E_ADS_UNKNOWN_OBJECT) = 0 then
result := '4'
else if (hr and E_ADS_PROPERTY_NOT_SET) = 0 then
result := '5'
else if (hr and E_ADS_PROPERTY_NOT_SUPPORTED) = 0 then
result := '6'
else if (hr and E_ADS_PROPERTY_INVALID) = 0 then
result := '7'
else if (hr and E_ADS_OBJECT_UNBOUND) = 0 then
result := '8'
else if (hr and E_ADS_PROPERTY_NOT_MODIFIED) = 0 then
result := '9'
else if (hr and E_ADS_PROPERTY_MODIFIED) = 0 then
result := '10'
else if (hr and E_ADS_CANT_CONVERT_DATATYPE) = 0 then
result := '11'
else if (hr and E_ADS_PROPERTY_NOT_FOUND) = 0 then
result := '12'
else if (hr and E_ADS_OBJECT_EXISTS) = 0 then
result := '13'
else if (hr and E_ADS_SCHEMA_VIOLATION) = 0 then
result := '14'
else if (hr and E_ADS_COLUMN_NOT_SET) = 0 then
result := '15'
else if (hr and S_ADS_ERRORSOCCURRED) = 0 then
result := '16'
else if (hr and S_ADS_NOMORE_ROWS) = 0 then
result := '17'
else if (hr and S_ADS_NOMORE_COLUMNS) = 0 then
result := '18'
else if (hr and E_ADS_INVALID_FILTER) = 0 then
result := '19';
Nun mache ich das Selbe, verwende aber die Vergleichsweise die mir Corpsman unterbreitet hat:
#1: Ich verwende einen Falschen Benutzername und Passwort -> result = 0 >> Keine Übereinstimmung
#2: Ich will auf ein Objekt zugreiffen das nicht existiert -> result = 0 >> Keine Übereinstimmung
Delphi-Quellcode:
result := '0';
if ((hr and E_ADS_BAD_PATHNAME) = E_ADS_BAD_PATHNAME) then
result := '1'
else if ((hr and E_ADS_INVALID_DOMAIN_OBJECT) = E_ADS_INVALID_DOMAIN_OBJECT) then
result := '2'
else if ((hr and E_ADS_INVALID_USER_OBJECT) = E_ADS_INVALID_USER_OBJECT) then
result := '3'
else if ((hr and E_ADS_UNKNOWN_OBJECT) = E_ADS_UNKNOWN_OBJECT) then
result := '4'
else if ((hr and E_ADS_PROPERTY_NOT_SET) = E_ADS_PROPERTY_NOT_SET) then
result := '5'
else if ((hr and E_ADS_PROPERTY_NOT_SUPPORTED) = E_ADS_PROPERTY_NOT_SUPPORTED) then
result := '6'
else if ((hr and E_ADS_PROPERTY_INVALID) = E_ADS_PROPERTY_INVALID) then
result := '7'
else if ((hr and E_ADS_OBJECT_UNBOUND) = E_ADS_OBJECT_UNBOUND) then
result := '8'
else if ((hr and E_ADS_PROPERTY_NOT_MODIFIED) = E_ADS_PROPERTY_NOT_MODIFIED) then
result := '9'
else if ((hr and E_ADS_PROPERTY_MODIFIED) = E_ADS_PROPERTY_MODIFIED) then
result := '10'
else if ((hr and E_ADS_CANT_CONVERT_DATATYPE) = E_ADS_CANT_CONVERT_DATATYPE) then
result := '11'
else if ((hr and E_ADS_PROPERTY_NOT_FOUND) = E_ADS_PROPERTY_NOT_FOUND) then
result := '12'
else if ((hr and E_ADS_OBJECT_EXISTS) = E_ADS_OBJECT_EXISTS) then
result := '13'
else if ((hr and E_ADS_SCHEMA_VIOLATION) = E_ADS_SCHEMA_VIOLATION) then
result := '14'
else if ((hr and E_ADS_COLUMN_NOT_SET) = E_ADS_COLUMN_NOT_SET) then
result := '15'
else if ((hr and S_ADS_ERRORSOCCURRED) = S_ADS_ERRORSOCCURRED) then
result := '16'
else if ((hr and S_ADS_NOMORE_ROWS) = S_ADS_NOMORE_ROWS) then
result := '17'
else if ((hr and S_ADS_NOMORE_COLUMNS) = S_ADS_NOMORE_COLUMNS) then
result := '18'
else if ((hr and E_ADS_INVALID_FILTER) = E_ADS_INVALID_FILTER) then
result := '19';
Ich habe das Ganze Spielchen auch noch mit Case hr of E_ADS_BAD_PATHNAME: usw ... gemacht,
auch hier ergab sich:
#1: Ich verwende einen Falschen Benutzername und Passwort -> result = 0 >> Keine Übereinstimmung
#2: Ich will auf ein Objekt zugreiffen das nicht existiert -> result = 0 >> Keine Übereinstimmung
Ich scheine ja wohl grundsätzlich was falsch zu machen, aber was?