Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Pascal und Delphi

Delphi 2009 Warnung wenn keine Connection

Mitglied: milecl

milecl (Level 1) - Jetzt verbinden

22.08.2012 um 14:21 Uhr, 3295 Aufrufe, 8 Kommentare

Hallo,

ich habe ein Delphi Programm, welches in einem Firmennetz läuft. Jetzt besteht der Wunsch, eine Fehlermeldung auszugeben, wenn keine Connection zur Datenbank aufgebaut werden kann.

Hat jemand eine Idee, wie man das implementieren kann?

Viele Grüße
milecl
Mitglied: Pjordorf
22.08.2012 um 15:03 Uhr
Hallo,

Zitat von milecl:
Hat jemand eine Idee, wie man das implementieren kann?
Ist doch eigentlich ganz einfach. Du gehst zu der Stelle in deinem Delphi Quellcode (Pascal, Object Pascal) wo du die Verbindung zur Datenbank versuchst aufzubauen und schaust welche Rückgabewerte oder Fehler kommen können und reagierst entsprechend mit einer (Desktop) Meldung oder einem (System) LOG Eintrag oder was immer du willst was da passieren soll.

Solltest du gezielte Fragen zu einer Stelle deines Quellcodes haben, kannst du dies ja gezielt hier für Hilfe anfragen

Gruß,
Peter
Bitte warten ..
Mitglied: mrtux
22.08.2012, aktualisiert um 15:47 Uhr
Hi !

Du kannst die Exception abfangen bzw. überschreiben und durch eigenen Code ersetzen.

mrtux
Bitte warten ..
Mitglied: milecl
22.08.2012 um 16:05 Uhr
Hallo Peter,

beim Klick auf die exe ist im Moment noch gar keine DB- Anbindung erforderlich. Erst bei Login. Nun wollen sie aber, das die exe erst gar nicht startet, wenn keine DB Connection möglich. Müsste ich das dann bei onCreate prüfen?

Viele Grüße
Claudia
Bitte warten ..
Mitglied: Pjordorf
22.08.2012 um 17:03 Uhr
Hallo,

Zitat von milecl:
erst gar nicht startet, wenn keine DB Connection möglich.
Das wird wohl sehr schwierig werden, oder? Die zu startende EXE Datei soll erst gestartet werden (Klick durch Anweder) wenn diese auch eine Verbindung zur Datenbank aufbauen kann (könnte). Die EXE Datei soll aber nicht gestartet werden (Klick durch Anwender) wenn die Datenbank nicht verfügbar ist.

Wenn also das starten der EXE Datei durch ein "Klick durch Anwender" erfolgt, wie soll hier also deine EXE Datei wissen das sie starten oder eben nicht starten soll? Um das festzustellen muss aber die EXE Datei gestartet werden, denn wie sonst kann der entsprechende Code (innerhalb der EXE Datei) ausgeführt werden?

Oder wird die EXE Datei durch eine andere Art als "Klick durch Anwender" gestartet?

Denk dran, wir wissen hier nicht was du alles weist. Wir sind hier Blind und Taub und lesen nur was du uns zum Lesen gibst. Und wir wissen auch nicht was du dir denkst oder vorstellst, denn würden wir das wissen könnten wir deine Gedanken lesen und bräuchten nicht zu raten

Du wirst uns entweder noch Informationen liefern müssen, oder selbst deine Frage genauer ausarbeiten, bzw. deine Auftraggeber (Bosse) nach genauerer Information Fragen müssen.

Gruß,
Peter
Bitte warten ..
Mitglied: milecl
22.08.2012 um 17:41 Uhr
Hallo Peter,

genau so, wie Du vermutet hast. Die exe startet durch Klick vom Anwender. Ich dachte, dass es vielleicht so etwas gibt, wie on open oder so ahnlich. Eben das beim Öffnen der exe sofort abgefragt wird, ob die Connection möglich wäre. Sollte das nicht der fAll sein, dann eben eine Fehlermeldung.

Viele Grüße
Claudia
Bitte warten ..
Mitglied: Pjordorf
22.08.2012 um 18:11 Uhr
Hallo,

Zitat von milecl:
Die exe startet durch Klick vom Anwender.
Und dir ist bewusst das deine Forderung nach
das die exe erst gar nicht startet, wenn keine DB Connection möglich
so niemals erfüllt werden kann. (Nicht in diesem universum)

wie on open oder so ahnlich
Wird es wohl auch in Delphi (Object Pascal) geben. Aber brauchst du das wirklich?

