Autor Beitrag
Müscha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Mo 17.04.06 21:40 
tach,

es sind benutzer mit passwort in einer Accessdatenbank geschrieben worden.

nun soll abgefragen werden ob user und passwort übereinstimmen, nach suchen im archiv bin ich auf sowas gestoßen und hab es bisschen optimiert, aber es hakt irgendwo, weiß einer warum?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button6Click(Sender: TObject);
var name, pw:string  ;

begin

 name:=edname.Text;
 pw:=edpw.text;


 with form2 do begin

   Query1.Active := False;
   Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + '''name''' + ' AND Passwort = ' + '''pw''';
   Query1.Active := True;
 end;

 IF form2.Query1.EOF THEN showmessage('keiner da'// Kein Benutzer vorhanden
 else form2.Show;

end;
end.


dankeschön

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
sekzero
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 57



BeitragVerfasst: Mo 17.04.06 22:03 
Ich hab da zwar keine ahnung von aber muss das "Query1.Active := False;" nicht True und das Query1.Active := True; auf False?
Weil wenn ich das richtig verstehe beendest du die Verbindung und willst dann was übertragen und verbindest am Ende ?
Müscha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Mo 17.04.06 22:07 
mhhh ändert auch nix, egal ws ich da mache, es kommt immer nur di showmessage und nix weiter , trotzdem danke :beer:
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Mo 17.04.06 22:13 
user profile iconMüscha hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button6Click(Sender: TObject);
var name, pw:string  ;

begin

 name:=edname.Text;
 pw:=edpw.text;


 with form2 do begin

   Query1.Active := False;
   Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + '''name''' + ' AND Passwort = ' + '''pw''';
   Query1.Active := True;
 end;

 IF form2.Query1.EOF THEN showmessage('keiner da'// Kein Benutzer vorhanden
 else form2.Show;

end;
end.



Probiere mal folgendes :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Button6Click(Sender: TObject);
var name, pw:string  ;

begin

 name:=edname.Text;
 pw:=edpw.text;


 with form2 do begin

   Query1.Active := False;
   Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + '''name''' + ' AND Passwort = ' + '''pw''';
   Query1.SQL.Open;
   Query1.Active := True;
 end;

 IF form2.Query1.EOF THEN showmessage('keiner da'// Kein Benutzer vorhanden
 else form2.Show;

end;
end.
Müscha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Mo 17.04.06 22:19 
also query1.sql.open kann schon mal gar nicht funktionieren und da hab ich eben query1.open probiert und es ändert sich nix.


ist da irgendwo ein logischer Fehler? denn es kommt immer nur die showmessage...


Zuletzt bearbeitet von Müscha am Mo 17.04.06 22:48, insgesamt 1-mal bearbeitet
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Mo 17.04.06 22:24 
Jetzt mal zwei ganz dumme Fragen gestellt.

1.) Du hast eine Verbindung zur Datenbank ?
2.) Deine Query1 ist auch mit der Datenbank verbunden ?

Denn ich mache meine Abfragen so :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  with IBDataModule.IBDBBasketDetail do begin
    SQL.Clear;
    SQL.Add('SELECT * FROM ' + postkorb + ' WHERE Auftragsnr=' + QuotedStr(detailsrch) + ';');
    Open;
    Active := true;
    Nachname.Caption := Fields[6].AsString;
    Vorname.Caption := Fields[5].AsString;
    Strasse.Caption := Fields[7].AsString;
    PLZ.Caption := IntToStr(Fields[8].AsInteger);
    Ort.Caption := Fields[9].AsString;
    Telefonnr.Caption := Fields[10].AsString;
    Auftragsart.Caption := Fields[2].AsString;
    Auftragsdatum.Caption := Fields[3].AsString;
    ErledigtBis.Caption := Fields[4].AsString;
    Active := false;
  end;
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Mo 17.04.06 22:36 
user profile iconbis11 hat folgendes geschrieben:
Jetzt mal zwei ganz dumme Fragen gestellt.

1.) Du hast eine Verbindung zur Datenbank ?
2.) Deine Query1 ist auch mit der Datenbank verbunden ?


Meine Vermutungen gehen in die gleiche Richtung.
Nimm doch mal ein DBGrid und verbinde Sie mit der Query und mache mal eine einfache Abfrage
ausblenden Delphi-Quelltext
1:
"Select * from Tabelle1"					
Zitat:
Denn ich mache meine Abfragen so :

Stellt aber auch nicht sicher ob auch wirklich eine Verbindung vorhanden ist...

