Avatar billede ozone1976 Nybegynder
16. august 2001 - 11:04 Der er 6 kommentarer og
1 løsning

Visual C++ og ACCESS

Hejsa - jeg har et problem med et loginsystem baseret på en table i Access...

Mit problem er som følger (Det skal lige siges at jeg ikke er så hulens erfaren =( )

Jeg har programmet sådan at når du starter programmet kommer en login box op - her skal tastes Username og Password...

Username og Password er gemt i en Access database i samme table og jeg skal gerne have det sådan at folk kan oprettes i databasen, og at programmet så tjekker databasen for brugernavn/password.

Jeg er da kommet så langt som at kunne sammenligne Databasen\'s aktive record med det indtastede. Jeg vil gerne have at når du taster dit brugernavn og password og trykker \"login\", skal den søge i databasen efter det indtastede brugernavn og sammenligne det indtastede password med det i databasen...

Er der evt. nogen der kan hjælpe mig med et eksempel på en programstump, der kan forklare mig hvordan jeg gør?

Mange tak på forhånd,
Ozone
Avatar billede perfi Nybegynder
16. august 2001 - 12:43 #1
Hej..
Nu arbejder jeg i borland bulideren, men mon ikke det er nogenlunde detsamme.
 
\"Forsspørgslen\"->SQL->Clear();
\"Forsspørgslen\"->SQL->Add(\"SQL statement\");
\"Forsspørgslen\"->SQL->Add(\"where User_ID=:Param1 and Pass_ID=:Param2\");
Forsspørgslen->ParamByName(\"Param1\")->AsString=\"og der hvor du skriver dit brugerid f.eks Edit1->Text;
\"Forsspørgslen\"->ParamByName(\"Param2\")->AsString=\"og der hvor du skriver dit password f.ekd Edit2->Text;
Forsspørgslen->Open();
Forsspørgslen->First();
                      hile(!Forsspørgslen->Eof)
                        {
                        adg=true;
                        DATA->Password->Next();
                        }
if(adg)
{

Form1->Show();

{

Dette er en men måde at gøre det på, og der findes sikker 400 andre måder
:perfi
Avatar billede perfi Nybegynder
16. august 2001 - 12:44 #2
der mangler naturligvis et \"w\" i hile, så det er en while
:perfi
Avatar billede ozone1976 Nybegynder
16. august 2001 - 13:02 #3
Hmmm - enter er jeg ufattelig dum, og fatter ingenting af din kode - eller også virker den bare ikke i VisualC++... \"Forsspørgslen\" hvad er det? Er det en pointer til mit Recordset, eller hvad er det?
Under alle omstændigheder - hvis jeg bruger denne kode, kommer compileren med 35 fejl. Jeg kan prøve at uddybe det lidt :

Username variabel = m_strLoginUser
Password variabel = m_strLoginPass
Database username variabel = m_pSet->m_Username
Database password variabel = m_pset->m_Password
DSN = Login
Tablename = Users


Mange tak for et godt forsøg

Med venlig hilsen
Ozone
Avatar billede perfi Nybegynder
16. august 2001 - 13:16 #4
Nej, du kan selcfølgelig ikke compile det direkte. Min kode ser nogenlunde således ud, har bare pillet min exceptions ud (try/catch):
DATA er der hvor jeg har gemt mine QUERY komponenter og Password er den Query jeg benytter:
Form1 er den Form (unit, cpp eller. h) hvor jeg har erklæret de flest variabler.
adg er en boolsk variabel.
Form1->_user er en String hvori SQL sætningen ligger i:
String _user;
strcpy(_user,\"SELECT User_ID, Pass_ID, Name, Init, Lev FROM pass_multi\"); pass_multi er navnet på min database alias.
Variablen er erklæret på en anden form (Form1) derfor en peger dertil ( HUSK at oprette et objekt af Form1 til denne form ( som hedder PasswordDlg );

DATA->Password->SQL->Clear();
DATA->Password->SQL->Add(Form1->_user);
DATA->Password->SQL->Add(\"where User_ID=:Param1 and Pass_ID=:Param2\");
DATA->Password->ParamByName(Form1->p1)->AsString=Edit1->Text;
DATA->Password->ParamByName(Form1->p2)->AsString=Edit3->Text;
DATA->Password->Open();
DATA->Password->First();
                            while(!DATA->Password->Eof)
                            {
                            adg=true;
                            Form1->Ini_1[_num]=DATA->Password->FieldByName(\"Init\")->AsString;//lægger værdien i en variabel
                            Form1->Lev_1[_num]=DATA->Password->FieldByName(\"Lev\")->AsString;
                            DATA->Password->Next();
++_num;
                            }
if(adg)
{

Form1->Show();

PasswordDlg->Visible=false;

{
else

\"FUCK OFF - DIN HACKER\" // forsjov..

DU kan også lave en try / catch på den, men jeg ved ikke om det er for tidligt ??
Hvis der er andre ting, så må du lige sige til
:perfi
Avatar billede ozone1976 Nybegynder
16. august 2001 - 13:35 #5
Jeg takker for den detaljerede forklaring, men har nu prøvet at gøre som du har beskrevet... Det lader til at syntaxen ikke er den samme, for mange af de kommandoer du har brugt forstår Visual C++ simpelthen ikke... Beklager at måtte være til så meget besvær =(

Med venlig hilsen
Ozone
Avatar billede ozone1976 Nybegynder
16. august 2001 - 13:37 #6
Hvis nogen har ICQ og har mod på at guide mig over ICQ vil jeg være evigt taknemmelig... Mit ICQ nr er 105203347

MVH
Ozone
Avatar billede ozone1976 Nybegynder
16. august 2001 - 13:56 #7
ARG nu fik jeg klokket i det - IGEN - *LOL*
Jeg ville tildele nogle point til Perfi for hans besvær, men kom vist samtidig til at lukke spørgsmålet... DETTE EMNE ER IKKE SLUT ENDNU - kan man på nogen måde åbne det igen?

MVH Ozone
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester