Autor |
Beitrag |
Müscha
      
Beiträge: 118
|
Verfasst: 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?
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') else form2.Show;
end; end. |
dankeschön
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
sekzero
      
Beiträge: 57
|
Verfasst: 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 
      
Beiträge: 118
|
Verfasst: 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 
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Mo 17.04.06 22:13
|
|
Müscha 
      
Beiträge: 118
|
Verfasst: 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
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: 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 :
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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Mo 17.04.06 22:36
bis11 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
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 
      
Beiträge: 118
|
Verfasst: 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Mo 17.04.06 23:03
Mü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
      
Beiträge: 374
WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
|
Verfasst: Di 18.04.06 17:22
Moin -)
Diese Abfrage
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
Vermutlich sind name und pw Variablen aus entsprechenden Editfeldern; also müsste das SQL-Statement so lauten:
Delphi-Quelltext 1: 2:
| Query1.SQL.Text := 'Select * from Tabelle1 WHERE Nutzername = ''' + name + ''' AND Passwort = ''' + pw +''''; Query1.Open; |
Besser:
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:
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
|
Verfasst: 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
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Di 18.04.06 21:52
Titel: Re: ALSO folgendes
MR_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
|
Verfasst: Mi 19.04.06 10:26
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') 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
      
Beiträge: 154
|
Verfasst: Mi 19.04.06 11:43
Hi,
probiers mal damit
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') else form2.Show; end; |
Code ungetestet (sollte aber funktionieren)
Uwe
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 19.04.06 12:33
Mannoman, allet Mimosen hier
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
|
Verfasst: 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
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 19.04.06 13:04
Punkte 1-2 bitte ausführen. Pkt. 3 übernehme ich.
alzaimar 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
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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
      
Beiträge: 154
|
Verfasst: 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
      
Beiträge: 374
WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
|
Verfasst: Mi 19.04.06 13:41
Moin
MR_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 uwewo ausprobiert hast...Unterscheidet selbiger sich etwa von meinem Codebeispiel  Im auf meinem folgenden Posting hast Du geschrieben:
MR_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 
|
|