Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fehler bei einer Abfrage von einem Linux Server auf einen MS SQL Server per ODBC

Mitglied: DOHstemann

DOHstemann (Level 1) - Jetzt verbinden

14.10.2019 um 15:23 Uhr, 314 Aufrufe, 7 Kommentare

Hallo zusammen,

Systeme:

SuSE Enterprise 12
unixODBC
MS originaler ODBC Treiber ( ODBC Driver Name: libmsodbcsql-17.4.so.1.1
ODBC Driver Version: 17.04.0001 )

Windows Server Cluster
MS SQL 13 ( 2016 )

ich habe das Problem, dass ich eine Verbindung zu einem, auf einem Windows Cluster, installierten MSSQL Server aufbaue.
Die eigentliche odbc Verbindung funktioniert über isql ohne Probleme. Auch Abfragen funktioniert im isql ohne Probleme.

Wenn aber die Abfrage über ein Programm ausführt wird, dann läuft dieses in einen Fehler:

ioodbc Version 1.140
Connection Time: 0.020
DBMS: Microsoft SQL Server 13.00.5426
ODBC Version: 03.52
ODBC Driver Name: libmsodbcsql-17.4.so.1.1
ODBC Driver Version: 17.04.0001
Statement: SELECT MAN,AK,GRP_NAME,PC_NAME,PRM_AB,PRM_BEZ,PRM_BIS,PRM_WERT,PC_REG FROM L2001.PARMTAB ORDER BY GRP_NAME, MAN, AK, PC_NAME
SQLCODE: 0 SQLSTATE: 01004
Message: [Microsoft][ODBC Driver 17 for SQL Server]String data, right truncation
Rowsread: 1(300) Status Array: 5|
Fetch error because of row status[0]: 5
SQL ERROR: Fetch Error failed
Statement: SELECT MAN,AK,GRP_NAME,PC_NAME,PRM_AB,PRM_BEZ,PRM_BIS,PRM_WERT,PC_REG FROM L2001.PARMTAB ORDER BY GRP_NAME, MAN, AK, PC_NAME
SQLCODE: 0 SQLSTATE: 01004
Message: [Microsoft][ODBC Driver 17 for SQL Server]String data, right truncation
WARNING: Truncation occurred reading '2007-01-01' into Parameter.Prm_ab ( DDC_date(10) ). Length of source data is 23.
Source column: PRM_AB DATETIME

Im Endeffekt bedeutet der Fehler, dass am Ende des Feldes was abgeschnitten wird, weil das Feld zu Groß ist bzw anders definiert wird. An der Datenbank kann ich nichts ändern und
von einem anderen Windows Server ( alter Server ) gibt es auch keine Fehler. Heißt die Datenbank ist korrekt.
Ich vermute, dass bei der ODBC.ini, noch ein Parameter gesetzt werden muss. Ich weiß leider nur nicht welcher. Hier mal die odbc.ini:

[ODBC]
Description=ODBC
Driver=SQLServer
Server=tcp:IP,1433
Database=DATABASE
Language=us_english

Vielleicht hat einer von euch eine Idee.

Schonmal vielen Dank.
Mitglied: 141320
14.10.2019, aktualisiert um 15:47 Uhr
Message: [Microsoft][ODBC Driver 17 for SQL Server]String data, right truncation
WARNING: Truncation occurred reading '2007-01-01' into Parameter.Prm_ab ( DDC_date(10) ). Length of source data is 23.
Naja erst mal ist das ja nur eine Warnung, das bedeutet das von der SQL Datenbank ein DateTime-String aus der Spalte zurückgeliefert wird also Datum plus Uhrzeit ergibt mit Sekunden etc in Summe 23 Zeichen, aber dein Programm hier wohl nur ein reines Datum erwartet (10 Zeichen).
Siehe:
into Parameter.Prm_ab ( DDC_date(10)
Also ändere deine Select Abfrage so ab das die Spalte nur als Datum zurückgegeben wird. Dann wird auch die Warnung verschwinden:
https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-us ...
convert(varchar, PRM_AB, 23)
Bitte warten ..
Mitglied: DOHstemann
14.10.2019 um 16:07 Uhr
Hallo nc6400,

vielen Dank für deine Antwort.

Leider kann ich die Abfrage auch nicht ändern. Diese wird von dem Programm durchgeführt. Das heißt ich kann dort nicht manuell eingreifen.
Auch in der Datenbank kann ich nichts machen.
Genau das ist mein Problem. Ich vermute, dass mir irgendein ODBC Parameter fehlt. Oder eine Einstellung im Linux angepasst werden muss.
Bitte warten ..
Mitglied: 141320
14.10.2019, aktualisiert um 16:13 Uhr
Na dann musst du nur nach ODBC ignore warnings googeln .
Bitte warten ..
Mitglied: DOHstemann
14.10.2019 um 16:26 Uhr
Tja wäre schön, wenn es so einfach wäre.

Leider ist aber auch ein Fehler im LOG.
SQL ERROR: Fetch Error failed

Das heißt das Programm nicht das was es machen soll.
Bitte warten ..
Mitglied: 141320
14.10.2019 um 16:30 Uhr
Dann muss das Programm unter Linux eben angepasst werden.
Bitte warten ..
Mitglied: DOHstemann
17.10.2019 um 09:56 Uhr
Hallo nc6400,

tja, wenn du den Hersteller kennen würdest, dann würdest du das nicht so leichtfertig schreiben, mit dem Programm ändern.
Bitte warten ..
Mitglied: 141320
17.10.2019, aktualisiert um 11:17 Uhr
Zitat von DOHstemann:

Hallo nc6400,

tja, wenn du den Hersteller kennen würdest, dann würdest du das nicht so leichtfertig schreiben, mit dem Programm ändern.
Naja wenn schon mal so grundlegende Dinge wie Datenbankdefinitionen wie Typen der Spalten nicht deutlich genug definiert sind was soll man da noch sagen. Wenn du nicht in der Lage bist das zu ändern, dann geh zu jemanden der es kann, ganz einfach 😁.
Und wenn das Feld sowieso nur Datumwerte statt Zeitangaben benötigt dann mach ich halt ein Update auf die Spalte der DB und fertig.
Zumindest sollte man dem Hersteller bescheid geben daß er da im Linux Programm im Bezug auf seine Datenbank Bockmist gebaut hat, oder eben ihr die DB nicht nach Vorschrift angelegt habt, keine A.
Eine ODBC Einstellung ist es zu 99,9 % nicht.

Na denn viel Erfolg 😁.

Ciao.
Bitte warten ..
Ähnliche Inhalte
Windows Tools
MS SQL Instanz
Frage von sebastian2608Windows Tools6 Kommentare

N´ Abend Leute, heute habe ich einen besonders seltsamen Fall für euch ;) Folgende Grundsituation: Ein Bekannter hatte bis ...

