Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Windows 8.1 Pro mit Firbird 2.5.3 (https://www.delphipraxis.net/184045-windows-8-1-pro-mit-firbird-2-5-3-a.html)

Walter Landwehr 21. Feb 2015 13:52

Datenbank: Firbird • Version: 2.5.3 • Zugriff über: IBO

Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo,

ich bin schier am verzweifeln mit Windows 8.1 Pro als User im Netz. Ich habe auf einen Server SBS 2011 Firebird und meine Anwendung installiert. Mit Win7 User funktioniert alles wunderbar. Nur mir Win8.1 User läuft die Anwendung mal und mal nicht, dann bekomme ich laufend Schutzverletzungen. Ich verstehe nicht wo der Unterschied zwischen Win7 und Win8 sein soll.

Meine Frage: Gibt es für Windows 8 beim installieren von Firbird auf dem Server bestimmtes zu beachten? Hat hier jemand Erfahrung? Gibt es vielleicht Rechte Probleme?

Protocol = TCPIP
Databasename und Server sind richtig eingetragen.

harfes 21. Feb 2015 15:24

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hatte (vermutlich) das gleiche Problem und habe einfach die Win 8.1 Firewall ausgeschaltet (die ist bei Win8 ein wenig schärfer als bei Win7 - und genauso überflüssig...) - danach ging's einwandfrei. Ansonsten würde ich auch mal auf den Virenschutz schauen (und wenn's eines dieser überflüssigen Komplettpackete mit Firewall und/oder Verhaltensüberwachung ist, dann natürlich auch die anschauen...). Und wenn aus irgendwelchen Gründen die Firewall aktiv sein muss, dann den FB-Port (Standard 3050) und Deine Prozesse dort ausschliessen.

Hartmut

Walter Landwehr 21. Feb 2015 16:35

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Ok habe schon viel mit der Firewall ausprobiert, aber kein Ergebnis erhalten. Vielleicht noch der Hinweis in der firebird.log habe folgende Einträge:

IQ-SERVER (Server) Sat Feb 21 17:01:43 2015
INET/inet_error: read errno = 10054

Vielleicht kann man was damit anfangen.

harfes 21. Feb 2015 17:20

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hmmm...Onkel Google gibt dazu folgendes her: "Multiple entries in interbase.log or firebird.log with errors 10054, 10038, 10093, etc. These errors are caused by network problems - check your hubs, network adapters, etc. It is not an InterBase or Firebird error in itself, but it may cause problems."
Also: feste IP oder DHCP am Client? Gateway und DNS korrekt? Verbindungsstring zur DB mit Servername oder IP? Wenn Servername, wird dieser korrekt aufgelöst?

Hartmut

Walter Landwehr 21. Feb 2015 18:05

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Habe ich alles schon probiert. Ich habe es auf 2 unabhängigen Netzwerken probiert. Probleme machen grundsätzlich nur die Windows 8 Clients, aber auch nicht alle und das ist das verrückte. Es kommen die Zugriffsverletzungen beim disconnect der Datenbank.

tsteinmaurer 21. Feb 2015 19:05

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Laufend Schutzverletzungen? Wie sehen die konkret aus?

Walter Landwehr 21. Feb 2015 19:30

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier die Fehler im Anhang.

tsteinmaurer 22. Feb 2015 09:34

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Aus deinem ersten Posting:
Zitat:

Databasename und Server sind richtig eingetragen.
Kann ich mir bei folgender angehängten Fehlermeldung von dir nicht vorstellen.
Code:
Exception EIB_ConnectionError in Modul NatuPrax.exe bei 00284AC4. DatabaseName cannot be blank.

Walter Landwehr 22. Feb 2015 10:31

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo Thomas,

ich habe hier im Netz 1 Windows 7 Client und 3 Windows 8 Clients. Auf den Windows 7 läuft alles reibungslos. Auf 1 Windows 8 auch. Auf den beiden anderen läuft die Anwendung richtig, nur beim verlassen der Anwendung kommen diese Meldungen. Ich bin hier ziemlich ratlos. Ich hatte erst gedacht es liegt an IBO, habe mir deshalb nochmals heute die neueste Version installiert, aber mit gleichem Misserfolg.

Bei dem Servereintrag habe ich es mit IP und Namen versucht beides hat das gleiche Ergebnis.

IBExpert 22. Feb 2015 11:54

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
da wir mit diversen win81pro clients täglich zu tun haben, liegt das ziemlich sicher nicht an Firebird.

Klassiker sind fehlende oder falsche DLLs.


