Delphi-PRAXiS

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?

TigerLilly 4. Jun 2020 08:08

AW: Datenbank fehler
 
:shock: Gar nichts. Ich habe nur die Frage des TE beantwortet.

bjma 4. Jun 2020 18:20

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.

Bernhard Geyer 4. Jun 2020 18:56

AW: Datenbank fehler
 
Kann es sein das du das gleiche Problem hast wie (hier auch mit Time-Feldern):

https://www.delphipraxis.net/1466429-post19.html

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:

https://www.microsoft.com/de-de/down....aspx?id=56567

bjma 9. Jun 2020 22:12

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.

PhilmacFLy 10. Jun 2020 07:40

AW: Datenbank fehler
 
Wenn es um dlls geht die ein Programm braucht bietet sich immer der Dependency Walker an. Mit dem kann man schauen welche Dependencies ein programm reinzieht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.

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