![]() |
exe startet nur auf Entwickler-PC
Liebes Forum,
wieder einmal brauche ich Eure Hilfe. Habe bereits alles nach diesem Problem durchsucht und nichts gefunden. Ich habe ein Programm gemacht, das mit Daten jongliert, die in der MySQL-Tabellen abgelegt sind. Das funktioniert einwandfrei, eben aber nur auf dem Entwickler-PC. Ich habe es mit RAD-Studio 2007 erstellt. Wenn ich die Datenbank auf einen anderen (nicht-Entwicker-PC) installiere, die Tabellen hineinkopiere und dann mein Programm starten will, kommt nur kurz die Sanduhr (zu dieser Zeit ist mein Programm auch im Taskmanager zu sehen) und dann geht die Sanduhr weg, (jetzt ist das Programm auch aus dem Taskmanager verschwunden), und das wars dann. Im Ereignisprotokoll ist nirgends ein Ereignis aufgetaucht. Achja der Entwicker-PC ist XP-SP3, und die nicht-Entwickler-PC's ebenfalls. Ich habe keine Ahnung wo ich ansetzen soll. Könnt Ihr mir bitte helfen? |
Re: exe startet nur auf Entwickler-PC
Hallo,
Zitat:
Es fehlt auf jeden Fall die libmysql.dll. Suche mal in Google. Bei MS gibt es den "Dependancy Walker", damit kann man sich die statisch verlinkten DLL's ausgeben lassen. Den würde ich mal auf dem "anderen" Rechner benutzen. Heiko |
Re: exe startet nur auf Entwickler-PC
Zitat:
(dynamisch gelinkte DLLs muß der Programmierer selber behandeln) [add] Du könntest in dein Programm ein Logsystem integrieren und dort verschiedene Stellen loggen. So findst du raus, wie weit dein Programm in der Bearbeitung kommt. |
Re: exe startet nur auf Entwickler-PC
Danke für Eure Antworten.
Das mit dem Log habe ich schon integriert. Beim ersten Create des ersten Forms, soll es in ein Log schreiben:'Form1 kreiert'. Das wird nicht geschrieben auf dem nicht-Entwickler-PC. @hoika Die Datenanbindung geschieht über dbxexpress. Die libMySQL.dll ist im system32 - Ordner. Den depency walker habe ich gefunden. Werde mit dem mal auf dem nE-PC testen. |
Re: exe startet nur auf Entwickler-PC
|
Re: exe startet nur auf Entwickler-PC
Die dbxdrivers.ini/dbxconnections.ini sind auf den nE-PC in C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\dbexpress.
In der Registry in HKEY_LOCAL_MACHINE\Software\Borland\BDS\5.0\DBExpr ess sind Einträge die auf die dbxdrivers.ini/dbxconnections.ini und die dll's zeigen. Das passt also. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BDS\5.0\DBExpr ess] "Connection Registry File"="C:\\Dokumente und Einstellungen\\All Users\\Dokumente\\RAD Studio\\dbExpress\\dbxconnections.ini" "DLLPATH"="C:\\Dokumente und Einstellungen\\All Users\\Dokumente\\RAD Studio\\dbExpress" "Driver Registry File"="C:\\Dokumente und Einstellungen\\All Users\\Dokumente\\RAD Studio\\dbExpress\\dbxdrivers.ini" In der dbxconnections.ini, im MySQL-Abschnitt ist richtig drin: [MYSQLCONNECTION] DriverName=MySQL HostName=localhost Database=Bildertest User_Name=<username> Password=<passwort> BlobSize=-1 ErrorResourceFile= LocaleCode=0000 Compressed=False Encrypted=False Tut aber trotzdem nicht.... :wall: |
Re: exe startet nur auf Entwickler-PC
Ich glaube auch nicht, dass es an der Datenbankanbindung scheitert,
denn wenn ich den MySQL-Server stoppe und das Progi starte, müsste zumindest ne Fehlermeldung kommen. Kommt aber nix... tze |
Re: exe startet nur auf Entwickler-PC
Und wenn Du im Create des Hauptforms nach jedem Schritt einen Eintrag in Dein Log schreibst? Wie weit kommst Du dann?
|
Re: exe startet nur auf Entwickler-PC
Garnicht.
Der NE-PC macht nich nichtmal die logdatei im Ordner. Das Progi startet einfach nicht. Übrigends was bedeutet: [DCC Warnung] Ausgabe.pas(7): W1005 Unit 'FileCtrl' ist plattformspezifisch Meint er damit, dass es nur auf XP läuft? |
Re: exe startet nur auf Entwickler-PC
Zitat:
Edit: Kannst du mal alle Units aufschreiben, die du nutzt. |
Re: exe startet nur auf Entwickler-PC
dann packe doch mal den kompletten Inhalt von FormCreate in einen Try-Except-Block und lass Dir die Exception-Meldung im Log ausgeben. Vielleicht bringt uns das auch weiter.
|
Re: exe startet nur auf Entwickler-PC
Delphi-Quellcode:
Das ist alles...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg ,DBCtrls, DB, Grids, DBGrids, ComCtrls, ExtDlgs, Menus, Mask, DBTables, DBClient, MidasLib, ComObj,ShlObj, FileCtrl; |
Re: exe startet nur auf Entwickler-PC
Delphi-Quellcode:
bringt kein log...
procedure TMenue.FormCreate(Sender: TObject);
var IniFile, log : TextFile; zeile : String; label M10; begin //ini Datei einlesen try b_gestartet:=False; if not b_gestartet then begin AssignFile(IniFile,'bilder.ini'); Reset(IniFile); M10: ReadLn(IniFile,zeile); if copy(zeile,1,6)='[Pfad]' then ReadLn(IniFile,zeile) else goto M10; StOrdner:=copy(zeile,1,Length(zeile)); b_Gestartet := True; CloseFile(IniFile); end; except AssignFile(log,'log.txt'); ReWrite(log); WriteLn(log,'Fehler aufgetreten'); CloseFile(log); end; end; |
Re: exe startet nur auf Entwickler-PC
Mir ist da "MidasLib" aufgefallen. Hast Du die midas.dll auch mit weitergegeben?
|
Re: exe startet nur auf Entwickler-PC
Ja, die Midas.dll ist auf dem ZielSystem im System32-Ordner.
|
Re: exe startet nur auf Entwickler-PC
Dann gehe mal bitte in die Projektdatei und setze vor Application.initialize ein log.
|
Re: exe startet nur auf Entwickler-PC
Hallo,
in solch "undurchsichtigen" Fällen vertraue ich meist dem ProcessExplorer von Microsoft (ehemals SysInternals). ![]() "Show Lower Pane" (STRG-L), dann zeigt er pro Prozess an welche Files/Registry-Keys usw. an. Allerdings müsstest Du Dein Programm dann an irgendeiner Stelle anhalten können. Früher gab es noch einen extra FileMon.exe, leider finde ich den auf der MS-Seite nicht mehr. Der protokollierte auch, wenn die Exe wieder zuging. Bei Bedarf pm, dann sende ich Dir das Teil zu. |
Re: exe startet nur auf Entwickler-PC
@DelphiBandit
vielen Dank, den Filemon hab ich noch selber bei mir in den alten Downloads gefunden. Vielen Dank. @Sirius habe ich gemacht, auch hier wird kein Log angelegt. Der Startet das Ding einfach nicht. Vielleicht hat auch die explorer.exe nen Schuss. Muss ich nachher testen. |
Re: exe startet nur auf Entwickler-PC
Hallo,
schau bitte mal in der Entwicklungsumgebung, ob Du irgendwelche Datenbankobjekte dort geöffnet hast (im Objektinspektor prüfen). Wenn ja: Alles schließen und die entsprechenden Aufrufe für das Öffnen/Verbinden in das FormCreate packen.
Delphi-Quellcode:
procedure TMenue.FormCreate(Sender: TObject);
var IniFile, log : TextFile; zeile : String; label M10; begin // Damit hier nicht nur der letzte Fehler drinne steht, sondern ggfls. auch mehrere, bestenfalls alle ;-) AssignFile(log,'log.txt'); ReWrite(log); //ini Datei einlesen try b_gestartet:=False; if not b_gestartet then begin AssignFile(IniFile,'bilder.ini'); Reset(IniFile); M10: ReadLn(IniFile,zeile); if copy(zeile,1,6)='[Pfad]' then ReadLn(IniFile,zeile) else goto M10; StOrdner:=copy(zeile,1,Length(zeile)); b_Gestartet := True; CloseFile(IniFile); end; except on e : Exception do begin WriteLn(log,e.Message); // Damit Du sehen kannst, was für ein Fehler aufgetreten ist. end; end; // Hier alle Datenbankkomponenten ihre Verbindungen aufbauen lassen und dann Tabellen, Abfragen... öffnen. // Jeweils in etwa dieser Form: Try Connection1.Connected := True; Except on e : Exception do begin WriteLn(Log,Connection1.Name + ': ' + e.Message); end; end; Try Table12345.Open Except on e : Exception do begin WriteLn(Log,Table12345.Name + ': ' + e.Message); end; end; ... CloseFile(log); end; |
Re: exe startet nur auf Entwickler-PC
Ne dumme Anfängerfrage noch:
Delphi-Quellcode:
ist was?
on e : Exception do begin
e habe ich als
Delphi-Quellcode:
deklariert.
var
e : Exception; aber das 'on' kann er garnicht, irgendwie. Was fehlt mir da? hab ich was nicht kapiert? aber ich danke nahpets für diesen überaus konstruktiven Beitrag. So was in der Art wäre nun auch meine Idee gewesen, wusste aber nicht wie ich das korrekt umsetzen sollte. |
Re: exe startet nur auf Entwickler-PC
Ich habs.
Der Tipp on e : Exception do begin der war GOLDWERT. Vielen Dank an dieser Stelle!!! Damit habe ich in der Log.txt herausgefunden dass er die ganzen DBX-Sachen nicht finden kann. Die DBX-e in das Start-Verzeichnis kopiert, und schon lief es. Ich werde mir das gut merken, dass man sich die Logs schreiben kann. Hammer. Vielen Dank nochmal an alle, die sich wie ich einen Kopf gemacht haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz