AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Parameter Problem
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Parameter Problem

Ein Thema von Leon de Bar · begonnen am 9. Nov 2004 · letzter Beitrag vom 10. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#1

SQL-Parameter Problem

  Alt 9. Nov 2004, 10:28
Hi,

in der folgenden SQL-Abfrage habe ich noch immer ein Problem mit dem Parameters:

Delphi-Quellcode:
  
  ADOQuery1.SQL.Text :=
    'SELECT Mitgliedsnummer, Vorname, Name, Strasse, Land, PLZ, ' +
      'Ort, Tel_1, Fax_1, Tel_2, Fax_2, Handy, email, GebDat, Saldo, ' +
      'Eintritt, Austritt, Spielernummer, Trikot, Spielerposition.Spielerpos, '+
      'Anrede FROM ID LEFT JOIN ' +
      '(Spielerposition RIGHT JOIN (Anrede RIGHT JOIN (((((Mitglied LEFT ' +
      'JOIN Kontakt ON Mitglied.ID=Kontakt.ID) LEFT JOIN GebDatList ON ' +
      'Mitglied.ID=GebDatList.ID) LEFT JOIN MG_Saldenliste ON ' +
      'Mitglied.ID=MG_Saldenliste.ID) LEFT JOIN Mitgliedsstatus ON ' +
      'Mitglied.ID=Mitgliedsstatus.ID) LEFT JOIN Spielerdaten ON ' +
      'Mitglied.ID=Spielerdaten.ID) ON Anrede.AID=Mitglied.AID) ON ' +
      'Spielerposition.SID=Spielerdaten.Spielerpos) ON ID.ID=Mitglied.ID ' +
      'WHERE ID.ID =: apptype';
  ParamByName('apptype').Value:=DSID;
Ich erhalte die Meldung, dass es ein UNDEFINIERTER BEZEICHNER ParamByName ist. Sicher muss ich den irgendwie noch einrichten aber wie und wo?

Thx.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:29
mach das mal so:
WHERE Feld = :Parameter
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:36
Hi,

wenn ich es so eingebe:

Delphi-Quellcode:
      'WHERE ID.ID = :apptype';
  ParamByName('apptype').Value:=DSID;
dann habe ich den selben effekt. Muss ich unter type noch irgendetwas eingeben? ich bin Newbie deswegen die dummen fragen. Oder habe ich dich falsch verstanden?

Danke schon mal für die prompte Antwort.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:38
hai Leon,

Du hast nicht engegeben von welchem TDataSet das ParamByName ist

  ADOQuery1.ParamByName ('apptype').Value := DSID
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:39
Die Query sollte Prepared auf true haben.
Damit wird autom. das Statement nach Paramtern durchsucht. Diese werden dann na die ParameterCollection angehängt.
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:40
Hi Sharky, hab dich schon vermisst...

Also eben habe ich auch meinen fehler gefunden... musste es aber so eintragen:

  AdoQuery1.Parameters.ParamByName('apptype').Value:=DSID; aber die ergebnismenge bleibt leer. Obwohl der richtige Wert in DSID eingetragen wird...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:46
Zitat von Leon de Bar:
...aber die ergebnismenge bleibt leer. Obwohl der richtige Wert in DSID eingetragen wird...
Ich kann dir mit der gleichen Sicherheit sagen, dass entweder in deinem Statement oder in deinem Wert der wurm steckt, wie ich dir sagen kann, dass 1+1==2 ist.

Ich habe mal dein Statement von meiner oracle IDE formatieren lassen.
SQL-Code:
SELECT Mitgliedsnummer
      ,Vorname
      ,Name
      ,Strasse
      ,Land
      ,PLZ
      ,Ort
      ,Tel_1
      ,Fax_1
      ,Tel_2
      ,Fax_2
      ,Handy
      ,email
      ,GebDat
      ,Saldo
      ,Eintritt
      ,Austritt
      ,Spielernummer
      ,Trikot
      ,Spielerposition.Spielerpos
      ,Anrede
FROM ID
       Left JOIN(Spielerposition
       right JOIN(Anrede
       right JOIN(((((Mitglied
       Left JOIN Kontakt ON Mitglied.ID = Kontakt.ID)
       Left JOIN GebDatList ON Mitglied.ID = GebDatList.ID)
       Left JOIN MG_Saldenliste ON Mitglied.ID = MG_Saldenliste.ID)
       Left JOIN Mitgliedsstatus ON Mitglied.ID = Mitgliedsstatus.ID)
       Left JOIN Spielerdaten ON Mitglied.ID = Spielerdaten.ID) ON Anrede.AID = Mitglied.AID)
        ON Spielerposition.SID = Spielerdaten.Spielerpos) ON ID.ID = Mitglied.ID
WHERE ID.ID = :apptype
Bist du dir sicher, dass du die Tabellen so verknüpfen willst?
Du verschachtelst die Joins inneinander -> Das kann man nicht nur verdammt schwierig lesen, das dürfte auch zuwenige Ergebnisse liefern.
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 10:56
Ähm... also ich habe mir diesen Query gebaut damit er mir in meinem Grid alle daten anzeigt, die ich von meinen Mitgliedern brauche... wenn ich nun einen Doppelklick auf eine Zeile in meinem DBGrid mache, dann soll er mir alle Daten von dem Aktuellen Mitglied zeigen. dazu verwende ich die Variable DSID in der die ID des Datensatzes steht.

ich dachte mir in meinem "jugendlichen" Leichtsinn, dass ich mit dem Statement nur mit WHERE hinten dran die selben daten catchen kann wie im Grid auch... ist das nicht so?
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 11:08
Das sollte eigentlich schon gehen.
Aber liefert die Abfrage ohne WHERE-Clause wirklich alle möglichen Datensätze in denen du mit der DSID filtern willst?
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: SQL-Parameter Problem

  Alt 9. Nov 2004, 11:49
also ohne geht es in dem grid. und ohne geht es auch in dem neuen form wo ich meine DBEdits damit fülle. aber immer nur für den ersten datensatz... egal welchen satz ich im grid anklicke, ich bekomme in meinem form3 mit dem DBEdits nur die daten des ersten satzes...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:18 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