Ich würde an deiner Stelle erst mal die Rechner nach gds32.dll und fbclient.dll untersuchen, falls vorhanden, dann einfach mal versuchen zu löschen. Nächster Schritt: Installier auf dem Rechner einen Firebird 2.5.3 client von der Firebird seite, da die Software vermutlich 32 Bit ist, muss das der 32 Bit client sein, der dann am besten die fbclient.dll als gds32.dll mitkopieren soll (ist eine Option im setup). Und danach ggf einfach noch mal deine Software testen.

Walter Landwehr 22. Feb 2015 12:19

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
muss demzufolge auch auf dem Server Firebird 32 Bit installiert sein und welche Version Classic oder Superserver.

mkinzler 22. Feb 2015 12:36

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Nein. Der Client muss zur Exe passen (32Bit/64Bit), der Server kann hier 64Bit sein, aber am Besten die selbe Firebirdversion.

Walter Landwehr 22. Feb 2015 13:12

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
OK, ich habe jetzt mal auf dem Server Firbird 2.5.3 Superserver installiert. Auf den Clients die entsprechenden Client Version installiert. Ich kann das Programm aufrufen und mit arbeiten. Beim Beenden des Programms kommt mal keine Meldung und dann wieder Schutzverletzungen. Ich frage mich nur, warum dies bei den Win8.1 Rechnern so ist und nicht bei den Win7 Rechnern. Firewall habe ich komplett deaktiviert.

tsteinmaurer 22. Feb 2015 14:10

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Walter,

du musst uns schon wieder sagen, wie die Fehlermeldungen genau lauten. Leider können wir nicht hellsehen. Wenn gds32.dll oder fbclient.dll direkt vorkommt, dann könnte es sich um eine Inkompatibilität zwischen Client und Server handeln. Wenn das nicht vorkommt, dann ist es mit Sicherheit hausgemacht. Vielleicht schreibst du beim Programmende irgendwo was in ein Ini-File rein, was dir dann z.b. durch mangelende Berechtigungen um die Ohren fliegt?

Solltest du EurekaLog haben, dann könnte dir ein Stacktrace direkt auf die Stelle in deinem Code hindeuten.

Walter Landwehr 22. Feb 2015 16:55

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo,

da ja die Anwendung unter den Windows 7 Rechnern und an einigen Windows 8 Rechnern funktioniert, kann es wohl nicht am Code liegen. Ich habe nun mal alle IP's festvergeben und nun funktioniert es auch einigermaßen. Warum auch immer. Wir haben die Befürchtung das hier ein Speedport der Telekom irgendwie dazwischenschlägt. Man kann bei diesem Gerät nicht IPv6 konfigurieren bzw. abschalten.

Vielen Dank zunächst mal an alle Beteiligten.

mkinzler 22. Feb 2015 17:00

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Greifen die Clients von remote zu? Oder steht der Server woanders?

Walter Landwehr 23. Feb 2015 17:18

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Nein der Server steht schon in der Firma und die Clients greifen direkt per IP zu.

mkinzler 23. Feb 2015 18:36

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Dann dürfte der Router keine Rolle spielen.

Walter Landwehr 26. Feb 2015 14:43

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich muss nochmals auf dieses Phänomen zurückkommen. In der Anlage einmal die Meldungen und wann diese auftreten. Ich bin hier schier ratlos und am verzweifeln. Warum funktioniert es an einigen Windows 8 Rechnern und an anderen nicht. Auf allen anderen Betriebssystemen funktioniert es ja.

IBExpert 26. Feb 2015 16:51

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
das deutet sehr stark auf seltsame Konstrukte im TLoginFrm hin. Was passiert denn da? lässt sich das formular in Delphi Öffnen? Hat es evtl. Komponenten, die zu deiner aktuellen Version nur begrenzt kompatibel sind?

Was aber dein if not TLoginFrm.Execute soll ist mit komplett schleierhaft? Wenn es eine Instanz LoginFrm:TLoginFrm gibt, dann rufe darüber die Methode auf LoginFrm.Execute , aber so niemals ....

Walter Landwehr 26. Feb 2015 17:14

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
Warum geht es denn auf einigen Windows 8 Rechnern und bei einigen nicht und warum haben die anderen Betriebssysteme keine Probleme. Ich habe fast den Verdacht das es mit irgendwelchen Rechten zu tun hat. im Anhang mal die Login.pas Die lässt sich auch in Delphi öffnen.

Ich benutze IBO 5.5.5 2152 und die sollten mit Delphi XE2 passen. Vor allen weiß ich nicht wo man suchen soll. Beim Debuggen fliege ich immer beim connecten oder disconnecten raus. Aber wie gesagt nicht immer.

mquadrat 27. Feb 2015 10:42

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Also das hört sich für mich eher nach einem Problem mit dem Freigeben der Objekte an. Ein ungültiger Zeiger hat auf jeden Fall mal nichts mit der Firewall oder dem Netz an sich zu tun. Das Speicherhandling wird sich zwischen 7 und 8 wohl so verändert haben, dass der Fehler bei Win 7 schlicht nicht zu Tage tritt (aber wahrscheinlich genau so besteht)

Walter Landwehr 27. Feb 2015 16:40

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Dann Frage ich mich warum es auf einen Win 8 Rechner geht und auf einen anderen nicht. Alle Verzeichnisse die relevant sind, sind freigegeben für schreiben und lesen.

hoika 7. Mär 2015 05:15

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo,
ich hätte gern mal die DPR-Datei gesehen.
Binde mal MadExcept ein und zeige uns das Log.

Heiko

Walter Landwehr 7. Mär 2015 09:48

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK, hier die dpr Datei.
Delphi-Quellcode:
program NatuPrax;

uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  Vcl.Forms,
  Main in 'Main.pas' {frmMain},
  ProjectConstants in 'Utils\ProjectConstants.pas',
  Constants in 'Utils\Constants.pas',
  ToolsOperation in 'Utils\ToolsOperation.pas',
  ToolsForm in 'Utils\ToolsForm.pas',
  ToolsComponent in 'Utils\ToolsComponent.pas',
  ToolsSystem in 'Utils\ToolsSystem.pas',
  Login in 'Login.pas' {LoginFrm},
  modul in 'modul.pas' {dmMain: TDataModule},
  ToolsMyForm in 'Utils\ToolsMyForm.pas',
  ListenDruck in 'Utils\ListenDruck.pas' {frmListenDruck},
  LokaleEinstellungenForm in 'NatuPrax\LokaleEinstellungenForm.pas' {LokaleEinstellungenFrm},
  IQEditor in 'Utils\IQEditor.pas' {IQEditorFrm},
  OptionenForm in 'NatuPrax\OptionenForm.pas' {frmOptionen},
  Vcl.Themes,
  Vcl.Styles,
  ToolsDatabase in 'Utils\ToolsDatabase.pas',
  MandantenForm in 'NatuPrax\MandantenForm.pas' {MandantenFrm},
  DBConfig in 'NatuPrax\DBConfig.pas' {frmDBConfig},
  RegistrierungForm in 'NatuPrax\RegistrierungForm.pas' {RegistrierungFrm},
  PraxisDatenForm in 'Grundlagen\PraxisDatenForm.pas' {PraxisdatenFrm},
  UmsatzSteuerForm in 'Grundlagen\UmsatzSteuerForm.pas' {UmsatzSteuerFrm},
  KontoSuchenForm in 'SuchFormulare\KontoSuchenForm.pas' {KontoSuchenFrm},
  DesignerForm in 'Dienstprogramme\DesignerForm.pas' {DesignerFrm},
  daIBO in 'Dienstprogramme\daIBO.pas',
  LookupsForm in 'Grundlagen\LookupsForm.pas' {LookupsFrm},
  PLZSuchenForm in 'SuchFormulare\PLZSuchenForm.pas' {PLZSuchenFrm},
  TextbausteineForm in 'Grundlagen\TextbausteineForm.pas' {TextbausteineFrm},
  FerientermineForm in 'Grundlagen\FerientermineForm.pas' {FerientermineFrm},
  Historie in 'Hilfe\Historie.pas' {Historiefrm},
  AboutForm in 'Hilfe\AboutForm.pas' {AboutBox},
  HotlineForm in 'Hilfe\HotlineForm.pas' {HotlineFrm},
  RechnungsSerienDruck in 'Dienstprogramme\RechnungsSerienDruck.pas' {RechnungsSerienDruckFrm},
  p_PADHeilpraktiker in 'Dienstprogramme\p_PADHeilpraktiker.pas',
  p_PADInterface in 'Dienstprogramme\p_PADInterface.pas',
  Stapeldruck in 'Dienstprogramme\Stapeldruck.pas' {frmStapeldruck},
  Geloeschte_Rechnungen in 'Dienstprogramme\Geloeschte_Rechnungen.pas' {frm_Geloeschte_Rechnungen},
  OriginalListenForm in 'Dienstprogramme\OriginalListenForm.pas' {OriginalListenFrm},
  asDBUtils in 'Terminkalender\asDBUtils.pas',
  asUtils in 'Terminkalender\asUtils.pas',
  MitarbeiterForm in 'Stammdaten\MitarbeiterForm.pas' {MitarbeiterverwaltungFrm},
  MitarbeiterSuchenForm in 'SuchFormulare\MitarbeiterSuchenForm.pas' {MitarbeiterSuchenFrm},
  InfoDatenForm in 'Utils\InfoDatenForm.pas' {InfoDatenFrm},
  ToolsReportBuilder in 'Utils\ToolsReportBuilder.pas',
  AdressenForm in 'Stammdaten\AdressenForm.pas' {AdressverwaltungFrm},
  LieferantenSuchenForm in 'SuchFormulare\LieferantenSuchenForm.pas' {LieferantenSuchenFrm},
  LieferantenverwaltungForm in 'Stammdaten\LieferantenverwaltungForm.pas' {LieferantenverwaltungFrm},
  AdressenSuchenForm in 'SuchFormulare\AdressenSuchenForm.pas' {AdressenSuchenFrm},
  ArtikelverwaltungForm in 'Stammdaten\ArtikelverwaltungForm.pas' {ArtikelverwaltungFrm},
  ArtikelSuchenForm in 'SuchFormulare\ArtikelSuchenForm.pas',
  DiagnoseForm in 'Stammdaten\DiagnoseForm.pas' {DiagnoseFrm},
  DiagnosenSuchenForm in 'SuchFormulare\DiagnosenSuchenForm.pas' {DiagnosenSuchenFrm},
  GebuehrenForm in 'Stammdaten\GebuehrenForm.pas' {GebuehrenFrm},
  GebuehrenSuchenForm in 'SuchFormulare\GebuehrenSuchenForm.pas' {GebuehrenSuchenFrm},
  KettenForm in 'Stammdaten\KettenForm.pas' {KettenFrm},
  MedikamenteSuchenForm in 'SuchFormulare\MedikamenteSuchenForm.pas' {MedikamenteSuchenFrm},
  MedikamentForm in 'Stammdaten\MedikamentForm.pas' {MedikamentFrm},
  MedikamentenUpdate in 'Utils\MedikamentenUpdate.pas' {MedikamentenUpdaterFrm},
  RezepturenSuchenForm in 'SuchFormulare\RezepturenSuchenForm.pas' {RezepturenSuchenFrm},
  RezepturenForm in 'Stammdaten\RezepturenForm.pas' {RezepturenFrm},
  KraeuterSuchenForm in 'SuchFormulare\KraeuterSuchenForm.pas' {KraeuterSuchenFrm},
  KraeuterverwaltungForm in 'Stammdaten\KraeuterverwaltungForm.pas' {KraeuterverwaltungFrm},
  KraeuterKalkSuchenForm in 'SuchFormulare\KraeuterKalkSuchenForm.pas' {KraeuterKalkSuchenFrm},
  KraeuterKalkulationForm in 'Stammdaten\KraeuterKalkulationForm.pas' {KraeuterKalkulationFrm},
  KassenbuchForm in 'Buchhaltung\KassenbuchForm.pas' {KassenbuchFrm},
  KassenbuchSuchenForm in 'SuchFormulare\KassenbuchSuchenForm.pas' {KassenbuchSuchenFrm},
  ReferenzdatenLoeschenForm in 'Buchhaltung\ReferenzdatenLoeschenForm.pas' {ReferenzdatenLoeschenFrm},
  FinanzBuchhaltungForm in 'Buchhaltung\FinanzBuchhaltungForm.pas' {FinanzBuchhaltungFrm},
  FibuSuchenForm in 'SuchFormulare\FibuSuchenForm.pas' {FibuSuchenFrm},
  BuchungstexteForm in 'Buchhaltung\BuchungstexteForm.pas' {BuchungstexteFrm},
  KontenForm in 'Buchhaltung\KontenForm.pas' {KontenFrm},
  FarbenFuerStatistikForm in 'Buchhaltung\FarbenFuerStatistikForm.pas' {FarbenFuerStatistikFrm},
  OffenePostenForm in 'Buchhaltung\OffenePostenForm.pas' {OffenePostenFrm},
  JahresStatistikForm in 'Buchhaltung\JahresStatistikForm.pas' {JahresStatistikFrm},
  MahnungForm in 'Buchhaltung\MahnungForm.pas' {MahnungFrm},
  Tagesuebersicht in 'Buchhaltung\Tagesuebersicht.pas' {TagesuebersichtFrm},
  Rechnungsuebersicht in 'Buchhaltung\Rechnungsuebersicht.pas' {Rechnungsuebersichtfrm},
  ZahlungslisteForm in 'Buchhaltung\ZahlungslisteForm.pas' {ZahlungsListeFrm},
  Umsatz in 'Buchhaltung\Umsatz.pas' {Umsatzfrm},
  PatientForm in 'Stammdaten\PatientForm.pas' {PatientFrm},
  DiagnosenBlattFrame in 'Stammdaten\DiagnosenBlattFrame.pas' {DiagnosenBlattFrme: TFrame},
  praxisCENTER3_TLB in 'Utils\praxisCENTER3_TLB.pas',
  EventSink in 'Utils\EventSink.pas',
  PatientSuchenForm in 'SuchFormulare\PatientSuchenForm.pas' {PatientSuchenFrm},
  BiorhythmusForm in 'Stammdaten\BiorhythmusForm.pas' {BiorhythmusFrm},
  BiorithmAlgorithm in 'Stammdaten\BiorithmAlgorithm.pas',
  OpenOffice in 'Utils\OpenOffice.pas',
  SerienBriefExternForm in 'Dienstprogramme\SerienBriefExternForm.pas' {SerienBriefFrm},
  PatientenPreiseForm in 'Stammdaten\PatientenPreiseForm.pas' {PatientenPreiseFrm},
  BMIForm in 'Stammdaten\BMIForm.pas' {BMIFrm},
  ArbeitsunfaehigkeitForm in 'Stammdaten\ArbeitsunfaehigkeitForm.pas' {ArbeitsunfaehigkeitFrm},
  PflegeleistungenForm in 'Stammdaten\PflegeleistungenForm.pas' {PflegeleistungenFrm},
  SetGeneratorForm in 'Utils\SetGeneratorForm.pas' {SetGeneratorFrm},
  EinweisungForm in 'Stammdaten\EinweisungForm.pas' {EinweisungFrm},
  BestaetigungForm in 'Stammdaten\BestaetigungForm.pas' {BestaetigungFrm},
  BankverbindungForm in 'Stammdaten\BankverbindungForm.pas' {BankVerbindungFrm},
  RechnungsEmpfaengerForm in 'Stammdaten\RechnungsEmpfaengerForm.pas' {RechnungsEmpfaengerFrm},
  PatientenKettenForm in 'Stammdaten\PatientenKettenForm.pas' {PatientenKettenFrm},
  TermineForm in 'Terminkalender\TermineForm.pas' {TermineFrm},
  QuittungForm in 'Stammdaten\QuittungForm.pas' {QuittungFrm},
  DelphiTwain in 'Utils\DelphiTwain.pas',
  DelphiTwain_VCL in 'Utils\DelphiTwain_VCL.pas',
  VorschauForm in 'Stammdaten\VorschauForm.pas' {VorschauFrm},
  VorschauGrossForm in 'Stammdaten\VorschauGrossForm.pas' {VorschauGrossFrm},
  DokumenteForm in 'Stammdaten\DokumenteForm.pas' {DokumenteFrm},
  SicherungsForm in 'Dienstprogramme\SicherungsForm.pas' {SicherungsFrm},
  KalenderRessourcen in 'Terminkalender\KalenderRessourcen.pas',
  OptionsStorage in 'Terminkalender\OptionsStorage.pas',
  TermineSuchenForm in 'SuchFormulare\TermineSuchenForm.pas' {TermineSuchenFrm},
  ManageResourcesForm in 'Terminkalender\ManageResourcesForm.pas' {fmManageResources},
  EditDisabledRangeForm in 'Terminkalender\EditDisabledRangeForm.pas' {fmEditDisabledRange},
  ArbeitszeitEinstellenForm in 'Terminkalender\ArbeitszeitEinstellenForm.pas' {ArbeitszeitEinstellenFrm},
  PatientEventForm in 'Terminkalender\PatientEventForm.pas',
  TagesKalenderForm in 'Terminkalender\TagesKalenderForm.pas',
  TerminplanerEinstellungenForm in 'Terminkalender\TerminplanerEinstellungenForm.pas',
  TierhalterForm in 'Tiere\TierhalterForm.pas' {TierhalterFrm},
  cxSchedulerEventEditor in 'C:\Program Files (x86)\DevExpress VCL\ExpressScheduler\Sources\cxSchedulerEventEditor.pas' {cxSchedulerEventEditorForm},
  TerminartenForm in 'Terminkalender\TerminartenForm.pas',
  LoescheTermineForm in 'Terminkalender\LoescheTermineForm.pas' {LoescheTermineFrm},
  CalendarStrs in 'Terminkalender\CalendarStrs.pas',
  cxSchedulerOutlookExchange in 'Terminkalender\cxSchedulerOutlookExchange.pas',
  FeiertagEditDialog in 'Terminkalender\FeiertagEditDialog.pas' {FeiertagEditDlg},
  PatientenKarteiForm in 'Stammdaten\PatientenKarteiForm.pas' {PatientenKarteiFrm},
  PatientenBlattForm in 'Stammdaten\PatientenBlattForm.pas' {PatientenblattFrm},
  KettenSuchenForm in 'SuchFormulare\KettenSuchenForm.pas' {KettenSuchenFrm},
  PatientenKettenSuchenForm in 'SuchFormulare\PatientenKettenSuchenForm.pas' {PatientenKettenSuchenFrm},
  VergebeneRGPositionenSuchenForm in 'SuchFormulare\VergebeneRGPositionenSuchenForm.pas' {VergebeneRgPositionenSuchenFrm},
  VorherigeLeistungenSuchenForm in 'SuchFormulare\VorherigeLeistungenSuchenForm.pas' {VorherigeLeistungenSuchenFrm},
  MonatskalenderForm in 'Stammdaten\MonatskalenderForm.pas' {MonatskalenderFrm},
  PositionenForm in 'Stammdaten\PositionenForm.pas' {PositionenFrm},
  PlainTextForm in 'Utils\PlainTextForm.pas' {PlainTextFrm},
  RechnungForm in 'Stammdaten\RechnungForm.pas' {RechnungFrm},
  VergebeneLeistungenSuchenForm in 'SuchFormulare\VergebeneLeistungenSuchenForm.pas' {VergebeneLeistungenSuchenFrm},
  BenutzerForm in 'Dienstprogramme\BenutzerForm.pas' {BenutzerverwaltungFrm},
  BehandlungsTagForm in 'Dienstprogramme\BehandlungsTagForm.pas' {BehandlungstagFrm},
  PasswortForm in 'Utils\PasswortForm.pas' {PassWortFrm},
  QueryBuilderForm in 'QueryBuilder\QueryBuilderForm.pas' {QueryBuilderFrm},
  QBResource in 'QueryBuilder\QBResource.pas',
  JclFileUtils in 'Utils\JclFileUtils.pas',
  NotizbuchForm in 'Dienstprogramme\NotizbuchForm.pas' {NotizbuchFrm},
  ImExportForm in 'Dienstprogramme\ImExportForm.pas' {ImExportFrm},
  UpdaterForm in 'Utils\UpdaterForm.pas' {UpdaterFrm},
  DatabaseUpdateForm in 'Utils\DatabaseUpdateForm.pas' {DatabaseUpdateFrm},
  SepaForm in 'Buchhaltung\SepaForm.pas' {Sepafrm},
  SepaToolsDLL_Declaration in 'Buchhaltung\SepaToolsDLL_Declaration.pas',
  Auswertung in 'Buchhaltung\Auswertung.pas' {Auswertungfrm},
  Serienbrief in 'Dienstprogramme\Serienbrief.pas' {frmSerienbrief},
  Serienmail in 'Dienstprogramme\Serienmail.pas' {frmSerienmail},
  see32 in 'APPS\see32.pas',
  keycode in 'APPS\keycode.pas',
  display in 'APPS\display.pas',
  KalenderForm in 'Terminkalender\KalenderForm.pas' {KalenderFrm},
  FibuExport in 'Buchhaltung\FibuExport.pas' {FibuExportFrm},
  Uebernahme in 'Dienstprogramme\Uebernahme.pas' {frmUebernahme};

{$R *.res}
   var Handle : THandle;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TdmMain, dmMain);
  Application.Run;
end.
und im Anhang die log Datei.

mm1256 7. Mär 2015 10:09

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Ich bin jetzt sicher kein Delphi-Guru, aber die Anzeige der Login-Form erscheint mir etwas "verbesserungswürdig". So mach ich das generell in meinen Formularen, dann gibt's auch mit der Formularfreigabe keine Probleme wenn innerhalb ShowModal Exception(s) auftreten, oder die Anzeige (aus Versehen???) mehrfach aufgerufen wird.

Delphi-Quellcode:
function LoginFrmExecute: Boolean;
begin
  with TLoginFrm.Create(Application) do
  try
    Result := ShowModal = mrOK;
  finally
    Release;
  end;
end;

Walter Landwehr 7. Mär 2015 10:50

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Habe die function mal geändert, bringt aber leider auch keine Verbesserung.

dataspider 9. Mär 2015 07:10

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Ich würde erst mal sicherstellen, dass immer die korrekte Firebird - DLL geladen wird.

Du hast ja IBO.

In die DPR:

Delphi-Quellcode:
begin
  IB_Session.IB_GetClientLibNameFunc := GetFBClientLibName; // 
  Application.Initialize;

  if not Connection.Login then
  begin
    Application.ProcessMessages; // ohne = Exception
    Application.Terminate;
  end;

  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
