lin4ever 10 Geschrieben 20. November 2004 Melden Teilen Geschrieben 20. November 2004 Hallo zusammen, ich habe hier einen SQL 2000 auf nem W2003 Server laufen. Wenn ich mich nun mit der zugehoerigen Clientsoftware am SQL anmelde dann bekomme ich folgende Rückmeldung : SQL Error State:37000, Native Errorc Code: 8114, ODBC Error: [Microsoft]ODBC SQL Server Driver] Fehler beim Konvertieren von Datentyp varchar in datetime. Wenn ich die wegklicke bekomm ich >> The following query failed:(currmode) sp_insert_currmode 1,`2004-11-20 00 :00:00`,",2..... Hat jemand eine Ahnung was das zu bedeuten hat ?? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 21. November 2004 Melden Teilen Geschrieben 21. November 2004 Bei der konkreten SQL-Server-Anmeldung oder wenn du drin bist und dich auf eine DB verbinden willst? Hast du SP 3 auf dem SQL 2000 installiert? Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 21. November 2004 Autor Melden Teilen Geschrieben 21. November 2004 Die Meldung kommt wenn ich mich an der DB anmelden möchte. Das SP3 habe ich nicht installiert . Ich werde das gleich mal runterladen ( ich hoffe ich finds auch :-) und nachinstallieren. Meinst Du das kann das Problem sein ? Viele Gruesse Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 21. November 2004 Melden Teilen Geschrieben 21. November 2004 SP3a ist Voraussetzung für den Betrieb eines SQL 2003auf Windows 2003 ;) grizzly999 Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 21. November 2004 Autor Melden Teilen Geschrieben 21. November 2004 @grizzly aber ich hab doch einen sql2000 ? *verwirrung* Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 21. November 2004 Melden Teilen Geschrieben 21. November 2004 Sorry, Schreibfehler, muss natürlich heißen SQL 2000 auf Server 2003. Einen SQL 2003 gibt es nicht, die nächste Version heißt SQL 2005. grizzly999 Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 21. November 2004 Autor Melden Teilen Geschrieben 21. November 2004 so das sp3a ist nun drauf aber der Fehler ist immer noch der selbe ! Zitieren Link zu diesem Kommentar
SQL-SQL 10 Geschrieben 21. November 2004 Melden Teilen Geschrieben 21. November 2004 -----ich habe hier einen SQL 2000 auf nem W2003 Server laufen. Wenn ich mich nun mit der zugehoerigen Clientsoftware am SQL anmelde dann bekomme ich folgende Rückmeldung ---- Hallo! Also durch meine bescheidenen Kenntnisse vermute ich mal folgendes: Du meinst mit Clientsoftware eine Applikation, die Ihrerseits eine Verbindungsanforderung an den Server sendet...? Wenn ja gehts hier weiter: Ich vermute stark, dass du eine SP in die zu öffnende DB gestellt hast, die durch die Clientsoftware aufgerufen wird. Ja? OK dann überprüfe bitte mal das Datumsformat, das du an den Server (die Datendbank) sendest! Ich glaube da ist der Hund begraben! Ich vermute weiter stark, dass du beim Aufruf einen neuen Datensatz erzeugst und diesen durch eben diese SP in die DB schreiben lassen willst....(Vermutung durch den Namen der Prozedur in der Fehlermeldung) Überprüfe in dem Fall bitte die Schreibweise des Datums, das du im INSERT - Statement übergibst. So könntest du zB versuchen das Datum in eine Variable zu fassen, die ihrerseits dann das US (mm/dd/yy) oder ISO (yyyy-mm-dd) Format des Datums enthält und diese Variable in den SQL-String einbauen. strDatum = Format(DeinDatumsfeld, "\#yyyy\-mm\-dd\#") die obige Schreibweise betrifft VBA (ich weiß ja leider nicht welche Clientsoftware du verwendest) Wenn ich mit meinen vorherigen Vermutungen richtig liege, dann versuche das Statement der SP mit dem QueryAnalyzer auszuführen... gib dazu das Datum mal in genau der Schreibweise ein, die durch die Clientsoftware bereitgestellt wird! Du müsstest dann ebenfalls eine Fehlermeldung ernten. Nun kannst du das Format der Schreibweise verändern und es sollte dann funktionieren. Die Clientsoftware muss dann diese funktionierende Schreibweise verwenden und es sollte auch die SP fehlerfrei laufen. Der EnterpriseManager arbeitet da ein wenig großzügiger und lässt auch Datumsschreibweisen zu, die die DB bei Übergabe durch einen SQL-String nicht akzeptiert. Das Problem tritt durch die Übersetzung des EnterpriseManagers ins Deutsche auf. Der ganze Roman oberhalb stützt sich auf die Fehlermeldung, aus der ich entnehme, dass die Applikation ein Datum in Textformat an die DB in ein Feld des Datantyps Date übergeben will. Und die Schreibweise des Datums ist der Grund für das Versagen! Hoffe ich konnte dir ein bisschen helfen... Zitieren Link zu diesem Kommentar
SQL-SQL 10 Geschrieben 21. November 2004 Melden Teilen Geschrieben 21. November 2004 ....The following query failedcurrmode) sp_insert_currmode 1,`2004-11-20 00 :00:00`,",2..... ...Wenn mich meine Augen nicht täuschen ist da im Teil des Strings der die Zeit darstellt ein Leerzeichen zwischen 00 und :00 ....Erzeugst du in der Clientsoftware diesen Eintrag dann liegt das Versagen möglicherweise auch daran... in dem Fall schau mal nach woher das Leerzeichen kommt lg Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 22. November 2004 Autor Melden Teilen Geschrieben 22. November 2004 @SQL- Also erstmal vorweg : Ich bin quasi ein DB Newbie und kann mit ein paar Aussagen von Dir nichts anfangen. Ich hoffe Du/Ihr koennt mir trotzdem ein Stueck weiter helfen.... Ja das ist richtig es ist eine Clientsoftware die sich am SQL anmeldet . Was meinst Du mit SP ? Wie überprüfe ich welches Datumsformat an den Server gesendet wird ? Ja es ist richtig, das beim Erstaufruf der Software ( am Client!) ein neuer Datenersatz erzeugt wird ( es handelt sich um eine Hotelverwaltungssoftware die bisher nur -Standalone- unter DBASE lief und jetzt auf einen SQL-Server umgestellt wird) . Wie überprüfe ich die die Schreibweise des Datums, das im INSERT - Statement übergeben wird ? Wo/Wie trage ich die Variable in den SQL String ein ? Wie kann ich das Statement der SP mit dem QueryAnalyzer auszuführen um das DATUM einzugeben ? Viele Gruesse Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 22. November 2004 Autor Melden Teilen Geschrieben 22. November 2004 hallo sql-sql, in einem anderen forum habe ich diese (s.u)antwort bekommen. nur weiss ich nicht recht was ich damit anfangen soll ... hast du einen tipp ? -----auszug aus dem ##--fremd##--forum### ---------- Moin! Der Wert `2004-11-20 00 :00:00` ist kein gültiges Datetime. Hier ist ein Leerzeichen zu viel. Nun am besten mit dem Query Analyzer. Wenn Du das/die Leerzeichen löschen möchtest könnte ein Statement wie folgt aussehen: Update DeineTabelle Set DasFeld = Replace (DasFeld,'00 :','00:') Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 22. November 2004 Autor Melden Teilen Geschrieben 22. November 2004 kann mir niemand weiterhelfen ?? Zitieren Link zu diesem Kommentar
SQL-SQL 10 Geschrieben 26. November 2004 Melden Teilen Geschrieben 26. November 2004 @lin4ever du brauchst kein update auf die tabelle absetzen, da die applikation ja nicht in die datenbank schreiben kann. der fehler liegt in der schreibweise des datums. wahrscheinlich wird die fehlerhafte schreibweise von der applikation geliefert. überprüfe das feld, in dem das datum erzeugt wird und berichtige ggf auf schreibweise 2000-01-01 00:00:00 der Datumsstring darf keine leerzeichen enthalten ausser zwischen dem tag und dem ersten nullenpaar der zeitangabe. ---> mit SP ist eine stored procedure gemeint --> diese erhält von deiner applikation den datumsstring in besagt falschem format geliefert. das auszuführende insert-statement schlägt dann eben mit den geposteten fehlermeldungen fehl. der umfang dieses forums reicht leider nicht aus um dir grundsätzlichkeiten des programmierens oder administratives mit dem sql-server beizubringen. lg sql-sql Zitieren Link zu diesem Kommentar
lin4ever 10 Geschrieben 26. November 2004 Autor Melden Teilen Geschrieben 26. November 2004 und wie berichtigt man nun dieses fehlverhalten ? ist das forum nur dafür gedacht um um den heissen brei zu reden ? na dann sollte man dieses aber ganz schnell umbenennen ... Zitieren Link zu diesem Kommentar
SQL-SQL 10 Geschrieben 28. November 2004 Melden Teilen Geschrieben 28. November 2004 @lin4ever so herr kollege - hier wird nicht um den heissen brei geredet - soviel mal gleich vorab! ich habe bereits einmal geschrieben, dass ich deine applikation nicht kenne und daher keine expliziten aussagen treffen kann! nun noch einmal ganz langsam zum mitschreiben: deine applikation erzeugt ein datum in einer fehlerhaften schreibweise. ich kann dir nicht sagen WO und WIE das passiert, da ich das ding nicht kenne! suche nach der stelle im programmcode, an der das leerzeichen in diesen datumsstring gelangt und berichtige dies in der angegebenen weise - dann funktioniert auch das insert-statement auf deinen sql-server! mit mehr kann ich dir hier nicht helfen mfg sql-sql Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.