Datenbanken
MS-SQL-Server + T-SQL+Batch
Frage von kallewirschDatenbanken4 Kommentare

Hallo Gemeinde, mal wieder ein Problem aus dem Bereich des MS-SQL-Servers. Folgendes Thema: Nachts sollen automatisch Backups der DBen ...

Windows Server
MS SQL Login Problem
gelöst Frage von theoberlinWindows Server26 Kommentare

Hallo zusammen, Umgebung ist 2012r2 Domäne und MS SQL Express 2014 auf VM. ich habe folgende 2 Probleme: 1. ...

Datenbanken
MS SQL DB-Daten archivieren?
gelöst Frage von SchelinhoDatenbanken16 Kommentare

Hallo zusammen! Ich habe eine Anwendung, welche MSSQL (SQL Server 2014 SP2) nutzt. Auf der DB-Instanz laufen diverse Datenbanken. ...

Neue Wissensbeiträge
MikroTik RouterOS

Dynamische VLAN Zuweisung für WLAN (u. LAN) Clients mit Mikrotik

Anleitung von aqui vor 3 TagenMikroTik RouterOS

1. Allgemeine Einleitung: Das folgende Tutorial gibt einen Überblick über die dynamische VLAN Zuweisung von WLAN und LAN Clients ...

Humor (lol)
Würde man Frauen in IT-Klassen einteilen
Information von Henere vor 5 TagenHumor (lol)19 Kommentare

wollen, gäbe es folgende Varianten: Die Internet-Frau: Man muss bezahlen, um sich Zugang zu ihr zu verschaffen. Die Server-Frau: ...

Sicherheits-Tools

TrendMicro WorryFree Business Security 10.0 SP1 - neuer Patch 2179 (Korrekturupdate) verfügbar!

Tipp von VGem-e vor 6 TagenSicherheits-Tools

Servus, grad eben entdeckt, nachdem Patch 2178 zurückgezogen wurde: Gruß

Administrator.de Feedback
Entwicklertagebuch: Tracking und Werbung
Information von admtech vor 10 TagenAdministrator.de Feedback3 Kommentare

Hallo Administrator User, wir haben unser Tracking auf das Matomo Tool umgestellt. Damit hosten wir die Webanalyse ab sofort ...

Heiß diskutierte Inhalte
Ubuntu
Linux Ubuntu VNC IP
Frage von 141835Ubuntu58 Kommentare

Wie finde ich bei Linux Ubuntu die IP-Adresse vom VNC Server heraus???

Windows Server
Domaincontroller Windows Server 2003 durch 2016 ersetzen
Frage von MilordWindows Server18 Kommentare

Hallo zusammen, eventuell kann einer von euch weiterhelfen. Ich stecke aktuell etwas fest und komme nicht richtig weiter. Folgende ...

Batch & Shell
Wiederkehrende Ausgabe in .csv ausblenden
Frage von chkdskBatch & Shell15 Kommentare

Guten Tag zusammen, ich habe folgendes Powershell Skript geschrieben, welches mit alle AD Gruppen inkl NTFS Berechtigungen eines gewünschten ...

Hyper-V
Hyper-V-Host rebootet - einige wenige Gäste haben danach Ping-Zeiten von über 400ms!
Frage von DerWoWussteHyper-V14 Kommentare

Moin an alle Hyper-V Admins! Hat jemand außer mir schon einmal Folgendes erlebt? Hyper-V auf Server 2019. Server startet ...