und noch die Funktion:

Delphi-Quellcode:
function GetFBClientLibName(aINIFIle: string = ''): string;
begin
  Result := ExtractFilePath(Application.ExeName) + SFBClientFileName;
end;
Dann kannst du die DLL ins Verzeichnis der EXE packen und es passt immer.

Zum Fehler beim Beenden.

Es ist immer eine gute Idee, Zugriffe auf die Connection beim Beenden (DisConnect) möglichst nicht in OnDestroy oder so zu packen.
Allenfalls BeforeDestruction überschreiben und dort rein (und inherited nach deinem Code). Für micht sieht es so aus, als ob bei deinem DisConnect die Connection schon am Zerbröseln ist.

Frank

Walter Landwehr 9. Mär 2015 10:30

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo Frank,

was heißt Connection.Login ? Meines erachtens fehlt hier was.

dataspider 9. Mär 2015 11:36

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Das ist die Nebenwirkung von Copy + Paste.

Das ist unwichtig bzw. meine Klasse für DB - Verbindung.
Es geht nur um die Zeile:

IB_Session.IB_GetClientLibNameFunc := GetFBClientLibName;

Ich würde die Verwendung der Firebird CLient DLL nicht dem Zufall überlassen.

Frank

Walter Landwehr 9. Mär 2015 12:04

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
OK, das habe ich eingebunden. Ich habe das Gefühl das nach dem Schließen der Anwendung noch auf eine Datei zugegriffen werden soll, die es aber nicht mehr gibt. Was wird zuletzt geschlossen das Main Formular = (Hauptformular) oder das Datenmodul?

