![]() |
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?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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