Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Meldung 7347, Ebene 16, Status 1, Zeile 1

Frage Entwicklung Datenbanken

Mitglied: orausdo

orausdo (Level 1) - Jetzt verbinden

11.07.2014 um 09:26 Uhr, 1936 Aufrufe, 6 Kommentare

Hallo Admins,

ich bräuchte mal dringend Eure Hilfe.

Beim Zugriff auf eine Cache DB bekomme ich immer folgenden Fehler:

Meldung 7347, Ebene 16, Status 1, Zeile 1
Der OLE DB-Anbieter 'MSDASQL' für den Verbindungsserver 'XYZ' hat Daten zurückgegeben, die nicht der erwarteten Datenlänge für die [XYZ]..[Schema].[Tabellenname].AuftragsUhrzeit-Spalte entsprechen. Die (maximale) erwartete Datenlänge beträgt 5, die zurückgegebene Datenlänge dagegen 8.

Hab auch schon versucht das Feld zu casten oder zu converten... Bringt aber leider nichts. Immer der gleiche Fehler.

Kann mir bitte einer einen Tipp geben, wie ich diesen Fehler unterbinden kann?

Vielen vielen Dank für Eure Hilfe.

Gruss OR aus DO

Infos: SQL Server 2012, Intersystems Cache' DB
Mitglied: MadMax
11.07.2014 um 13:25 Uhr
Hallo OR aus DO,

welchen Datentyp hat denn AuftragsUhrzeit und welchen Datentyp hat das, was Du importierst? Wenn Du nicht weißt, was vom Import kommt, dann änder mal den Datentyp von AuftragsUhrzeit in varchar (50) und prüfe, was da ankommt. Cast oder convert ist mit Sicherheit der richtige Weg, aber da muß man auch wissen, was reinkommt und wie es hinterher aussehen soll. Wie hast Du denn cast/convert verwendet?

Gruß, Mad Max
Bitte warten ..
Mitglied: orausdo
11.07.2014 um 14:32 Uhr
Moin Mad Max,

der Datentyp der Quelle ist Text. Es handelt sich um eine Cache' DB.
Wo soll ich den Datentyp denn ändern? In der Quelle geht es nicht.
Beim Select schreibe ich ja noch nichts weg sondern lasse es nur anzeigen.
Habe auch schon den Wert gecastet. Aber das Statement schmeisst immer den selben Fehler raus.

Mache ich die Abfrage in Access ist das ganze kein Thema, Zieht er so durch. Aber die Abfrage mit dem Verbinungsserver ist echt übel.
Ach, Openquery habe ich auch schon angetestet.

Hast Du noch eine andere Lösung?

Danke Dir schon mal für Deine Hilfe.

Gruss O
Bitte warten ..
Mitglied: orausdo
16.07.2014 um 15:57 Uhr
Leider scheint sich keiner mit dieser Intersystems DB und die Connection via Linked Server auszukennen...
Bitte warten ..
Mitglied: Biber
16.07.2014, aktualisiert um 17:14 Uhr
Moin Dortmunder,

es steht doch noch die Antwort auf MadMax' Rückfrage aus aus: wie sah denn dein CONVERT/CAST-Versuch aus?
Bzw. wie sieht dein Statement aus?

Wenn der Fehler auch geworfen wird, wenn das TEXT?/STRING?-Feld "AuftragsUhrzeit" gar nicht in der Liste der selektierten Felder enthalten ist, dann gibt es IMHO nur 3 Erklärungen:

- im Statement selbst ist ein Komma vor dem FROM zuviel (Wahrscheinlichkeit 86%)
- der Datentyp sollte statt TEXT auf String geändert werden ("TEXT" ist für Cache-DB indizierter/searchable Text=in etwa so etwas wie Access-Datentyp MEMO)
- der verwendete Treiber hat wirklich einen Bug.

Grüße
Biber
Bitte warten ..
Mitglied: orausdo
16.07.2014 um 20:37 Uhr
Moin Biber.

Dank für Deine Antwort. Sorry, dachte das wäre schon so rübergekommen das ich cast/convert schon mit einigen Datentypen getestet habe. Das Statement hat syntaktisch keinen Fehler. Da ist auch kein Komma. Dein Hinweis mit dem Typ Memo in accdb hört sich interessant an. Gibt's dazu nen passenden Dt in Sql? Zum Tip mit dem Treiber müsste ich mal bei Intersystems nachfragen. Sind allerdings nicht sehr gesprächig. Genaues Sql Statement kann ich morgen mal reineinsetzen. Ich danke Dir/Euch für die Hilfe.

Gruss O aus DO
Bitte warten ..
Mitglied: orausdo
23.07.2014 um 13:52 Uhr
Problem gelöst.

Für alle die mal einen Linked Server auf eine Cache' DB erstellen müssen.

Das Problem mit den Datenlängen liegt daran, dass die Cache' DB StingCollated organisiert ist.
Das hat zur Folge, dass auch wenn der Datentyp nur bsp. 25 Zeichen aufnehmen sollte man auch ohne Probleme 30 oder 1000 Zeichen reinschreiben kann.
Wenn der MS SQL Server nun versucht, einen Wert einer Spalte mit max 25 Zeichen abzufragen, in der Spalte aber tatsächlich 35 Zeichen gespeichert sind,
dann läuft er auf einen Fehler. SQL Server ist da ziemlich restriktiv im Gegensatz zu Access.
Um eine Verbindung zu einer Cache' DB via ODBC auzubauen benötig man sog. SQL Klassen auf diese die ODBC Verbindung dann verweist.
Ist in dieser Klasse die Datenlänge nicht so eingestellt, wie auch real Zeichen gespeichert sind kommt es zu einem Fehler.
Abhilfe bringt es, in der SQL Klasse die Datenlänge so weit anzupassen, dass alle gespeicherten Daten abgerufen werden können.

Für Rückfragen stehe ich gern zur Verfügung.

Danke an Alle die sich Gedanken gemacht haben und versucht haben mir zu helfen.

Grüsse aus Dortmund.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...