Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi afrage: in db schon vorhanden? (https://www.delphipraxis.net/94126-afrage-db-schon-vorhanden.html)

ph0 16. Jun 2007 19:18

Datenbank: mysql • Version: 4.1 • Zugriff über: internet

afrage: in db schon vorhanden?
 
hallo, ich möchte abfargen ob edit1.text+edit2.text schon in der db vorhanden sind:

Delphi-Quellcode:
 q:='SELECT nname, vname FROM user WHERE nname='+aps+edit1.text+aps+' AND vname='+aps+edit2.text+aps+'';
    FResult:=FMysql.query(q, true, ex);
    kulu:=fresult.FieldValueByName('nname')+' '+fresult.FieldValueByName('vname');

    if not (edit1.Text+' '+edit2.text=kulu) then
        begin
        showmessage('Registration erfolgreich.');
                if assigned(FResult) then
                begin
                  if FMysql.Status<>MYSQL_STATUS_READY then
                  begin
                  ShowMessage('Ein Ergebnis wurde unvollständig gelesen!');
                  FreeAndNil(FResult);
                  end;
                end;
        q:='SELECT id FROM user ORDER BY id DESC';
        FResult:= FMysql.query(q, true, ex);
        FResult.First;
        anzahl:=strtoint(fresult.FieldValueByName('id'))+1;

         q:='INSERT INTO user (id, nname, vname, pw, jg, kl, email, telefon) VALUES (' +aps+ inttostr(anzahl) +aps+', '+aps+edit1.Text+aps+', '+aps+edit2.Text+aps+', '+aps+edit3.Text+aps+', '+aps+edit4.Text+aps+', '+aps+edit5.Text+aps+', '+aps+edit6.Text+aps+', '+aps+edit7.Text+aps+')';

        if checkbox1.State=cbchecked then
          begin
          for m:=1 to 7 do
          begin
          Tedit(findcomponent('edit' +inttostr(m))).Text:='';
          edit4.Text:='13';
          end;
          end;
        end
  else
      begin
      showmessage('Es wurde bereits ein Account mit diesem Namen angelegt.');
      kulu:='';
      end;
  end;

  end;
wenn die vorhanden sind also edit..=kulu dann kommt auch die showmessage wenn aber nicht, dann kommt der fehler: zugriffsverletzung bei......

mkinzler 16. Jun 2007 19:32

Re: afrage: in db schon vorhanden?
 
Ich würde zuerst überprüfen, wie groß die Ergebnismenge ist.

hoika 16. Jun 2007 19:34

Re: afrage: in db schon vorhanden?
 
Hallo,

in welcher Zeile denn genau ?


Heiko

ph0 16. Jun 2007 19:43

Re: afrage: in db schon vorhanden?
 
ok danke habe jetzt
Delphi-Quellcode:
     if length(fresult.FieldValueByName('nname'))<>0 then // <- das eingefügt...
     kulu:=fresult.FieldValueByName('nname')+' '+fresult.FieldValueByName('vname');
...
und schon klappts thx :)

Sharky 17. Jun 2007 05:58

Re: afrage: in db schon vorhanden?
 
Hai ph0,

so ganz verstehe ich nicht was Du machst ;-)

a) Was ist denn "aps" ?
b) Warum verwaltest Du die IDs in der user-Tabelle selber und lässt das nicht vom DBMS machen?
c) Lege doch auf nname und vname eine Unique-Key um zu verhindern das zweimal der selbe Benutzer angelegt wird.

ph0 17. Jun 2007 10:36

Re: afrage: in db schon vorhanden?
 
also aps ist: aps:=chr(39) also das ' zeichen...
weil ich ganz neu in datenbanken etc bin...und ich nicht weiß/wusste dass und wie das geht...

edit: wenn aber auf vname unique ist, kann dann nicht auch nur einmal der vorname gewählt werden, oder gilt das dann nur für die kombination?

mkinzler 17. Jun 2007 10:41

Re: afrage: in db schon vorhanden?
 
Mur für die Kombination

DGL-luke 17. Jun 2007 10:47

Re: afrage: in db schon vorhanden?
 
...und wenn er dann mal zwei meier müller schulz in der db haben will?

mkinzler 17. Jun 2007 10:52

Re: afrage: in db schon vorhanden?
 
Dann würde aber seine manuelle Abfrage, ob die Kombination schon vorhanden ist auch nicht sinnvoll sein.

DGL-luke 17. Jun 2007 11:10

Re: afrage: in db schon vorhanden?
 
Jop.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 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