Schau Dir mal diesen Topic an www.delphi-forum.de/...56161&highlight=
Dort sind einige Hinweise drin (sowohl zum verbinden als auch bezüglich PW-Abfrage. Es geht zwar um eine MySQL-DB aber das Prinzip ist dasselbe!)

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
Müscha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Mo 17.04.06 22:46 
eh was geht denn bitte mit euch

wollt ihr mich verarschen, es funktioniert doch schon einiges daten einfügen und löschen und anzeigen und solche faxen...

stellt mich ma nich für ganz so blöde hin!!!!


und genau von dieser seite hab ich das ja!!!

ich probiers ma so wie du, aber erst morgen, bin müde!
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Mo 17.04.06 23:03 
user profile iconMüscha hat folgendes geschrieben:
eh was geht denn bitte mit euch

wollt ihr mich verarschen, es funktioniert doch schon einiges daten einfügen und löschen und anzeigen und solche faxen...

stellt mich ma nich für ganz so blöde hin!!!!


und genau von dieser seite hab ich das ja!!!

ich probiers ma so wie du, aber erst morgen, bin müde!

Wer will wohl wen verarschen? Wenn es wirklich gehen würde, würdest Du ja hier nicht nachfragen?
(Deine Datenmenge ist leer und pasta!)
Von mir erhälst Du zumindest keine Antwort mehr!

PS: Woher sollen wir wissen das bereits "einiges" geht? Sind wir Hellseher, zumal Du den Code eh nur aus meinem erwähnten Topic abgekupfert hast - naja..

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Di 18.04.06 17:22 
Moin -)
Diese Abfrage
ausblenden Delphi-Quelltext
1:
Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + '''name''' + ' AND Passwort = ' + '''pw''';					
KANN ja auch kein Ergebnis liefern, weil die Query das SQL-Statement so interpretiert:
Select * from Tabelle1 WHERE Nutzername = ''name'' AND Passwort = ''pw'' ;-)
Oder gibt es einen Benutzer, der name heißt und sein Passwort pw :gruebel: :roll:

Vermutlich sind name und pw Variablen aus entsprechenden Editfeldern; also müsste das SQL-Statement so lauten:
ausblenden Delphi-Quelltext
1:
2:
Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ''' + name + ''' AND Passwort = ''' + pw +'''';
Query1.Open;

Besser:
ausblenden Delphi-Quelltext
1:
2:
Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + QuotedStr(name) + ' AND Passwort = ' + QuotedStr(pw);
Query1.Open;

...noch besser natürlich mit Parametern:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername=:BNAME AND Passwort=:PWD';
Query1.ParamByName('BNAME').AsString := name;
Query1.ParamByName('PWD').AsString := pw;
Query1.Open;

//EDIT: delphitags eingefügt
MR_Harmonie
Hält's aus hier
Beiträge: 13

win xp
delphi 7
BeitragVerfasst: Di 18.04.06 18:55 
Titel: ALSO folgendes
Ich darf mich vorstell, ich bin der, um dessen Programm es sich handelt.

Ich hab jetzt alle letzten 3 Code Möglichkeiten probiert, es ändert sich nichts wirklich..

Dennoch wenn ich als benutzername: name
und als passwort: pw eingebe

passiert erstma nichts, wenn ich die aber als datensatz in da Datenbank habe, und dann abrufen will, dann versucht er zwar die Form zu öffnen, schmiert mir aber dabei ab.

S kommt n Sanduhr-mauszeiger mit SQL daran, und das Programm is dann futsch...

Bitte weiterhelfen
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Di 18.04.06 21:52 
Titel: Re: ALSO folgendes
user profile iconMR_Harmonie hat folgendes geschrieben:
Ich darf mich vorstell, ich bin der, um dessen Programm es sich handelt.
Müscha = Mr_Harmonie ?

Zitat:

Ich hab jetzt alle letzten 3 Code Möglichkeiten probiert, es ändert sich nichts wirklich..

Dennoch wenn ich als benutzername: name
und als passwort: pw eingebe

passiert erstma nichts, wenn ich die aber als datensatz in da Datenbank habe, und dann abrufen will, dann versucht er zwar die Form zu öffnen, schmiert mir aber dabei ab.

S kommt n Sanduhr-mauszeiger mit SQL daran, und das Programm is dann futsch...

Bitte weiterhelfen

Ein SQL-String alleine macht noch nicht viel. Wie sieht denn der restliche Code aus?
Wenn Du willst, dass Dir geholfen wird, solltest Du Dein Problem schon möglichst genau beschreiben!

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
MR_Harmonie
Hält's aus hier
Beiträge: 13

win xp
delphi 7
BeitragVerfasst: Mi 19.04.06 10:26 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button6Click(Sender: TObject);
var name, pw:string  ;

 begin