dataspider 9. Mär 2015 14:17

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1292785)
OK, das habe ich eingebunden. Ich habe das Gefühl das nach dem Schließen der Anwendung noch auf eine Datei zugegriffen werden soll, die es aber nicht mehr gibt. Was wird zuletzt geschlossen das Main Formular = (Hauptformular) oder das Datenmodul?

Das hängt davon ab, wie es erzeugt wird.

Wo steht denn die Zeile:

dmMain.ibconMain.Connected := False; // kommt nachfolgende Meldung nur bei Win8.1 pro

wo eine Exception kommt.

Ich vermute, dass ibconMain schon beim Zerstören ist, während Connected auf False gesetzt wird.

Frank

Walter Landwehr 9. Mär 2015 15:42

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo,

so ich habe das ganze System jetzt mal auf einen Windows 8.1 pro installiert, da auf meinen Windows 7 keine Fehler kommen.

Hier mal mein Code in OnCloseQuery des Hauptformulars.

Delphi-Quellcode:
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var int: Integer;
begin
   inherited;
  if TagesKalenderFrm <> Nil then
    TagesKalenderFrm.Close;
  if not dmMain.MandantQry.Active then
    dmMain.MandantQry.Open;
  if ((dmMain.MandantQry.FieldByName('SICHERUNGSTAG').AsDateTime < Date)
  and (Constants.User.UserName = dmMain.ibqryOptionen.FieldByName('Sicherungsmann').AsString)) or
    (dmMain.ibqryOptionen.FieldByName('DATENSICHERUNG_ERZWINGEN').AsString = 'J') then
    begin
      int := MessageDlg('Eine Datensicherung wurde heute noch nicht durchgeführt.' + #13 +'Möchten Sie jetzt sichern?', mtConfirmation, [mbYes, mbNo, mbCancel], 0); // = mrYes then begin
      if int = mrYes then
      begin
         Datensicherung1Click(Self);
         CanClose := true;
      end;
     if (int = mrCancel) then
        Abort;
  end;
  timMain.Enabled := False;
//  dmMain.ibqryOptionen.Close;
//  dmMain.MandantQry.Close;
//  if dmMain.ibconNatuprax_Next.connected = True then
//     dmMain.ibconNatuprax_Next.connected := False;
//  if dmMain.ibconMedikament.connected = True then
//     dmMain.ibconMedikament.connected := False;
//  if dmMain.ibconMain.connected = True then
//     dmMain.ibconMain.connected := False;       // Hier kommt es direkt zu einem AV
//  if dmMain.ibconData.connected = True then
//     dmMain.ibconData.connected := False;
//  dmMain.Free;
//  dmMain := Nil;
//   if dmMain.ibconMain.Connected = True then
//     ShowMessage('On CloseQuery: Main ist connected');
end;
und hier mal die
Delphi-Quellcode:
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  Inherited;
  frmMain := Nil;  // Hier kommt nach einiger Zeit die Meldung Runtime Error 217
end;
Weiß immer noch nicht wo der Fehler in meinem Code ist.

Bin auch gerne bereit Eure Leistung zu bezahlen, wenn nur dieser Fehler bald weg ist.

Perlsau 9. Mär 2015 16:03

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
In deiner Destroy-Methode wird zuerst Inherited aufgerufen, was ansich schon dafür sorgt, die Instanz von TfrmMain zu zerstören. Danach greifst du aber noch einmal auf diese bereits zerstörte Instanz zu, indem du sie auf Nil zu setzen versuchst. "Normalerweise wird in der neuen Methode inherited dazu benutzt, um die “alte” geerbte Methode aufzurufen." (Delphi-Treff)

Übrigens sollte man Dinge, die beim Schließen einer Anwendung zu erledigen sind, nicht in OnCloseQuery legen, sondern in OnClose.

Zu zahlen ist hier nichts, das ist doch ein kostenloses Forum :-)

