Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ACCESS2003: Datensatz zu groß. (Fehler 3047) ODBC zu SQLServer-Tabelle

183 views
Skip to first unread message

Nik Milo

unread,
Feb 26, 2009, 10:28:31 AM2/26/09
to
Hallo liebe EntwicklerInnen,

meine Applikation muss auf SQL-Server-Tabellen zugreifen.
Bei einigen Verknüpfungen (ODBC) von ACCESS zu SQL-Server gelingt es auch.

Bei der allerdings wichtigsten Tabelle gibt es den Fehler 3047
"Sie haben eine Tabelle definiert oder importiert, deren Datensätze
größer als 2 KB sind"
(beim Versuch die Daten der Tabelle zu sehen).

Gibt es irgendeine Möglichkeit dennoch auf die Daten über ACCESS zu
zugreifen.

Jeder Tip ist willkommen.
Danke im voraus.

Schöne Grüße
Nikhil Milo


Mark Doerbandt

unread,
Feb 26, 2009, 10:35:48 AM2/26/09
to
Hallo, Nik,

Nik Milo:

> Bei der allerdings wichtigsten Tabelle gibt es den Fehler 3047
> "Sie haben eine Tabelle definiert oder importiert, deren Datensätze
> größer als 2 KB sind"
> (beim Versuch die Daten der Tabelle zu sehen).

wie sieht denn die Struktur dieser wichtigen Tabelle aus?

Gruss - Mark

--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.

Nik Milo

unread,
Feb 26, 2009, 12:04:07 PM2/26/09
to
Hallo Mark,

danke Dir für Deine Nachfrage (habe die Gesamtzahl der SQLServer-Tabelle
noch nicht gezählt, denke Einiges über 100, Feldtypen im üblichen
Bereich) .

Ich bin ein gutes Stück weitergekommen.
Habe zwischenzeitlich versucht, über SQLPassThrough
aus dem Code heraus drauf zuzugreifen.
Bei "Select * from ..." kam der Fehler "zu viele Spalten".
Dann habe ich mich auf ca. 20 Felder beschränkt und es
hat geklappt.

Es war also nur ein Problem zuvieler Felder.
Das Einbinden der Tabelle bringt also nichts,
aber mit SQLPassThrough und Beschränkung auf weniger Spalten
funktioniert alles.

Viele Grüße
Nikhil

Mark Doerbandt schrieb:
> Hallo, Nik,

Mark Doerbandt

unread,
Feb 26, 2009, 12:05:22 PM2/26/09
to
Hallo, Nik,

Nik Milo:

> danke Dir für Deine Nachfrage (habe die Gesamtzahl der SQLServer-Tabelle
> noch nicht gezählt, denke Einiges über 100, Feldtypen im üblichen
> Bereich) .

Dein Problem ist (wie so oft an solchen Stellen, daher meine
Nachfrage) eine mangelnde Normalisierung der Basistabelle. Lies doch
mal FAQ Punkt 1.31 (http://www.donkarl.com).

> Ich bin ein gutes Stück weitergekommen.
> Habe zwischenzeitlich versucht, über SQLPassThrough
> aus dem Code heraus drauf zuzugreifen.
> Bei "Select * from ..." kam der Fehler "zu viele Spalten".
> Dann habe ich mich auf ca. 20 Felder beschränkt und es
> hat geklappt.

Ja, klar, dann ist der Datensatz auch kleiner. Schon wieder: teile und
herrsche. In diesem Fall aber leider nur als Notfallmedizin.

Thomas Möller

unread,
Feb 26, 2009, 12:28:28 PM2/26/09
to
Hallo Nik,

Nik Milo schrieb:


> meine Applikation muss auf SQL-Server-Tabellen zugreifen.
> Bei einigen Verknüpfungen (ODBC) von ACCESS zu SQL-Server gelingt es auch.
>
> Bei der allerdings wichtigsten Tabelle gibt es den Fehler 3047
> "Sie haben eine Tabelle definiert oder importiert, deren Datensätze
> größer als 2 KB sind"
> (beim Versuch die Daten der Tabelle zu sehen).
>
> Gibt es irgendeine Möglichkeit dennoch auf die Daten über ACCESS zu
> zugreifen.

Du könntest auf dem SQL-Server Sichten definieren, die alle zusammen die
gesamte Tabelle abbilden. Dabei musst Du darauf achten, dass Du die
maximale Größe von ca. 2000 Zeichen pro Datensatz nicht übersteigst in
einer Sicht nicht übersteigst. Siehe auch hier:
http://support.microsoft.com/kb/111304/en-us
(Link in einer Zeile)

Die Sichten könntest Du dann nach Access verknüpfen.

HTH
--
Thomas

Homepage: www.Team-Moeller.de

Nik Milo

unread,
Mar 2, 2009, 7:35:42 AM3/2/09
to
Hallo Thomas,

danke, eine gute Lösung.

Schönen Gruß
Nik

Thomas Möller schrieb:
> Hallo Nik,

Nik Milo

unread,
Mar 2, 2009, 7:39:42 AM3/2/09
to
Hallo Mark,

Danke für den Tipp. Habe aber über die Tabellen-Struktur keinen
Einfluss. Kann nur lesend darauf zugreifen.

Mit der SQLPassThroughLösung klappt es ganz gut.
Kann mir eigene temporäre Tabellen erzeugen und
es passt dann auch viel besser mit der Performance.

Schönen Gruß
Nik


Mark Doerbandt schrieb:
> Hallo, Nik,

> Dein Problem ist (wie so oft an solchen Stellen, daher meine


> Nachfrage) eine mangelnde Normalisierung der Basistabelle. Lies doch
> mal FAQ Punkt 1.31 (http://www.donkarl.com).
>
>

Mark Doerbandt

unread,
Mar 2, 2009, 7:40:33 AM3/2/09
to
Hallo, Nik,

Nik Milo:

> danke, eine gute Lösung.

Du kannst die Tabellen nur lesen, kannst aber auf dem Server Sichten
definieren? Ungewöhnlich.

Nik Milo

unread,
Mar 2, 2009, 7:55:09 AM3/2/09
to
Mark Doerbandt schrieb:

> Hallo, Nik,
>
> Nik Milo:
>
>> danke, eine gute Lösung.
>
> Du kannst die Tabellen nur lesen, kannst aber auf dem Server Sichten
> definieren? Ungewöhnlich.
>
> Gruss - Mark
>
Hallo Mark,
habe für die Entwicklungszeit Zugriff auf ein Testsystem.
Wenn die Anwendung Life geht, kann nur lesend auf das produktive System
zugegriffen werden.

Die Sichten sind nur zum Ausprobieren. Später geht es nur noch per
SQLPassThrough.

Gruß
Nik

0 new messages