![]() |
Datenbank fehler
Hallo,
Ich habe ein Problem das ich nicht greifen kann. Ich arbeite mit Delphi 10.2 Und win 10. Ich habe ein umfangreiches Programm zur Erfassung von Zeiten erstellt. Diese werden in einer msql Datenbank gespeichert. Die Berechnungen werden in meinem Delphi Programm vorgenommen. Nach Fertigstellung habe ich das Programm getestet. Keine Fehler. Nun wurde das Programm auf verschiedene Clients übertragen. Plötzlich bekomme ich die Fehlermeldung: Erwarte Date und erhalte Mvar. Auf einem weiteren Client läuft es ohne Probleme. Was läuft hier schief. Habe nächste Woche Deadline. Könnt Ihr mir helfen. Gruß Bernd |
AW: Datenbank fehler
Du musst Deine Fehlerbeschreibung sicher deutlich vertiefen, um hilfreiche Hinweise zu erhalten.
|
AW: Datenbank fehler
Hallo,
Sind evtl. die Datums- und/oder die Ländereinstellungen an den betroffenen Clients im Betriebssystem anders als auf den Clients, wo es funktioniert? |
AW: Datenbank fehler
Ich habe eine Idee.
Kann es sein das auf manchen Clients kein MS-Framwork installiert ist. Bisher habe ich hauptsächlich mit Mysql gearbeitet. Hier ist Framwork nicht notwendig. Auf meinem Prog-PC ist Framwork installiert. Die exakte Fehlermeldung lautet: Datenbank: Unterschiedliche Typen für Feld Datum; erwartet: Date; gefunden: WideString Habe aber bei der Eingabe (Datenbank war so schon vorhanden) Widestring mit Strtodate(Timedate) umgewandelt. |
AW: Datenbank fehler
Hallo
was ist denn eine msql-Datenbank? |
AW: Datenbank fehler
Welchen Typ hat denn nun das Tabellenfeld, String oder Date?
|
AW: Datenbank fehler
Das Tabellenzellen ist dateline.
Msql. Ist ms sql Server |
AW: Datenbank fehler
Was ist denn dateline? Meinst Du DateTime? Auf jeden Fall würde ich dringend empfehlen, statt irgendwelcher Typumwandlungen SQL-Parameter zu benutzen.
Delphi-Quellcode:
Dann können Dir auch länderspezifische Darstellungsoptionen egal sein.
Query.SQL.Text := 'INSERT INTO Tabelle(Datumsfeld) VALUES(:datum)';
Query.ParamByName('datum').AsDateTime := now; Query.ExecSQL; |
AW: Datenbank fehler
Das klingt, als ob der Server ein anderes Datumsformat erwartet, als der Client liefert. Dann erkennt der Server nicht, dass das ein Datum ist, sondern erkennt das als String = nVar.
Entweder sorgst du dafür, dass Server + Client immer dieselben Formateinstellungen haben, oder du convertierst das Datum immer so, dass es der Server jedenfalls versteht:
Code:
Bzw entsprechend, wenn du die Zeit auch dabei haben willst
Convert(datetime, ' + QuotedStr(FormatDateTime('yyyymmdd', aDate)) + ', 112)
|
AW: Datenbank fehler
Und was genau spricht gegen die erwähnten SQL-Parameter?
|
AW: Datenbank fehler
:shock: Gar nichts. Ich habe nur die Frage des TE beantwortet.
|
AW: Datenbank fehler
Nach einer anstrengenden Nachtsitzung habe ich das Problem gelöst.
Jeder Client benötigt Einträge wie er auf einen MS-Server zugreifen kann. Welche weiß ich nicht. Ich habe die MS SQL Management Console auf jedem Client installiert. Bei dieser Installation werden diese Einträge wahrscheinlich automatisch vorgenommen. Wichtig. Danach läuft es ohne Fehlermeldungen. Wieder etwas gelernt. Danke für eure Beiträge. |
AW: Datenbank fehler
Kann es sein das du das gleiche Problem hast wie (hier auch mit Time-Feldern):
![]() Also das der mitgelieferte MS Treiber von Windows nicht mit (aktellen) SQL Server-Versionen mehr vernünftig arbeiten kann? Normalerweise bin ich ja sowas bei Oracle-Treiber, welche von MS mitgeliefert werden gewohnt. Und es muss vermutlich nicht die Managementkonsolse sein, sondern es genügt vermutlich auch der Treiber: ![]() |
AW: Datenbank fehler
Auf Clients die den MySQL-Manager installiert haben gibt es keine Probleme. Das bedeutet es werden .dll installiert die Delphi benötigt. Nur welche.
Hat jemand einen Tipp. |
AW: Datenbank fehler
Wenn es um dlls geht die ein Programm braucht bietet sich immer der
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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