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

Feldmengen-Begrenzung bei der Datenübergabe nach SQL

Frage Entwicklung Java

Mitglied: ProTec-Lejo

ProTec-Lejo (Level 1) - Jetzt verbinden

24.01.2007, aktualisiert 05.02.2007, 3965 Aufrufe, 6 Kommentare

Hallo,

wir arbeiten bei uns schon seit längerer Zeit mit einem eigens entwickelten Java-Programm (Sun).

Das Programm hat folgende Funktion:
- Wir lesen damit Dateien von unseren Prüfgeräten aus.
- Während dem Einlesen vergleichen wir diese mit den Datenbeständen (MS-SQL Datenbank).
- Nach Abgleich mit der SQL-DB werden die Datensätze in einer Tabelle am Bildschirm angezeigt.
- Die angezeigten Datensätze können bedingt manipuliert werden
um danach in die SQL-DB übertragen zu werden.
- Nach der Übertragung werden die Daten von einem in C geschriebenen Programm weiterverarbeitet.

Java-Bildschirmmaske:
Die angezeigten Datenfelder überschreiten zwischenzeitlich mehr als 220 Felder.
Anm.: Die Bildschirmmaske bzw. Tabelle ist dyn. aufgebaut.

Problem:
Sowie mehr als 220 Felder vorhanden sind funktioniert die Übertragung nicht mehr.

Problemlösung:
Wie können wir sicher stellen, dass zukünftig auch mehr als die begrenzte Feldanzahl
übertragen wird?
Es geht nicht um ein paar mehr - es können in der Zukunft schon so annähernd 1.000 Felder werden!
Und es geht auch nicht darum die Daten gesplittet einzulesen (also Blocks mit weniger als 220).
Es geht uns vielmehr darum, dass ohne erneutes zutun, alle Felder von 10 bis 1.000 in einem rutsch
übertragen werden. Die Betonung liegt auf ohne weiteres zutun des Anwenders!!

Über Tipps und Anregungen würden wir uns freuen

mit freundlichen Grüssen
Achim und Niko
(die verzweifelten Programmierer)
Mitglied: AndreasHoster
29.01.2007 um 09:51 Uhr
Endlich mal eine lange Beschreibung und auch in fehlerfreiem Deutsch. Sieht man ja ansonsten eher selten

Aber die genaue Fehlerbeschreibung ist trotzdem etwas kurz.
<... funktioniert die Übertragung nicht mehr> bedeutet was?
Werden nur die ersten Felder übertragen, der Rest nicht, gibts Fehlermeldungen (und wenn ja, welche) etc?
Welche SQL Server Version, welche JDBC Version?
Kommt man über die Begrenzungen des SQL Servers? (Bei SQL 2000: 1024 Spalten und was wichtiger ist: Maximale Zeilenlänge: 8060 Bytes).
Dabei ist es nämlich möglich mit varchar 1000 Spalten mit jeweils max. 200 Zeichen zu erstellen, nur beim Einfügen der Werte gibts Fehler, falls es mehr als 8060 Bytes werden.
Bitte warten ..
Mitglied: ProTec-Lejo
29.01.2007 um 14:06 Uhr
Hallo Andreas,

ja, ja, das mit dem fehlerfreiem Deutsch ... und es wird immer wieder gern die Ausrede "... neue deutsche Rechtschreibung" genommen.

Fehlerbeschreibungsergänzung:
Sowie die Feldanzahl von 220 überschritten wird funktioniert die Übertragung generell nicht.
Übertragungsablauf:
Die Übertragung, wenn sie funktioniert, erkennt man daran, dass sich im unteren Bereich mit Fortschreitung der Datenübergabe ein blauer Balken aufbaut.
Die Übertragung, wenn sie nicht funktioniert, erkennt man daran, dass sich kein blauer Balken aufbaut und unmittelbar sich das Übertragungsfenster wieder schliesst.

Fehlermeldung:
Keine

SQL-Server:
MS SQL 2000 inkl. aller aktuellen Update´s

JDBC:
Java 2 SDK, SE v1.4.2_04