name:=edname.Text;
pw:=edpw.text;

with form2 do begin

Query1.Active := False;
Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + '''name''' + ' AND Passwort = ' + '''pw''';
Query1.Active := True;

 end;

IF form2.Query1.EOF THEN showmessage('keiner da'{ Kein Benutzer vorhanden}
   else form2.Show;

  end;



hier nochmal der quelltext, und MR_Harmonie ist nicht Müscha schließlich steht mein Name auch unterm Artikel, Müscha hat dieseb Eintrag bloß schon reingestellt, bevor ich angemeldet war,


wenn du lust und zeit hast. würde ich dir auch mein Programm mal geben--- denn ich hab recht wenig ahnung, aber die einstellungen der einzelnen Komponenten können ja auch nicht wirklich falsch sein, da dass reinschreiben von Datensätzen in die Datenbank und das Löschen funktionieren.

bin ratlos
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Mi 19.04.06 11:43 
Hi,

probiers mal damit

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button6Click(Sender: TObject);  
var name, pw : string  ;  

begin  
   name := edname.Text;  
   pw   := edpw.text;  

  with form2 do 
   begin  
    Query1.Active := False;  
    Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ' + QuotedStr(name)
                        + ' AND Passwort = ' + QuotedStr(pw);  
    Query1.Active := True;  
  end;  

  IF form2.Query1.RecordCount = 0 then showmessage('keiner da'{ Kein Benutzer vorhanden}  
   else form2.Show;  
end;


Code ungetestet (sollte aber funktionieren)

Uwe
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 19.04.06 12:33 
Mannoman, allet Mimosen hier :wink:
1. Probier 'Select * from Tabelle1'
2. Zeig uns die ersten paar Zeilen
3. Dann gehts weiter.
4. Vermutlich gibt es einfach keinen Anwender mit diesem Namen und dem Passwort.
5. Die Prüfung, ob es einen Eintrag mit dem Namen und dem Passwort gibt, ist sowieso nicht korrekt.
6. Es muss heißen 'If MyQuery.IsEmpty' und nicht 'IfMyQuery.EOF'.

_________________
Na denn, dann. Bis dann, denn.
MR_Harmonie
Hält's aus hier
Beiträge: 13

win xp
delphi 7
BeitragVerfasst: Mi 19.04.06 12:41 
Titel: a
also ich habe wie folgt den quelltext von uwewo ausprobiert, es kommt der gleiche fehler.

er zeigt mir immer die showmessage an,

zu alzaimer , hab ich auch aussprobiert, bringt aber das gleiche ergebnis...
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 19.04.06 13:04 
Punkte 1-2 bitte ausführen. Pkt. 3 übernehme ich. :wink:

user profile iconalzaimar hat folgendes geschrieben:

1. Probier 'Select * from Tabelle1'
2. Zeig uns die ersten paar Zeilen
3. Dann gehts weiter.

_________________
Na denn, dann. Bis dann, denn.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.04.06 13:24 
Tue alzaimar den Gefallen.
Die Ursachen können sehr vielfältig sein:
- Leerzeichen bei der Eingabe in die Textfelder
- Groß- und Kleinschreibung ist unterschiedlich
- Passwort ist auf der DB verschlüsselt
- Filter beim Query1 aktiv
- In form2 könnten die Variablen name und pw ebenfalls definiert sein. Dann steht dort immer was falsches drin
- ...
Das sind nur die Dinge, die mir auf die Schnelle auffallen.
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Mi 19.04.06 13:36 
Wenn er immer nur die Else Anweisung ausführt bedeutet es, das keine Datensätze mit
Deiner Abfrage übereinstimmen.

Passwort verschlüssel???
Benutzer sicher vorhanden??
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Mi 19.04.06 13:41 
Moin :-)


user profile iconMR_Harmonie hat folgendes geschrieben:
also ich habe wie folgt den quelltext von uwewo ausprobiert, es kommt der gleiche fehler.

er zeigt mir immer die showmessage an, ...

@ mr_harmonie: Nett, dass Du den Code von user profile iconuwewo ausprobiert hast...Unterscheidet selbiger sich etwa von meinem Codebeispiel :roll: Im auf meinem folgenden Posting hast Du geschrieben:

user profile iconMR_Harmonie hat folgendes geschrieben:
...
Ich hab jetzt alle letzten 3 Code Möglichkeiten probiert, es ändert sich nichts wirklich..

Weiter: Ich hatte in meinem Beitrag auf das 'fehlerhafte' SQL-Statement hingewiesen, wieso postet Du das wieder :gruebel: