AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Access SQL-Abfrage -> Fehler: Exception
Thema durchsuchen
Ansicht
Themen-Optionen

Access SQL-Abfrage -> Fehler: Exception

Ein Thema von p.dworaczek · begonnen am 27. Mai 2008 · letzter Beitrag vom 28. Mai 2008
Antwort Antwort
p.dworaczek

Registriert seit: 24. Mai 2008
Ort: Düsseldorf
6 Beiträge
 
#1

Access SQL-Abfrage -> Fehler: Exception

  Alt 27. Mai 2008, 23:03
Datenbank: Access • Zugriff über: SQL
Hallo!

Sitze schon länger an dem Fehler und habe keine Ahnung was ich falsch mache....

Hier der CODE:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 begin
   with Query1 do
   begin
    sql.clear;
    sql.add('select * from Datennbank.KundenDB where Datennbank.Kunden-Nr=0');
    Active:=true;
    open;
    if recordcount > 0 then
    begin
      first;
      while not EOF do
      begin
        //tu was
        next; //zum nächsten satz gehen
      end; //while
    end; //endif
 end; //beginn
Die Fehlermeldung:

Zitat:
Im Projekt Project1.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Allgemeiner SQL-Fehler [Microsoft][ODBC Microsoft Access Driver] 2 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Im Anhang noch das gepackte Projekt... entschuldigt bitte die Form(des Projekts), habe das Projekt nur zum Testen angelegt...

Ich hoffe ihr könnt mir helfen.

Mit freundlichen Grüßen
Piotr Dworaczek
Angehängte Dateien
Dateityp: rar access_547.rar (16,3 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 27. Mai 2008, 23:19
Auf den ersten Blick kann ich mit der Meldung nicht allzuviel anfangen. Was ich mir vorstellen kann, was problematisch sein könnte, ist das '-' in deinem Tabellennamen. Fasse die Namen mal in " (Dopp. Anführungzeichen / bei MS-SQL) bzw. ´ (Back-Ticks / bei MySQL).

Das muss nicht die Lösung für das angesprochene Problem sein, aber potentielle mathem. Operatoren und sonstige Sonderzeichen in Bezeichnern sollte man sich grundsätzlich angewöhnen zu quoten, um nicht u.U. an anderer Stelle damit auf die Nase zu fallen.


Edit: Mir fällt nochwas auf. "Datennbank" scheint ein Catalog zu sein, "KundenDB" eine Tabelle. Demnach müsste "Datennbank.Kunden-Nr" auch eine Tabelle sein, und die ist schwer auf 0 zu prüfen
(Nebenbei hast du in "Datennbank" ein n zu viel.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
p.dworaczek

Registriert seit: 24. Mai 2008
Ort: Düsseldorf
6 Beiträge
 
#3

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 27. Mai 2008, 23:40
Der Tipp mit dem '-' war schon mal gut. Jetzt steht in der Fehlermeldung, dass 1 Parameter erwartet wurde ... vorher waren es ja 2 Parameter, die erwartet wurden.

Ich habe den recordcount gelöscht, aber es hatte keine Auswirkungen auf die Fehlermeldung.

Trotzdem Danke!

Aber die Frage ist noch offen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 28. Mai 2008, 00:03
Zitat von Medium:
Edit: Mir fällt nochwas auf. "Datennbank" scheint ein Catalog zu sein, "KundenDB" eine Tabelle. Demnach müsste "Datennbank.Kunden-Nr" auch eine Tabelle sein, und die ist schwer auf 0 zu prüfen
Was ist damit?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
p.dworaczek

Registriert seit: 24. Mai 2008
Ort: Düsseldorf
6 Beiträge
 
#5

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 28. Mai 2008, 06:10
Sorry, aber ich weiss nicht so genau was du meinst.

Bin halt noch Anfänger.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 28. Mai 2008, 06:21
sql.add('select * from Datennbank.KundenDB where "Datennbank.KundenDB.Kunden-Nr"=0'); So vieleicht. Ich nehme an, Kunden-Nr ist ein Feld der Tabelle KundenDB. Dann mußt Du es auch als solches ansprechen. Bei deiner Originalschreibweise würde eine Tabelle Kunden-Nr gesucht werden und diese auf 0 verglichen werden (was keinen Sinn macht).

Grüße,
Uli
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 28. Mai 2008, 07:36
Bei Access kann man sich nur in einer Datenbank bewegen. Also ist die Schreibweise "Datenbank.KundenDB" unzulässig.
Hier mal ein Beispiel für eine korrekte Abfrage:
Delphi-Quellcode:
  // die Zuweisung an sql.Text erspart uns den sql.Clear
  // das Feld KundenNr wird in aller Regel ein String (z.B. VARCHAR(20)) sein
  // man hätte bei der WHERE Klausel den Namen der Tabelle auch weglassen können,
  // aber das soll ja nur zeigen, wie man's schreiben darf
  ADOQuery1.sql.Text :=
    'select * from KundenTabelle where KundenTabelle.KundenNr=' + QuotedStr('4711');
  Mit Zitat antworten Zitat
p.dworaczek

Registriert seit: 24. Mai 2008
Ort: Düsseldorf
6 Beiträge
 
#8

Re: Access SQL-Abfrage -> Fehler: Exception

  Alt 28. Mai 2008, 20:37
Vielen Dank für die schnellen und sehr guten Antworten. Nun kann ich die Access-Datenbank auslesen... ohne Fehler
  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 09:52 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