AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Fehler "Ungültige Pufferlänge" bei TADOTable.Post
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler "Ungültige Pufferlänge" bei TADOTable.Post

Ein Thema von Codehunter · begonnen am 20. Feb 2013 · letzter Beitrag vom 21. Feb 2013
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 10:36
Datenbank: Excel • Version: 2003 • Zugriff über: ODBC/ADO
Hallo!

Ich habe zwei Excel-Dateien (XLS). Für beide habe ich mir in der ODBC-Verwaltung je einen Benutzer-DSN angelegt. In meinem Projekt habe ich für jede der beiden DSN eine ADOConnection, eine ADOTable, eine DataSource und ein DBGrid angelegt. Die ADOConnections sind auf ihren jeweiligen DSN konfiguriert, alles ist mit einander verbunden und Connected bzw. Active sind jeweils TRUE.

Die beiden Grids zeigen auch richtigerweise alle Daten aus den beiden Excel-Tabellen an. Ich kann auch per ADOTable.First/Next durch die Datenmenge navigieren, die Datenmenge per .Edit in den Schreibmodus versetzen und per AsInteger:= einen Wert zuweisen.

Nur wenn ich dann nach dem jeweiligen AsInteger:= ein ADOTable.Post durchführe, erhalte ich eine Fehlermeldung vom ODBC-Excel-Driver (siehe Anhang)

Wo mache ich da jetzt den Fehler?

Grüße
Cody
Angehängte Grafiken
Dateityp: png Image1.png (16,2 KB, 10x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 11:01
Der ODBC-Treiber von Excel hat deutliche Schwachpunkte; schlieslich ist er aus heutiger Sicht auch schon "steinalt".
Man sollte eher den OLE-DB Provider benützen. Hier der Connectionstring:
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls; Extended Properties="Excel 8.0;HDR=Yes;IMEX=0"
Das HDR=YES bedeutet, dass die 1. Zeile die Feldnamen enthält.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 11:22
Danke, das hat schon mal sehr viel gebracht. Meine Routine läuft jetzt schon mal eine ganze Weile und aktualisiert dann auch diverse Datensätze. Wenn Excel (Das Programm) gleichzeitig offen ist kann ich die Aktualisierungen sozusagen auch "live" sehen, wenn auch nur seeeehr langsam.

Nach 509 Datensätzen bricht die ganze Routine dann mit einer weiteren Fehlermeldung ab (siehe Anhang). Der Datensatz bei dem meine Routine aussteigt unterscheidet sich inhaltlich nicht von den Datensätzen die vorher problemlos verarbeitet wurden.
Angehängte Grafiken
Dateityp: png Image2.png (15,9 KB, 8x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (20. Feb 2013 um 11:25 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 12:02
Der Datensatz bei dem meine Routine aussteigt unterscheidet sich inhaltlich nicht von den Datensätzen die vorher problemlos verarbeitet wurden.
Nun, er sollte sich aber mindestens über einen Schlüsselwert unterscheiden. Was man bei Excel sieht, was tatsächlich drinsteht, wie es vom Treiber interpretiert wird, sind leider sehr unterschiedliche Dinge. Dafür gibt es halt im Normalfall Datenbanken, Excel ist keine und Du wirst immer solchen Problemen nachjagen. Je mehr Benutzer in den Daten editieren, desto mehr solcher Probleme.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 12:45
Ich würde Excel direkt über die Automatisierungsschnittstelle von Excel bedienen oder über eine native Excel Read/Write-Komponente.
Über OLE DB handelt man sich eigentlich nur Probleme ein auch wenn es so schön aussieht.

Auch ist der Provider "Microsoft.Jet.OLEDB.4.0" veraltet und wird irgendwann nicht mehr bei der Standardauslieferung dabei sein (Im Embedded-Umfeld ist er schon öfters nich mehr vorhanden)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#6

AW: Fehler "Ungültige Pufferlänge" bei TADOTable.Post

  Alt 20. Feb 2013, 16:49
Und Access 2007 oder 2010?
Nutze ich auch und geht gut.
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz