Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Datenbank fehler (https://www.delphipraxis.net/204525-datenbank-fehler.html)

bjma 3. Jun 2020 17:24

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

jobo 3. Jun 2020 17:45

AW: Datenbank fehler
 
Du musst Deine Fehlerbeschreibung sicher deutlich vertiefen, um hilfreiche Hinweise zu erhalten.

juergen 3. Jun 2020 17:49

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?

bjma 3. Jun 2020 17:59

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.

hoika 3. Jun 2020 19:07

AW: Datenbank fehler
 
Hallo
was ist denn eine msql-Datenbank?

DeddyH 3. Jun 2020 19:26

AW: Datenbank fehler
 
Welchen Typ hat denn nun das Tabellenfeld, String oder Date?

bjma 3. Jun 2020 20:53

AW: Datenbank fehler
 
Das Tabellenzellen ist dateline.

Msql. Ist ms sql Server

DeddyH 4. Jun 2020 06:03

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:
Query.SQL.Text := 'INSERT INTO Tabelle(Datumsfeld) VALUES(:datum)';
Query.ParamByName('datum').AsDateTime := now;
Query.ExecSQL;
Dann können Dir auch länderspezifische Darstellungsoptionen egal sein.

TigerLilly 4. Jun 2020 07:03

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:
Convert(datetime, ' + QuotedStr(FormatDateTime('yyyymmdd', aDate)) + ', 112)
Bzw entsprechend, wenn du die Zeit auch dabei haben willst

DeddyH 4. Jun 2020 07:51

AW: Datenbank fehler
 
Und was genau spricht gegen die erwähnten SQL-Parameter?


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