Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String & Konstante nicht gleich? (https://www.delphipraxis.net/52795-string-konstante-nicht-gleich.html)

f4_tim 3. Sep 2005 23:51


String & Konstante nicht gleich?
 
Hallo DP'ler!

Ich schreibe zur Zeit wieder an einem Programm, welches hunderte Schüler aus einener CSV Datei ins Active Directory überträgt. Die Schüler werden so
Delphi-Quellcode:
grp := GetObject('LDAP://CN=schueler_grp,OU=Gruppen,DC=SCHULE,DC=LOCAL') as IADsGroup;
grp.Add('LDAP://CN=' + name + ',OU=stufe' + stufe + ',OU='+schueler+',DC=SCHULE,DC=LOCAL');
der Gruppe "schueler_grp" hinzugefügt.

Wie man sieht, ist die Domäne hardcoded. Um dieses zu ändern, habe ich obrigen Code in
Delphi-Quellcode:
grp := GetObject('LDAP://CN=schueler_grp,OU=Gruppen,'+DOMAINCON) as IADsGroup;
grp.Add('LDAP://CN=' + name + ',OU=stufe' + stufe + ',OU='+schueler+','+DOMAINCON);
geändert.

Nun zu meinem Problem: Wenn DOMAINCON eine Konstante also
Delphi-Quellcode:
 const DOMAINCON = 'DC=SCHULE,DC=LOCAL'
ist, klappt alles.
Ist DOMAINCON allerdings eine Variable, der per
Delphi-Quellcode:
 DOMAINCON := 'DC=SCHULE,DC=LOCAL'
der Wert zugewiesen wird, klappt es nicht. -> Das Programm stürzt ab.

Merkwürdig ist, dass ähnliche Anweisungen wie z.B.
Delphi-Quellcode:
 OU := GetObject('LDAP://OU=stufe' + stufe + ',OU='+schueler+','+DOMAINCON) as IADsContainer;
um in eine Organisationseinheit zu wechseln ohne Weiteres funktionieren.

Wisst ihr vielleicht Rat?

Grüße aus Duisburg
Tim

[edit]Ein ' vergessen :)[/edit]

100nF 4. Sep 2005 06:47

Re: String & Konstante nicht gleich?
 
Zitat:

-> Das Programm stürzt ab.
keine fehlermeldung? beschreib den "Absturz" etwas genäuer.

gruss
urbanbruhin

marabu 4. Sep 2005 06:51

Re: String & Konstante nicht gleich?
 
Hallo Tim,

deklariere DOMAINCON mal so:

Delphi-Quellcode:
var DomainCon: WideString;
Grüße vom marabu

f4_tim 4. Sep 2005 10:02

Re: String & Konstante nicht gleich?
 
@urbanbruhin: Nein, leider kommt keine Fehlermeldung. Das Programm beendet sich lediglich selbst.

@marabu: Das Problem besteht auch, wenn ich die DOMAINCON Deklaration auf WideString ändere.

Danke aber schonmal für eure schnelle Hilfe.

jbg 4. Sep 2005 10:37

Re: String & Konstante nicht gleich?
 
Zitat:

Zitat von f4_tim
@urbanbruhin: Nein, leider kommt keine Fehlermeldung. Das Programm beendet sich lediglich selbst.

Es es ein Konsolenprogramm oder im initialization/finalization-Abbschnitt? Denn nur da kommt keine Fehlermeldung, wenn man keinen try/except-Block um den Code baut.

Zitat:

@marabu: Das Problem besteht auch, wenn ich die DOMAINCON Deklaration auf WideString ändere.
Hast du vielleicht ein statisches Array im selben Sichtbarkeitsbereich, dass du mit einem Index kleiner/größer als Erlaubt ansprichst?

f4_tim 4. Sep 2005 10:54

Re: String & Konstante nicht gleich?
 
Ja, der entsprechendene Codeteil ist in einem try-except-Block. Aber auch nach auskommentieren von try und except, beendet sich das Programm selbst. Der Code befindet sich nicht in den finalization/initialization-Sections.

Trotzdem danke für die Hinweise.

jbg 4. Sep 2005 10:59

Re: String & Konstante nicht gleich?
 
Zitat:

Zitat von f4_tim
Aber auch nach auskommentieren von try und except, beendet sich das Programm selbst.

Wo habe ich denn geschrieben, dass du es auskommentieren sollst?

Vielleicht solltest du mal den Caret (manche nennen ihn Cursor, obwohl das der Mauszeiger ist) auf die GetObject Zeile stellen und dann die Taste F4 drücken. Dann alle Aktionen ausführen, die zu dieser Stelle führen und sich dann mit F7 bzw. F8 durch den Code hangeln.

f4_tim 4. Sep 2005 11:20

Re: String & Konstante nicht gleich?
 
Zitat:

Wo habe ich denn geschrieben, dass du es auskommentieren sollst?
Wäre ja auch möglich, dass ich eine detailierte Fehlermeldung bekommen hätte, oder?

Ich habe den Server in einer VM laufen, so dass mit dem Debuggen nicht klappt. Außer ich installiere Delphi auch in der VM.

GuenterS 4. Sep 2005 11:29

Re: String & Konstante nicht gleich?
 
Lass Dir doch mal den Inhalt der Variablen eine Zeile bevor du die GetObject Methode ausführst, mittels ShowMessage ausgeben. Und dann noch eine nach dem Aufruf der GetObjects Methode.

Dann wüßtest zumindest was da zu diesem Zeitpunkt drinsteht.

SirThornberry 4. Sep 2005 13:07

Re: String & Konstante nicht gleich?
 
anstelle von showmessage kannst du auch OutputDebugString nehmen und mit DebugViewNT kannst du dann die Debugoutputs sehen


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz