AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Allgemeine Fragen zu Access + Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeine Fragen zu Access + Delphi

Offene Frage von "Saulo"
Ein Thema von Saulo · begonnen am 14. Jul 2003 · letzter Beitrag vom 11. Sep 2003
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 11:29
Zitat von Saulo:
....

Code:
function username : boolean;
begin
  Datamodule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT Username FROM TUser WHERE Username =' +QuotedStr(Form3.Edit1.Text));
  DataModule2.qryUser.Open;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  username;   //1. Aufruf (der überhaupt nichts macht)
  if username = true   //2. Aufruf.
  then ShowMessage('Der Username ist bereits vergeben!')
.....

Ähmmm......

1. Wo weisst Du deiner Funktion Username ein Ergebniss zu?
2. Warum rufst Du sei zweimal auf?


Verstehe mich um Gotteswillen nicht falsch! Aber hast Du schon (in Delphi ) programmiert? Wenn nicht würde ich nicht unbedingt mit einer Datenbank anwendung anfangen!

Da Du ja mit SQL arbeitest "lernst" Du quasi zwei Programmiersprachen gleichzeitig. Und das ist echt hart.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 12:34
ja ich weiß dass ich es nicht kann, aber wie gesagt, ich brauche es für die schule, und das mit funktionen und sowas haben wir nun mal noch nicht gemacht... deswegen weiß ich ja auch nicht so genau wie das geht! und deswegen habe ich ja auch dieses forum aufgescht also ich habe keine ahnung wo ich der funktion ein ergebnis zuweise, muss das immer in einer variable passieren? weil ich dachte eine funktion liefert einfach einen wert der sich aus deren ausführung ergibt, und der muss nicht in einer variable gespeichert werden... ich habe keine ahnung, wie müsste es denn richtig heißen? also das soll jetzt so sein, dass bevor irgednwas gemacht wird erst geprüft werden soll ob der username vorhanden ist, mehr nicht.... und dazu soll halt diese funktion gut sein... nur wie gesagt, ich kenne mich nicht besonders gut damit aus...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#33

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 12:52
Hai Saulo,

hier ersteinmal der "wichtigste" Teil:

Delphi-Quellcode:
function username: boolean;
begin
  Datamodule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT Username FROM TUser WHERE Username =' + QuotedStr(Form3.Edit1.Text));
  DataModule2.qryUser.Open;
  if (DataModul2.qryUser.RecordCount = 0) then
   begin
    result := false;
   end
  else
   begin
    result := true;
   end;
  // Als Alternative zu der if Abfrage kannst Du auch:
  // result := Not (DataModul2.qryUser.RecordCount = 0);
  // schreiben.
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
 if (username) then
  begin
   ShowMessage('Der Username ist bereits vergeben!')
  end
 else
  begin
  end;
result enthält den Rückgabewert einer Funktion.

Den Rest habe ich ersteinmal weg gelassen.

Frage: Wie gibt der Anwender Name, Telefon usw. ein?
Werden die Daten in "einfache" TEdit eingegeben?

Deinen code kann man dann nämlich noch um einiges leichter und übersichtlicher machen!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#34

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 13:12
Ok, danke, jetzt klappts

also der user gibt Vorname, Nachname, Telefon und Adresse über DBEdit-Felder ein, Passwort + Bestätigung über MaskEdit-Felder und Username über ein normales Edit-Feld.... und wie kriege ich es hin dass er button erst aktiv wird wenn wirklich alles eingegeben ist? und wie prüfe ich ob die telefonnummer richtig eingegeben ist...? so wie es jetzt da steht funzt es nicht....
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#35

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 13:45
Hai Saulo,

anbei einmal etwas Code. Ich habe das Ganze ohne DBEdit-Felder gemacht weil.

Alle Felder sind reine TTedits. Im FormActivate lege ich die Passwordchar für die beiden Passwort-Felder fest.

Delphi-Quellcode:
procedure TForm3.FormActivate(Sender: TObject);
begin
 te_Passwort.PasswordChar := '*';
 te_wiederholung.PasswordChar := '*';
end;

{*********************************************************}

procedure TForm3.Button1Click(Sender: TObject);
begin
 Button3.Enabled := False;
 if (Length(TRIM(te_Username.Text)) < 6) then
  begin
   ShowMessage('Der Benutzername muss mindestens 5 Zeichen lang sei.');
   te_Username.SetFocus;
   Exit;
  end;
 if (Length(TRIM(te_Username.Text)) < 6) then
  begin
   ShowMessage('Das Passwort muss mindestens 5 Zeichen lang sei.');
   te_Passwort.SetFocus;
   Exit;
  end;
 if (te_wiederholung <> te_Passwort) then
  begin
   ShowMessage('Das Passwort ist nicht richtig bestätigt.');
   te_wiederholung.Text := '';
   te_wiederholung.SetFocus;
   Exit;
  end;
 if (TRIM(te_Vorname.Text = '')) then //Diesen Block für alle übrigen Edits wiederholen.
  begin
   ShowMessage('Bitte einen Vornamen eingeben.');
   te_wiederholung.SetFocus;
   Exit;
  end;

 Datamodule2.qryUser.Close;
 DataModule2.qryUser.SQL.Clear;
 DataModule2.qryUser.SQL.Add('SELECT Username FROM TUser WHERE Username ='+ QuotedStr(te_Username.Text));
 DataModule2.qryUser.Open;
  if (DataModul2.qryUser.RecordCount <> 0) then
   begin
    ShowMessage('Der Username ist bereits vergeben!');
    Datamodule2.qryUser.Close;
   end
  else
   begin
    with DataModule2.TUser do
     begin
      try
       Edit;
       FieldByName('Passwort').AsString := te_Passwort.Text;
       FieldByName('Username').AsString := te_Username.Text;
       FieldByName('Vorname').AsString := te_Vorname.Text;
       FieldByName('Name').AsString := te_Name.Text;
        // Hier wieder alle weiteren Felder
       Post;
       button3.Enabled := True;
      except
       Close;
       ShowMessage('Fehler unsoo');
      end;
     end;
   end;
end;
Zitat von Saulo:
...prüfe ich ob die telefonnummer richtig eingegeben ist..
Wie ist denn deine Definition einer "richigen Telefonnummer"?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#36

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 16:40
ok dankeschön! das hat alles soweit geklappt, aber jetzt stehe ich vor einem neuen problem: wie speichert man das ergebnis einer abfrage in eine variable? bzw. wie aktiviert man einen bestimmten datensatz? ich möchte dass jeder User mit dem Vornamen angesprochen wird, mein quelltext dazu sieht volgendermaßen aus:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var s : string;
begin
  DataModule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT Vorname FROM TUser WHERE Username =' +QuotedStr(form1.edit1.text));
  DataModule2.qryUser.Open;
  s := DataModule2.TUserVorname.AsString;
  form2.Label1.Caption := 'Hallo '+s;
end;
bitte nicht wieder lachen ich weiß ich kanns nicht... aber irgendwie gehts doch in diese richtung oder....?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#37

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 16:49
[quote="Saulo"]....
....

Ich lache doch überhaupt nicht! Ich wollte nur wissen was Du schon kannst um die Hilfe entsprechend aufzubauen

Du bist auf dem richtigen Weg.

Überlege doch mal.... Wenn du mit:
 FieldByName('Passwort').AsString := te_Passwort.Text; Einen Wert in die Tabelle schreibst kannst Du ihn mit:

Delphi-Quellcode:
  DataModule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT Vorname, Name FROM TUser WHERE Username =' +QuotedStr(form1.edit1.text));
  DataModule2.qryUser.Open;
  s := DataModule2.qryUser.FieldByName('Vorname').AsString
 + '
 + DataModule2.qryUser.FieldByName('Name').AsString;
  form2.Label1.Caption := 'Hallo '+s;
auslesen.


EDIT: Kleinen Fehler im Code behoben
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 17:41
hm... danke für die schnellen und aufschlussreichen antworten!
jetz stellen sich immer noch 2 fragen:

1. wie kann man am geschicktesten eine suchfunktion implementieren und das ergebnis dann in einem DBGrid oder so ausgeben...?

2. wie schreibt man ein Datum in die Tabelle, bzw. als was für ein Format muss man es behandeln...? TDateTime..?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#39

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 18:01
Zitat von Saulo:
...
1. wie kann man am geschicktesten eine suchfunktion implementieren und das ergebnis dann in einem DBGrid oder so ausgeben...?
Ich weiss nicht ob bei Access der LIKE-Befehl unterstützt wird. Ich arbeie mit einem MS-SQL-Server.

Vesuche mal folgendes:

Delphi-Quellcode:
  DataModule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT * FROM TUser WHERE (name LIKE'     + QuotedStr (form1.edit1.text)
   + '%');
  DataModule2.qryUser.Open;
Durch den Befehl Like können Wildcards verwendet werden.

z.B;
SQL-Code:
 SELECT * FROM TUser WHERE (name LIKE 'SHA%') //Zeige alle Name die mit SHA anfangen

 SELECT * FROM TUser WHERE (name LIKE '%SHA') //Zeige alle Name die mit SHAR enden

 SELECT * FROM TUser WHERE (name LIKE '%SHA%') //Zeige alle Name in denen SHA vorkommt

Zitat von Saulo:
...
2. wie schreibt man ein Datum in die Tabelle, bzw. als was für ein Format muss man es behandeln...? TDateTime..?
 DataModule2.qryUser.FieldByName ('datum').AsDateTime := now;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#40

Re: Allgemeine Fragen zu Access + Delphi

  Alt 27. Jul 2003, 19:12
ok, danke! also das mit der suchfunktion klappt nur, wenn ich es direkt in die Query schreibe, also nicht zur laufzeit. wenn ich das in eine dynamische query schreiben will (was ziemlich empfehlenswert ist bei einer suchfunktion ) erkennt er das hochkomma nicht und fängt direkt einen neuen string an, so dass ich den ausdruck '%la%' nicht in hochkommas setzen kann... weiß da jemand einen lösungsvorschlag?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 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