AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Fehler too many actual parameter
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Fehler too many actual parameter

Ein Thema von Pluto · begonnen am 18. Mär 2008 · letzter Beitrag vom 18. Mär 2008
Antwort Antwort
Pluto

Registriert seit: 30. Nov 2005
Ort: Dietzenbach
53 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL Fehler too many actual parameter

  Alt 18. Mär 2008, 17:00
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo,
bei kleineren Programmen arbeite ich immer noch mit der BDE und Paradox,
oder MyBase - ist halt schnell und bequem. (Delphi 7 Enterprise)

Bei einer Datenbank X.db mit 25 Feldern funktionieren SQL Abfragen wie:
SELECT * FROM X.db
und
SELECT 'Vorname', 'Nachname' FROM X.db
einwandfrei.
Sobald ich aber dem SELECT mehr als 12 Feldnamen hinzufüge erhalte ich die
Fehlermeldung "too many actual parameters".

Hat die BDE oder das Local SQL von Delphi hier eine Begrenzung?
Wenn ja, läßt sich diese aufheben?

Ich könnte ja mit SELECT * arbeiten und die erhaltenen Daten dann auf die
benötigten Felder reduzieren - aber das ist eine unelegante Bastelei.

Dank im Voraus für jede Antwort.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: SQL Fehler too many actual parameter

  Alt 18. Mär 2008, 17:12
Zitat von Pluto:
SELECT 'Vorname', 'NachnameFROM X.db
Falsch! Feldnamen werden nicht in einfache Anführungszeichen gesetzt.

Richtig:
SELECT Vorname, Nachname, "31Datum" FROM X.db Feldnamen, die ein Problem darstellen werden in doppelte Anführungszeichen gesetzt.
Generell sollte man aber die problematischen Feldnamen meiden wie die Pest, so dass man die doppelten Anführungszeichen nicht braucht.

Hier noch ein Beispiel, wie man einfache Anführungszeichen in der Feldliste benützen kann:
SQL-Code:
SELECT *, 'AAS Satzart FROM TabelleA
UNION ALL
SELECT *, 'BAS Satzart FROM TabelleB
Hier werden 2 Tabellen mit UNION ALL zu einem Ergebnis vereint.
Damit man noch weiss, welche Datensätze aus welcher Tabelle stammen, wird einfach noch ein künstliches Feld (Name: Satzart) hinzugeführt.
Andreas
  Mit Zitat antworten Zitat
Pluto

Registriert seit: 30. Nov 2005
Ort: Dietzenbach
53 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL Fehler too many actual parameter

  Alt 18. Mär 2008, 18:03
Dank für die schnelle Antwort.

Natürlich gehören in die SQL keine Anführungszeichen.
Die Anführungszeichen waren versehentlich nur in meinem verkürztem
Text der Anfrage.

Mein echter Code sah so aus:
Delphi-Quellcode:
  SQL.Add('SELECT Hr.ZUNAME, Hr.VORNAME, Hr.STRASSE, Hr.PLZ, Hr.ORT,');
  SQL.Add('Hr.Titel, Hr.JAHRGANG, Hr.GebDat, Hr.GESCHL, Hr.NR, Hr.INFO');
  SQL.Add('Hr.BANK, 'Hr.KTOINHABER', Hr.EMAIL');
  SQL.Add('FROM "' + DataPath + 'hr.DB" Hr');
  if HrIsActive then begin
    SQL.Add('INNER JOIN "' + SemPath + 'Beleg.DB" Beleg');
    SQL.Add('ON (Hr.NR = Beleg.NR)');
  end;
Da waren durchs Kopieren bei einem Feld Anführungszeichen hineingerutscht.
Auch bei mehrfachem Kontrollieren habe ich den Fehler stets überlesen.

Schon lustig: Durch meine fehlerhafte Anfrage und der Antwort darauf habe
ich den Fehler nun sofort lokalisiert.

Nochmals Dank!
begin
if Aufwand > Ergebnis then exit;
end;
  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 22:55 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