Sofern Du mit den Infos nicht klar kommst müsste ich tiefergehende Informationen vorab mit meinem Kollegen abklären da er sich wesentlich tiefer in die Materie eingearbeitet hat.

Gruss Achim
Bitte warten ..
Mitglied: ProTec-Lejo
29.01.2007 um 14:50 Uhr
Antwortergänzung:

Aufgrund der zu verarbeitenden Datenmenge ist meines erachtens das Problemdie nicht im SQL- sondern eher im HTML-Bereich angesiedelt.

Gruss Achim
Bitte warten ..
Mitglied: AndreasHoster
29.01.2007 um 15:07 Uhr
Ich bräuchte es etwas spezifischer mit dem Fehler. Der blaue Balken ist ja nicht sehr aussagekräftig. Und das mit dem Deutsch war ein Lob und keine Kritik. Viele verzichten ja komplett auf Groß und Kleinschreibung und Satzzeichen und hier war es sogar schön aufgebaut mit unterstrichenen Überschriften etc.

Habt Ihr das programmiert?
Wenn ja, könnte man den Fehler mit try / catch abfangen und einen Stack Trace ausgeben?
Oder gibts irgendein Log, wo mehr drinsteht?
Oder wie groß sind denn die einzelnen Spalten? Kommen wir eventuell bei mehr als 220 Spalten in den Bereich der 8060 Bytes maximal pro Zeile?

Ohne richtige Fehlermeldung bleibt das halt ein Gestochere im Nebel.
Bitte warten ..
Mitglied: ProTec-Lejo
31.01.2007 um 10:35 Uhr
Hallo,

ja das mit dem Deutsch und dem Lob hatte ich schon so verstanden.


Habt Ihr das programmiert? JA

Wenn ja, könnte man den Fehler mit try / catch abfangen und einen Stack Trace ausgeben?
Oder gibts irgendein Log, wo mehr drinsteht? ES WIRD KEINE FEHLERMELDUNG AUSGEGEBEN

Oder wie groß sind denn die einzelnen Spalten? ZWISCHEN 5 und 200 ZEICHEN

Kommen wir eventuell bei mehr als 220 Spalten in den Bereich der 8060 Bytes maximal pro Zeile? SPALTENGRÖSSENMÄSSIG NEIN; FELDINHALTSMÄSSIG NEIN; Anm.: Bei allen Spalten und Zeilen, sofern 220 Felder insgesamt überschritten werden kann auch die Byte-Grenze überschritten werden.

Problemlösungsansatz?
Sofern es denn an der Bytegrenze liegen sollte, wie kann ich dieses Problem so angehen, dass die Datenübergabe für den Anwender in einem Rutsch funktioniert?

Zurück zur Frage bei mehr als 220 Spalten...:
Pro Zeile werden 10 und es sollen in Zukunft 18 Spalten werden.
Die Tabelle ist so programmiert, dass mit jedem vorhandenen Datensatz eine Zeile erzeugt wird, eben dyn..

Gruss Achim
Bitte warten ..
Mitglied: Alfredus
05.02.2007 um 15:28 Uhr
Oder gibts irgendein Log, wo mehr drinsteht? ES WIRD KEINE FEHLERMELDUNG AUSGEGEBEN

Hmmm...Das glaube ich erstmal so nicht. ;) Nimm das Problem-Statement und gib es mal direkt auf der SQL-Konsole ein. Vielleicht ist der MS-SQL-Server geschwätziger als der Treiber.

Bei den meisten JDBC-Treibern kann man im Verbindungstring noch ein extra Logging einschalten. Bei MS-SQL habe ich es nicht im Kopf, aber prinzipiell sollte da etwas in der Richtung möglich sein.

Wenn ihr einen OR-Mapper/Persistenzlayer dazwischen habt, ggf. mal da nachhaken/debugen. Habe da schon einige böse Fouls erlebt.

Es geht nicht um ein paar mehr - es können in der Zukunft schon so annähernd 1.000 Felder werden!

Oha...1000+ Spalten breite Tabelle sind aber hart am Wind gesegelt. Bei 1024 ist nämlich Schicht im Schacht(IMO).

Gruss
Alfredus
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...