Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Di 26.03.13 21:31 
Hi, Delpher,

bei dem folgenden Code bekomme ich eine (irritierende) Fehlermeldung zur Laufzeit, als
.exe tritt sie nicht auf. Was kann da los sein?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    opendialog1.InitialDir := home;
    opendialog1.FileName := 'schule.dbf';
    if opendialog1.Execute then
    begin
      dn := opendialog1.filename;
      DaMod1.ADOTbMerge.Connection := DaMod1.ADOConnection1;  // auch im OI DaMod1 setzbar
      DaMod1.ADOTbMerge.Active := false;
        DaMod1.ADOTbMerge.TableName := dn;
        //DaMod1.ADOTbMerge.Connection := DaMod1.ADOConnection1;
      DaMod1.ADOTbMerge.Active := true;
      showmessage('Merge-Datei: ' + dn + ' ist geöffnet');  // an dieser Stelle stoppt das Prg zur Laufzeit


Danke für eine Idee,
Detlef

_________________
ut vires desint, tamen est laudanda voluntas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.03.13 22:40 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
bei dem folgenden Code bekomme ich eine (irritierende) Fehlermeldung zur Laufzeit, als
.exe tritt sie nicht auf.
Wie, was, wo? :gruebel:

Meinst du, dass eine Exception auftritt, wenn du das Programm aus Delphi heraus im Debugger startest, die sonst nicht kommt? Das wäre normal, da der Debugger die ja zu Debugzwecken anzeigt, auch wenn sie sonst abgefangen wird.

Und welche Fehlermeldung meinst du denn?
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Di 26.03.13 22:53 
Sorry, sowas Dummes von mir! Die Fehlermeldung heißt: "EOleException: "Das Objekt oder der Provider kann
den angeforderten Vorgang nicht ausführen"

Gruß, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.03.13 06:07 
Mein lieber Detlef,

sei doch bitte ein wenig umsichtiger, wenn du postest und arbeite mit der Vorschau. Dann siehst du z.B. auch sofort, daß du dich mit den Delphi-Tags vertippt hast und dein Delphi-Code nicht richtig angezeigt wird. Auch Fehlermeldungen gehören ins Forum, denn keiner außer dir kann sie sonst wissen, ebenso die Stelle, an der ein Fehler auftritt. Bist du es nicht leid, daß du jedesmal gefragt wirst, wie denn der Fehler lautet und wo er auftritt? Da würde ich mir langsam ein wenig blöde vorkommen ... :P

Soviel solltest du nun bereits mitbekommen haben: Möglichst umfassende Darstellung des Problems, z.B. auch, von welchem Typ die von dir im Delphi-Code dargestellten Variablen bzw. Komponenten sind. Programmierung ist kein Ratespiel und basiert auch nicht auf Zufallsergebnissen, sondern folgt strikten Richtlinien. Und genau deshalb macht es ja auch erst Sinn, sich in einem Forum darüber auszutauschen.

Zu deinem Code: Vorausgesetzt, bei ADOTbMerge handelt es sich um ein TAdoDataset, weist du dessen Property Connection einen Wert zu, deaktivierst (schließt) anschließend die Verbindung und weist dann demselben Property denselben Wert noch einmal zu. Da das Schließen eines Datasets (Close bzw. Active := False) nur notwendig ist, wenn es zuvor geöffnet war (Active := True), kann es durchaus sein, daß du bei aktiviertem Dataset die Connection zu wechseln versuchst, was deine nachträglich gepostete Fehlermeldung "Das Objekt oder der Provider kann den angeforderten Vorgang nicht ausführen" auslösen könnte. Nimm also den ersten Zuweisungsversuch aus deinem Code heraus und schaue, ob die Fehlermeldung noch immer auftritt.

Für diesen Beitrag haben gedankt: Martok
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mi 27.03.13 07:14 
Jo, Jo, das mit der Vorschau werde ich beherzigen. (Delphi 2006)

