Autor |
Beitrag |
D. Annies
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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?
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; DaMod1.ADOTbMerge.Active := false; DaMod1.ADOTbMerge.TableName := dn; DaMod1.ADOTbMerge.Active := true; showmessage('Merge-Datei: ' + dn + ' ist geöffnet'); |
Danke für eine Idee,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 26.03.13 22:40
D. Annies hat folgendes geschrieben : | bei dem folgenden Code bekomme ich eine (irritierende) Fehlermeldung zur Laufzeit, als
.exe tritt sie nicht auf. |
Wie, was, wo?
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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
|
Verfasst: 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 ...
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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
|
Verfasst: Mi 27.03.13 10:33
D. Annies hat folgendes geschrieben : | 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.
D. Annies hat folgendes geschrieben : | 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.
D. Annies hat folgendes geschrieben : | Ist es so, wie Jaenicke vermutet? |
Keine Ahnung ... sag du es mir!
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.03.13 10:48
D. Annies hat folgendes geschrieben : | Ist es so, wie Jaenicke vermutet? |
Zeig doch mal einen Screenshot von der Meldung, die du meinst.
D. Annies hat folgendes geschrieben : | 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
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.03.13 12:51
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: 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
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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.
|
|
|