Eben das beim Öffnen der exe sofort abgefragt wird, ob die Connection möglich wäre. Sollte das nicht der fAll sein, dann eben eine Fehlermeldung.
Dann tu das doch. Bevor dein Hauptprogramm aufgerufen wird (Hauptmaske / Fenster etc.) kannst du doch eine Abfrage auf deine Datenquelle machen und je nach Erreichbarkeit entweder das Hauptprogramm starten oder eben ein anderes Fenster mit dem Hinweis das die Datenquelle xyz nicht verfügbar sei, einen Eintrag ins LOG schreibst und dem Anwender ein OK Button gibst damit Er/Sie die Anwendung benutzergesteuert beendet. Wo du das in deinem Programm einbaust geht aus deinem nur dir bekannten Quellcode hervor.

Gruß,
Peter
Bitte warten ..
Mitglied: mrtux
22.08.2012, aktualisiert um 21:27 Uhr
Hi!

So arbeitet kein erfahrener Entwickler, man arbeitet normalerweise ereignisorientiert und wertet die Ereignisse aus. Es ist auch völliger Blödsinn den Start einer Exe unterbinden zu wollen. Das geht entweder mit einer zweiten Exe, die vor der eigentlichen Exe gestartet wird oder über eine Batchdatei. Du könntest höchstens nach dem Start der Exe, also zur Laufzeit das Objekt bzw. die Komponente für den Datenbankzugriff erzeugen, die Verbindung prüfen und bei einem negativen Ergebnis der Verbindungsprüfung die Exe wieder beenden. Aber wie gesagt, normalerweise macht man das so eher nicht. Und wenn ich das richtig verstanden habe, sieht das der Kollege Pjordorf ähnlich.

Sei mir nicht böse aber wenn ich solche Threads lese wundert es mich nicht, mit was für Software ich mich manchmal herumärgern muss, wenn ich als reiner Admin unterwegs bin.

mrtux
Bitte warten ..
Mitglied: exchange
22.08.2012 um 22:03 Uhr
Hallo,
ich sehe da zwei Varianten für dich:

1.) Die Anmeldedaten zum DB Server sind gleich und es existiert eine eigene Benutzerverwaltung:
Beim starten die DB Verbindung herstellen (try except ansehen!) und Anwendung beenden.
Idealerweise lagert man so etwas in einem thread aus, da die Applikation im Timeout für den Anwender "einfriert".

2.) Die Anmeldedaten an der DB sind Benutzerspezifisch:
Versuchen eine Datenbankverbindung aufzubauen (ggf. Testuser) oder Rückmeldung auswerten (z.B. Access Denied oder Timeout).

Was Du dir ansehen solltest sind die Ereignisse on create und on show. Dann noch try except und da sind wir auch an einem wichtigen Punkt.

Ein Programm sollte niemals abstürzen und den Benutzer mit einem Hex Code verabschieden. Logfile und eine freundliche Meldung warum ist immer hilfreich. Auch für das Produkt zu verbessern.

Hast Du überhaupt den Quellcode und den passenden Compiler? Mit Delphi mal etwas auseinander gesetzt? Eigentlich ist das nämlich richtig simpel.

Ansonsten wirst Du ein Ziel leider nicht erfüllt bekommen, die exe startet IMMER, die führt früher nämlich nicht deinen Code aus

Gruß
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Wie kann ich eine Delphi-EXE-Datei öffnen?
gelöst Frage von imebroDatenbanken11 Kommentare

Hallo, wir nutzen ein Programm, welches in Delphi programmiert ist. Das Programm ist bereits 17 Jahre alt und wurde ...

Sonstige Systeme
Navision 2009 - Anpassungseinstellungen
gelöst Frage von MorslupatusSonstige Systeme2 Kommentare

Hallo Administratoren! Folgendes Problem: Ich möchte gerne die Benutzerdifinierten-Anpassungen im RTC von einem Benutzer kopieren und auf einen anderen ...

Entwicklung
Delphi-Script: Abgriff von Zeichen bis Zeichen
gelöst Frage von archivarioEntwicklung3 Kommentare

Hallo zúsammen, vielleicht kann mir jemand helfen. Ich muss in einem Delphi Programm per Script ein bestimmtes Zeichen rausfiltern ...

Linux
Bacula Backup Warnung
gelöst Frage von Hector-UserLinux

Das Backup läuft erfolgreich durch mit einer Warnung: Kennt die Fehlermeldung jemand ? Im Internet findet man Sie oft ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...