Ich weise aber die Connection nur einmal zu, die zweite ist ja ge-remt, das war nur ein
Versuch, ob es dann gehen würde, was nicht der Fall war (da hatte ich die erste Zuweisung ge-remt).

Ist es so, wie Jaenicke vermutet?

LG, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mi 27.03.13 09:35 
Vielleicht allgemein ganz hilfreich, auf jeden Fall lesenswert: www.delphipraxis.net...-und-fortgeschr.html

Für diesen Beitrag haben gedankt: D. Annies
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mi 27.03.13 09:48 
Danke, so etwas habe ich schon gesucht (aber nicht gefunden)
Gruß, Detlef

P.S. Gibt es eigentlich die Möglichkeit, dieses Delphi 2006 - Prg nach Delphi 6 Enterprise zu "bringen"?
(Dort lässt es sich SO nicht öffnen (In D6 fühle ich mich sicherer).

_________________
ut vires desint, tamen est laudanda voluntas
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.03.13 10:33 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Jo, Jo, das mit der Vorschau werde ich beherzigen.

Das wäre äußerst nett und zuvorkommend, denn du erreichst damit eine bessere Lesbarkeit deiner Beiräge und somit auch eine höhere Chance, daß dir geholfen wird.

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Ich weise aber die Connection nur einmal zu, die zweite ist ja ge-remt, das war nur ein
Versuch, ob es dann gehen würde, was nicht der Fall war (da hatte ich die erste Zuweisung ge-remt).

Die Deaktivierung eines aktiven Datasets sollte aber schon vor der Zuweisung einer Connection stattfinden, sonst erhältst du eine Fehlermeldung.

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Ist es so, wie Jaenicke vermutet?

Keine Ahnung ... sag du es mir!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.03.13 10:48 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Ist es so, wie Jaenicke vermutet?
Zeig doch mal einen Screenshot von der Meldung, die du meinst. ;-)

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
P.S. Gibt es eigentlich die Möglichkeit, dieses Delphi 2006 - Prg nach Delphi 6 Enterprise zu "bringen"?
(Dort lässt es sich SO nicht öffnen (In D6 fühle ich mich sicherer).
Normalerweise funktionieren Programme aus D2006 auch mit D6 noch, du bekommst nur beim Öffnen von Formularen Fehlermeldungen bzgl. ExplicitWidth usw., da diese erst bei der Implementierung des Vista-Supports (das Problem mit den Komponenten am rechten und unteren Formularrand bei Delphi 7 und früher) eingeführt wurden.
Diese Meldungen kannst du aber einfach ignorieren und das Programm sollte funktionieren.

Oder was passiert sonst?
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mi 27.03.13 11:03 
Es kommt darauf an, ob man neuere Sprachfeatures wie z.B. die for-in-Schleife genutzt hat. Falls nicht, sollten sich die Probleme darauf beschränken, dass Units wie Variants und neuere Properties unter Delphi 6 noch unbekannt sind. In dem Fall räumt man einfach die uses-Klausel auf und ignoriert die Properties, dann sollte es auch unter Delphi 6 gehen. Allerdings empfiehlt es sich, die Dateien (*.pas, *.dpr, *.dfm, ggf. noch *.inc und *.res, keine *.dcu) zuerst in ein eigenes Verzeichnis zu kopieren und dann diese Kopie in Delphi 6 zu öffnen.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mi 27.03.13 11:47 
@jaenicke:
"EOleException: "Das Objekt oder der Provider kann den angeforderten Vorgang nicht ausführen"

Wenn ich mit D6 die .dpr öffnen will, bleibt nur der äußere Rahmen von D6 sichtbar, und nichts passiert weiter.

Gruß, Detlef

Vielen Dank für deine und die Bemühungen von anderen Helfern!

_________________
ut vires desint, tamen est laudanda voluntas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.03.13 12:51 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
@jaenicke:
"EOleException: "Das Objekt oder der Provider kann den angeforderten Vorgang nicht ausführen"
Ich meinte schon einen Screenshot, einfach um zu sehen, ob die Meldung die aus Delphi oder die vom Programm ist. ;-)

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich mit D6 die .dpr öffnen will, bleibt nur der äußere Rahmen von D6 sichtbar, und nichts passiert weiter.
Lösch die .dsk Datei. ;-)
Der Desktopzustand von Delphi 2006 ist mit dem von D6 nicht kompatibel.