Daniel 9. Mär 2015 16:12

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Zitat:

Zitat von Perlsau (Beitrag 1292822)
In deiner Destroy-Methode wird zuerst Inherited aufgerufen, was ansich schon dafür sorgt, die Instanz von TfrmMain zu zerstören. Danach greifst du aber noch einmal auf diese bereits zerstörte Instanz zu, indem du sie auf Nil zu setzen versuchst.

Ich mache das auch manchmal, wenn ich die Form-Variable auf NIL setzen möchte. Diese Zuweisung auf NIL allein bringt auch keinen Fehler, da ja nicht mehr auf Methoden des (ehemaligen) Formulare zugegriffen wird. Das ist zugegebenermaßen nicht das schönste Pattern, aber manchmal muss man Dinge einfach auf NIL setzen. ;-)
Was ich sagen wollte: Der Fehler von Walter muss noch woanders stecken.


//Edit: Eins sehe ich gerade: Da oben wird mittels "Abort" eine stille Exception ausgelöst. Wenn man sich aber eh schon im OnCloseQuery befindet, kann man auch den Var-Parameter "CanClose" auf False setzen, wenn man das schliessen verhindern möchte.

Walter Landwehr 9. Mär 2015 16:33

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
OK, ich habe jetzt aus der TfrmMain.FormCloseQuery das Inherited und Abort herausgenommen sowie in der TfrmMain.FormDestroy alles aus kommentiert. Nun kommt beim schließen die Meldung InvalidPointer mit der Meldung "Ungültige Zeigeroperation".

