Autor Beitrag
Tobi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Do 12.06.03 14:50 
Mein Problem ist eigentlich schnell erklärt. In einer ComboBox (name: Combo_Schulvorraussetzung) wird ein Schulabschluß ausgewählt (Hauptschule, Realschule, Fachabi, Abi), und bei einem Klick auf den Button2 soll dann über das AdoDataSet "DB_verbindung" ein SQL Befehl ausgeführt werden, damit in dem DBGrid (spielt hier keine Rolle) auch wirklich nur die Berufe angezeigt werden, die dem gewählten Abschluß entsprechen.
Sobald ich jedoch auf diesen Button klicke fliege ich aus dem Programm.

schul_vorraussetzung ist eine globale Variable vom Typ Integer.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button2Click(Sender: TObject);
begin
  case Combo_Schulvorraussetzung.ItemIndex of
  0: schul_vorraussetzung := 1;
  1: schul_vorraussetzung := 2;
  2: schul_vorraussetzung := 3;
  3: schul_vorraussetzung := 4;
  end;
DB_verbindung.CommandText :=  'select * from Berufe where Berufs_SchulVorraussetzung=' + IntToStr(schul_vorraussetzung) + ';';
end;


Nachtrag:
Ich habs gerade mal ausprobiert ganz ohne die where-Bedingung oder auch mal nur mit Berufs_SchulVorraussetzung=1 probiert. Wenn die where-Bedingung ganz raus ist, klappt es. Aber warum mit nicht?
Neuromancer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

WinNT 4.0 SP6a, WIN 2k Prof SP3, Win XP Prof SP1
D5 Ent, D6 Ent
BeitragVerfasst: Do 12.06.03 17:45 
Was macht eigentlich das Semikolon am Ende der Query? Vielleicht mag das ja dein SQL-Server nicht besonders....

Gruß

/Edit:
versuch mal:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
DB_Verbindung.CommandText := 'SELECT * FROM Berufe WHERE Berufs_Schulvoraussetzung = :Voraussetzung';
DB_Verbindung.ParamByName('Vorraussetzung').Value := Schul_vorraussetzung;
try
  DB_Verbindung.Open;
  // Hier den restlichen Krempel platzieren
except
  // Hier die Exception behandeln
end
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 12.06.03 19:07 
In dem Thema hier ist ein grundsätzlicher Fehler: Und zwar, alles mit Delphi zu machen. Ich würde das trennen in Delphi-Seite und SQL-Seite. Zuerst muß mal die DB Seite stimmen. Dann kommt Delphi.

_________________
Gruß
Hansa
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 12.06.03 19:09 
also SQL testen mit IBconsole, IBexpert usw. und dann mit Delphi weitermachen, wenn die DB funktioniert.

_________________
Gruß
Hansa
Tobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Fr 13.06.03 14:29 
also, die db funktioniert 100%ig, sie wurde von nem experten auf dem gebiet erstellt. ich habe den fehler nun endlich gefunden!! :)

Die Verbindung zur DB musste ich bevor ich eine neue select-Anweisung stelle mit DB.verbindung.Close; schließen. Um das Ganze dann anzuzeigen habe ich am Ende der Procedur dann alles wieder geöffnet mit DB.verbindung.Open.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 13.06.03 15:29 
Ich denke bei where wär es so? Was Du schreibst ist klar. Aber ob mit oder ohne where konnte es nicht gehen.

Tobi hat folgendes geschrieben:
also, die db funktioniert 100%ig, sie wurde von nem experten auf dem gebiet erstellt...


Hier sind "Experten" genug, frag die mal, ob sie keine Fehler machen.

_________________
Gruß
Hansa
Tobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Fr 13.06.03 23:00 
da hast du recht ;) - nein, aber die datenbank funktioniert. sie wurde schon in nem netzwerk getestet, leider ist aber ms access nötig um sie aufzurufen (logisch....), das ganze soll ich nun auch "von außerhalb" anschauen lassen.