Für diesen Beitrag haben gedankt: D. Annies
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mi 27.03.13 14:14 
Ich bin ja sowas von begeistert - jetzt habe ich noch 2 Fehlermeldungen, aber jetzt muss ich erst einmal weg,
- bis nachher!
LG, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mi 27.03.13 23:56 
Autsch - D6 startet nicht mehr ...

Der Reihe nach:

1. habe die .dsk des Prgs im Verzeichnis D:\... gelöscht und es mit D6 aufgerufen.
Klasse, nur zwei Fehlermeldungen.

2. habe die .dsk im zweiten Verzeichnis des selben Programms auf Laufwerk F:\... gelöscht und
es mit Delphi 2006 aufgerufen. Kein Problem.

3. habe erneut D6 im Laufwerk D:\... mit dem (neuen) Prg aufgerufen, wollte die zwei Fehlermeldungen beseitigen:

D6 startet nicht mehr. Es ist nur das Eröffnungslogo zu sehen, kein Rahmen etc.

Was ist jetzt zu tun?

Gruß Detlef

_________________
ut vires desint, tamen est laudanda voluntas
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 28.03.13 08:05 
Ich habe meine Antwort von gestern Abend noch einmal überarbeitet, weil sich keiner
gemeldet hat. Jetzt ist sie wohl verständlicher ...
Gruß, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 28.03.13 09:37 
Habe ich das richtig verstanden: Du hast den Projektordner einmal für Delphi 6 auf Laufwerk D: und einmal für Delphi 2006 auf Laufwerk F:? Es handelt sich dabei um eine Kopie und nicht um eine Verknüpfung? In dem Falle würde ich wie schon angedeutet auf D: alles außer *.pas, *.dfm und *.dpr einmal löschen und dann erneut versuchen, das Projekt in Delphi 6 zu öffnen. Dabei wird dann auch die *.res neu erzeugt, wenn man keine eigenen Ressourcen eingebunden hat (Icons etc.), lässt sich das leicht verschmerzen. Etwaige Meldungen bzgl. Units ("Variants" z.B.) und unbekannten Komponenteneigenschaften ignoriert man dann einfach. Auf diese Weise habe ich auch schon XE-Projekte unter Delphi 5 öffnen können, es hängt natürlich auch vom Code ab, da ja mittlerweile einige Sprachfeatures eingeführt wurden.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 28.03.13 10:06 
Hi,

es ist eine Kopie, keine Verknüpfung.
Also löschen wie beschrieben? und D6 startet wieder?

LG, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 28.03.13 10:11 
Wäre zumindest einen Versuch wert. Falls nicht, hast Du Delphi vermutlich so eingestellt, dass es beim Programmstart das zuletzt geöffnete Projekt lädt. Das müsstest Du dann zur Not aus der Registry löschen, leider weiß ich den genauen Schlüssel für Delphi 6 nicht aus dem Kopf, das dürfte aber irgendwo unter HKCU\Software\Borland\Delphi\6.0\Closed Projects oder zumindest ähnlich zu finden sein. Vorher würde ich aber erst versuchen, den vorhin beschriebenen Weg zu beschreiten.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 28.03.13 12:28 
Einfach eine leere Projektdatei erstellen, xyz.dpr, und Delphi damit starten, dann kommt ein Fehler, aber das andere Projekt wird nicht mehr geladen, wenn es tatsächlich so eingestellt ist.
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 28.03.13 12:33 
Oder per Drag' n Drop eine funktionierende *.dpr auf die delphi32.exe ziehen, dann sollte das entsprechende Projekt geladen werden.