Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FIBPlus Daten auslesen: XSQLDA index out of range (https://www.delphipraxis.net/145446-fibplus-daten-auslesen-xsqlda-index-out-range.html)

alleinherrscher 1. Jan 2010 18:32

Datenbank: Firebird • Version: 2.1 • Zugriff über: FIBPlus

FIBPlus Daten auslesen: XSQLDA index out of range
 
Hi@all!

Ich muss mich gerade mit Datenbanken beschäftigen, da Chef ein Programm mit Datenbankanbindung braucht. Soweit alles kein Problem, bis auf die Tatsache, dass ich vorher noch nie was mit SQL am Hut hatte.

Ich habe hier ein Beispielprojekt inkl. Datenbank, an dem ich mein Projekt hochziehen möchte und kann bereits Datensätze in der Datenbank ablegen, mit Generatoren (sodass eine fortlaufende ID in den Daten erzeugt wird).

Jetzt versuche ich gerade, die von mir gepspeicherten Daten wieder ins Programm einzulesen. Hier habe ich folgenden Code gefunden (aber nicht wirklich verstanden):

Delphi-Quellcode:

   if DataSet.Active then DataSet.Close;
   DataSet.Prepare;
   DataSet.Params[0].Value:= ID;
   DataSet.Open;
   PersonVorname:= DataSetVorname.Text;
   PersonNachname:= DataSetNachname.Text;
Wenn ich selben Code mit meinen Programm verwende, knallt es an der stelle "DataSet.Params[0].Value=ID" mit folgender Antwort vom Server:

"XSQLDA index out of range". (ID ist der Index in einer Datenbanktabelle (momentan sind 2 einträge drin, und ID=1))

Scheinbar habe ich bzw. meine Datenbank keine "params"?!

Könnte mir jemand die Funktionsweise von dem Code erklären und evtl einen Hinweis zum Fehler geben?

Vg und frohes neues Jahr,
Euer Michael

khh 1. Jan 2010 18:39

Re: FIBPlus Daten auslesen: XSQLDA index out of range
 
hallo Michael,

ich möchte dir nicht zu nahe treten, aber mit deinen momentanen Kenntnissen von DB krachts erst recht, wenn "Chef" das Ergebnis präsentiert bekommt.
das kann so nur schief gehen.
Also erst mal lesen, lernen, lesen, danach an die Aufgabenstellung gehen.

Gruss KH

MrSpock 1. Jan 2010 18:40

Re: FIBPlus Daten auslesen: XSQLDA index out of range
 
Hallo Michael,

dein Dataset wird über die Eigenschaft SQLs definiert. Wenn dort ein Parameter benutzt wird (eingeeitet mit einem Doppelpunkt), dann existiert dieser und kann über Params[n] angesprochen werden.

Beispiel:

SQL-Code:
SELECT NachName from Personen where ID = :id
Jetzt existiert der Parameter id.

alleinherrscher 1. Jan 2010 19:23

Re: FIBPlus Daten auslesen: XSQLDA index out of range
 
Danke, MrSpock! Ich hatte nachträglich etwas an der ID in der Datenbank geändert, und dann die SQLs des DataSets nicht neu generiert. Da haben wir also schon den Fehler! Herzlichen Dank!

@Khh: Ich bekomme das schon brauchbar hin und lerne momentan eine ganze menge beim programmieren. Dabei lese ich immer zwischendurch in den Manuals nach, wenn ich etwas nicht kapiere. ;-) Und das Beispiel, was ich hab, hat mir mein Chef gegeben, also wirds nicht so ganz verkehrt sein, sich daran zu orientieren! :)

Grüße nochmals!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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