dataspider 9. Mär 2015 17:03

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Walter,

vielleicht Zipst du mal die dpr, die MainForm und die DMMain zusammen und lädst das mal hoch.
Laut deiner DPR ist das Hauptformular ja dein Haupt - Datenmodul.

Da würde ich wirklich mal testen, wie die Freigabe erfolgt.

Frank

Walter Landwehr 9. Mär 2015 17:12

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK, hier die gewünschten Dateien.

Walter Landwehr 9. Mär 2015 17:16

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier nochmals mit den dfm Dateien.

dataspider 9. Mär 2015 20:50

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Deine Quellen stimmen nicht mehr...
dmMain wird nicht mehr erzeugt, aber egal...

Im OnCreate des DataModule hast du ein Application.Terminate.
Das macht IMHO Probleme und sollte dort raus.

Ich würde folgendes machen:

Delphi-Quellcode:
unit Modul;

interface

uses
  SysUtils, Classes;

type
  TdmMain = class(TDataModule)
  private
    procedure Init;
  public
    procedure AfterConstruction; override;
    procedure BeforeDestruction; override;
  end;

function dmMain: TdmMain;

var
  //dmMain: TdmMain;
  FdmMain: TdmMain = nil;

implementation

{$R *.dfm}

function dmMain: TdmMain;
begin
  if FdmMain = nil then
  begin
    FdmMain := TdmMain.Create(Application);
    FdmMain.Init;
  end;
  Result := FdmMain;
end;

procedure TdmMain.AfterConstruction;
begin
  inherited;
  // oder alternativ hier rein alles aus deinem Create
  // und das Init raus
end;

procedure TdmMain.BeforeDestruction;
begin
  // hier das DisConnect
  if ibconMain.Connected then
  begin
    ibconMain.CloseTransactions;
    ibconMain.DeallocateStatements;
    ibconMain.Disconnect;
  end;
  inherited;
end;

procedure TdmMain.Init;
begin
  // hier alles aus deinem OnCreate rein
end;

end.
Variable dmMain raus und dafür eine Funktion, dann braucht man sich um das Erzeugen nicht zu kümmern.
Das DisConnect in das Datenmodul, dann kann es aus dem MainForm raus.

Ich habe 2 alternative Varianten. Entweder Init oder AfterConstruction

Ich verwende Create und Destroy wirklich nur zum Erzeugen oder Freigeben eigener Objekte und Initialisierung von Variablen.
Alles Andere kommt nach dem vollständigen Erzeugen oder vor dem Zerstören.

Viel Glück!

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 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