Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehler - Abfrage zu komplex bei ODBC auf access (https://www.delphipraxis.net/68260-fehler-abfrage-zu-komplex-bei-odbc-auf-access.html)

bodo1987 27. Apr 2006 07:18

Datenbank: Access • Zugriff über: ODBC

Fehler - Abfrage zu komplex bei ODBC auf access
 
Hallo Leute,

ich habe folgendes Problem und bin nun langsam am Verzweifeln.

Ich greife mit einem Formular via ODBC auf eine Access-Datenbank zu und das klappt auch noch.
Aber wenn der aktuelle Datensatz mehr als 90 Datenfelder enthällt (und leider brauch ich die auch noch alle) dann kommt da so ein lustiger Fehler: "Abfrage zu komplex".

Ich denke mir das es daran liegt wieviele Felder man auf einmal editieren will. Eigentlich reicht mir ja eins aber wie kann ich denn den Bereich ändern der editiert werden soll, oder gibt es da andere dinge an die ich nicht gedacht habe.

Vielen Dank schon mal im Vorraus
Bodo

mkinzler 27. Apr 2006 07:23

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Wiie änderst du den? Wenn du SQl verwendest kannst du ja nur das gewünschte Feld ändern.

bodo1987 27. Apr 2006 08:12

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
ich benutze einfach den edit Befehl des Objectes tTable änder mein Feld via FieldByName und speicher mit post.
klappt ja auch soweit nur bei den großen halt nicht

mkinzler 27. Apr 2006 08:22

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Auf den Einsatz von TTable sollte man verzichten.Besonderst bei ODBC. Verwende ein TQuery und einen UPDATE-Befehl.

Bernhard Geyer 27. Apr 2006 08:31

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Verwende lieber die ADO-Komponenten in Delphi (TADODataset). Die BDE hat auch einige Bugs wenn zu viele Felder verwendet werden bzw. diese zu lang sind.

bodo1987 27. Apr 2006 08:54

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Zitat:

Auf den Einsatz von TTable sollte man verzichten.Besonderst bei ODBC. Verwende ein TQuery und einen UPDATE-Befehl.

Gute Idee. Scheint auch so zu funktionieren, wenn ich die Abfrag direct in Access ausführe. Wenn ich das aber in Delphi mache bringt er die Meldung:

Allgemeiner SQL-Fehler[Microsoft][ODBC Microsoft Acces Driver]2 Parameter wurden erwartet es wurden
aber zu wenig übergeben

das ist ja schön und gut aber ExecSQL will doch gar keine Parameter.

mkinzler 27. Apr 2006 09:00

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Aber die Felder werden als Paramter in der erzeugten SQL-Abfrage verwendet.

bodo1987 27. Apr 2006 09:07

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
is ja richtig jedoch geht die gleich abfrage in Access selbst ja ohne Probleme oder welche Felder meinst du jetzt.
Also meine Abfrage sieht so aus:

SQL.Clear;
SQL.Add('UPDATE ' + tableName + ' SET ' + Port + ' = ' + newValue + ' WHERE Leiste= "A";');

tableName ist mein TabellenName :mrgreen: (wer hätte das gedacht)
Port mein Feld
NewValue der neue Wert
Leiste der Datensatz

mkinzler 27. Apr 2006 09:10

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
Versuchs mal so
Delphi-Quellcode:
SQL.Clear;
SQL.Add('UPDATE ' + tableName + ' SET ' + Port + ' = ' + newValue + ' WHERE Leiste= '''A''';');

bodo1987 27. Apr 2006 09:15

Re: Fehler - Abfrage zu komplex bei ODBC auf access
 
[Fehler] Unit4.pas(37): ')' erwartet, aber Bezeichner 'A' gefunden

Das wars nicht

aber wenn ich die ganze WHERE Klausel weglasse wird nur noch ein Parameter erwartet.
Also müsste der Fehler doch irgendwo im SQL String sein und an den Variablen liegts nicht die hab ich eben mal durch Testwerte ersetzt sie auf jeden Fall funktionieren sollten und das Ergebniss war das gleiche


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz