Abfrage in SQL mit Select geht nicht

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Abfrage in SQL mit Select geht nicht

Beitrag von hde »

Hallo tictac,
klar, dass es jetzt funktioniert, egal ob die recordcount abfragst oder eof oder vergleichst. Deine Abfrage ..
tictac hat geschrieben:abfrage:=SQLQuery1.SQL.Add('SELECT count(proband) FROM probanden WHERE proband = "'+ proband + '" ')
konnte kein Ergebnis bringen. Was ist denn der Rückgabewert von "SQLQuery.SQL.Add( ..) ? oder auch SQL.Text ??
hde

tictac
Beiträge: 23
Registriert: Di 3. Apr 2012, 11:30

Re: Abfrage in SQL mit Select geht nicht

Beitrag von tictac »

hallo hde,
hde hat geschrieben:Was ist denn der Rückgabewert von "SQLQuery.SQL.Add( ..) ? oder auch SQL.Text ??
hde
naja, weiß nicht, ... steht da noch gar nichts drin??
kannst du mir das erklären?
Das, was jetzt richtige ist, das verstehe ich zwar (denk ich), aber warum das vorher falsch war, das ist mir nur so halb klar... ich meine es ist noch ne menge code dazugekommen... ?

ich hab wirklich noch nicht viel ahnung mit sql in lazarus, deshalb sind meine fragen hier vielleicht total simpel, aber ich bin halt quasi noch fast bei null...

tictac

HOffen
Beiträge: 16
Registriert: Do 15. Mär 2012, 09:19
OS, Lazarus, FPC: Win7 (L 0.9.30.4RC3 FPC 2.6.0)
CPU-Target: 32Bit

Re: Abfrage in SQL mit Select geht nicht

Beitrag von HOffen »

tictac hat geschrieben:was ist eigendlich der rückgabewert von einer selectabfrage vom typ her (string?) ?
Einzelne Spalten deiner Abfrage bekommst du z.B. über folgende Funktion:

Code: Alles auswählen

SQLQuery1.FieldByName({der Spaltenname})
Per AsInteger, AsString, etc. kannst du den Datentyp bestimmen:

Code: Alles auswählen

ResultString  := SQLQuery1.FieldByName({der Spaltenname}).AsString;
ResultInteger := SQLQuery1.FieldByName({der Spaltenname}).AsInteger;
// usw.
"There are 10 kinds of human. Those who understand the binary system and those who don't."

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Abfrage in SQL mit Select geht nicht

Beitrag von hde »

Hallo tictac,
dir fehlt offenbar einiges an Grundwissen über SQl und hier ist nicht der richtige Ort dafür das zu übermitteln.
Deshalb nur kurz: Bei MS-SQL, mySQL, Firebird, Postgresql usw. handelt es sich um eigenständige Datenbankprogramme. Dein Programm kann mit diesen Programmen kommunizieren, d.h. Kontakt herstellen, Frage senden und auf Antwort hoffen.
Mit
abfrage:=SQLQuery1.SQL.Add('SELECT count(proband) FROM probanden WHERE proband = "'+ proband + '" ')
stellst du deine Abfrage bereit, aber du hast weder Kontakt zur Datenbank noch deine Frage abgeschickt, also kannst du auch keine Antwort erwarten, also kein Ergebnis.
Schone Ostern
hde

tictac
Beiträge: 23
Registriert: Di 3. Apr 2012, 11:30

Re: Abfrage in SQL mit Select geht nicht

Beitrag von tictac »

hallo,

@ HOffen
danke!

@ hde
hde hat geschrieben:Hallo tictac,
dir fehlt offenbar einiges an Grundwissen über SQl und hier ist nicht der richtige Ort dafür das zu übermitteln.
wie gesagt, Informatikunterricht 10.Klasse, und Datenbanken in Lazarus kamen da gar nicht dran.
hde hat geschrieben: Deshalb nur kurz: Bei MS-SQL, mySQL, Firebird, Postgresql usw. handelt es sich um eigenständige Datenbankprogramme. Dein Programm kann mit diesen Programmen kommunizieren, d.h. Kontakt herstellen, Frage senden und auf Antwort hoffen.
Das weiß ich, aber das "wie" fehlt mir...
kennst du da vllt. nen guten Link?

auf jeden Fall nochmal vielen Dank
und frohe Ostern
tictac

HOffen
Beiträge: 16
Registriert: Do 15. Mär 2012, 09:19
OS, Lazarus, FPC: Win7 (L 0.9.30.4RC3 FPC 2.6.0)
CPU-Target: 32Bit

Re: Abfrage in SQL mit Select geht nicht

Beitrag von HOffen »

http://wiki.lazarus.freepascal.org/Laza ... utorial/de" onclick="window.open(this.href);return false;

Ist sehr umfangreich, sollte aber viele deiner Fragen klären können.
"There are 10 kinds of human. Those who understand the binary system and those who don't."

tictac
Beiträge: 23
Registriert: Di 3. Apr 2012, 11:30

Re: Abfrage in SQL mit Select geht nicht

Beitrag von tictac »

danke HOffen, ich werd das versuchen zu verstehen, ich hoffe, dann muss ich hier nichtmehr so viele Fragen stellen...

Frohe Ostern
tictac

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Abfrage in SQL mit Select geht nicht

Beitrag von hde »

tictac hat geschrieben:dann muss ich hier nichtmehr so viele Fragen stellen...
keine Angst und keine Sorge: Fragen stellen kann man hier schon .. jederzeit .. und es gibt auch keine dummen Fragen, nur (manchmal) dumme Antworten.

Ich denke mal, hier hilft man sich gern.

hde

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Abfrage in SQL mit Select geht nicht

Beitrag von hde »

HOffen hat geschrieben:http://wiki.lazarus.freepascal.org/Laza ... utorial/de
Hallo tictac,
so kompliziert muss man es sich als Schüler mit den heutigen Tools (Lazarus oder auch Zeos) nicht machen ..
kurze Erläuterung zu deinem Prog.
alles auf Anfang: --> SQLQuery1.close; (oder besser: SQLQuery1.active:=false)
Abfrage auf Null: --> SQLQuery1.SQL.clear;
Abfrage formulieren: --> SQLQuery1.SQL.Text:='select proband from probanden where proband=:stname';
Abfrage vervollständigen: --> SQLQuery1.Params.ParamByName('stname').AsString:=proband; (Parameter durch Real ersetzen)
Kontakt zum Datenbankprogramm herstellen: --> MySQL50Connection1.connected:=true;
Abfrage absenden und auf Antwort warten: --> SQLQuery1.open; (oder SQLQuery1.active:=true)
Antwort/Ergebnis abfragen .. wie auch immer in SQLQuery1 abzufragen

SQLTransactions sind eine besondere Sache und aus logischer Sicht bei einer Select-Abfrage nicht notwendig.

Wenn du in einer Datenbank aufgrund einer Sache an mehreren Stellen was ändern willst, dann muss man eine Transaction starten und nach allen Änderungen entweder alles festschreiben (commit) oder mit Rollback alle Änderungen zurücknehmen. Dies stellt sicher, dass nicht nur ein Teil der Änderungen in der Datenbank angekommen ist.

Ich hoffe, tictac, du weißt jetzt was vorher falsch war und warum es jetzt geht. :wink:

hde

tictac
Beiträge: 23
Registriert: Di 3. Apr 2012, 11:30

Re: Abfrage in SQL mit Select geht nicht

Beitrag von tictac »

hallo hde,
danke für die super verständliche Erklärung! :idea:
ich denke mal, dass jetzt vorerst alles klar ist, ich meld mich, wenn ich wieder ein Problem habe.
tictac

Rumers
Beiträge: 1
Registriert: Di 19. Feb 2013, 18:44

Re: Abfrage in SQL mit Select geht nicht

Beitrag von Rumers »

tictac hat geschrieben:hallo hde,
danke für die super verständliche Erklärung! :idea:
ich denke mal, dass jetzt vorerst alles klar ist, ich meld mich hier, wenn ich wieder ein Problem habe.
tictac
Da kann ich nur zustimmen :) Ist mit dem Code und der Erklärung ziemlioch verständlich. Somit steht der Erstellung eines Stammbaums nichts mehr im Wege :)

Antworten