Avatar billede tenate Nybegynder
28. september 2000 - 01:06 Der er 8 kommentarer og
1 løsning

dbase

Hver gang jeg prøver at bruge noget med DB og dbase vil delphi have brugernavn og adgangskode. hvordan kan det være og hvordan får man det væk. det er nemlig meget irreterende håber det kan løses.
på forhånd tak.
Avatar billede pellelil Nybegynder
28. september 2000 - 07:40 #1
Nu har jeg aldrig selv \"gjort noget i DBase\", men hvis Delphi spørge om brugernavn/password så er det nok fordi at der på databasen er sat et brugernavn/password.

Hvis du kender det brugernavn/password som der skal indtastes så kan du selv \"føde\" disse data uden at brugeren (af dit program) skal indtaste brugernavn/password (eller for den sags skyld ser at den beder om det).

Den nemmeste måde er at lave et DataModule (File->New->Data Module). I dette DataModule indsætter du en TDataBase. For denne sætter du property\'en \"AliasName\" til at indeholde (alias) navnet på din database og (VIGTIGT) du sætter også \"DatabaseName\" til samme navn. I params kan du sætte de parametre som er \"nødvendige\" i din database. Jeg har i stedet valgt at sætte dem i DataModules \"OnCreate\" og \"OnDestroy\" events, hvor jeg henholdsvis åbner og lukker jeg forbindelsen:
<SNIP>
  //--- Logon to MS-SQL server ---
  if DB_FccSoft <> nil then begin
    if DB_FccSoft.Connected then DB_FccSoft.Connected := False;  // Luk
    with DB_FccSoft do begin
      Params.Values[\'USER NAME\'] := \'user\';
      Params.Values[\'PASSWORD\']  := \'password\';
      LoginPrompt := False;
      Connected  := True;
    end;
  end;
</SNIP>

<SNIP>
  if (DB_FccSoft <> Nil) and (DB_FccSoft.Connected) then DB_FccSoft.Connected := False;
</SNIP>
Avatar billede delphi Nybegynder
28. september 2000 - 10:34 #2
Det behøver nu ikke være password beskyttelse på databasen før man bliver bedt om at indtaste et (tomt) password!  Laver du fx. en Access DB, uden password beskyttelse, som man connecter med via en TTable, så vil man således blive bedt om UserName/Password når man åbner tabellen.

Løsningen på dette problem er som Pellelil er lidt inde på at bruge en TDatabase komponent, men du behøver nu ikke at lave nogen kode. 

1: Opret, med Database Exploreren, et alias til di Access tabel (Default navn er MSACCESS1)
2: Placer en TDatabase komponent på din Delphi form (eller bedre datamodule)
3: Sæt TDatabasen\'s properties:
  - AliasName: MSACCESS1 (eller hvad du nu kaldte dit alias)
  - DatabaseName: Local  (\'Fup\' alias, se længere nede)
  - LoginPrompt: False (Spørg IKKE efter password)
  - Params:  Denne parameter kan sættes hvis du connecter til en DB med password, i såfalde er værdierne (Som pellelil skrev):
  -  USER NAME = \'User\'
  -  PASSWORD = \'Password\'
4: Sæt connected til true

Du har nu oprettet en forbindelse til din DB (uden password forespørgelse).  Resten af din application kan nu udnytte denne forbindelse via det \'Fup\' alias der blev benyttet.  Dette gøres ved:

1: Drop en TTable på din form/Datamodule.
2: Vælg Databasename til Local
3: Sæt TableName.
4: Sæt active til true

Delphi
Avatar billede pellelil Nybegynder
28. september 2000 - 10:41 #3
Delphi > Jeg sagde også at man kunne bruge Param, men jeg havde i stedet valgt at gøre det \"manuelt\"

Ved at bruge samme navn på din TDatabase som din fyske database navn (alias) så kan du senere fjerne dit DataModule og/eller TDatabase som du ønsker. Hvis de har samme navn vil Delphi bruge din TDatabase (hvis den findes) eller vil den bruge dit Alias
Avatar billede delphi Nybegynder
28. september 2000 - 10:49 #4
Delphi > Jeg sagde også at man kunne bruge Param, men jeg havde i stedet valgt at gøre det \"manuelt\"

Ups, det så jeg ikke.
Avatar billede delphi Nybegynder
28. september 2000 - 11:28 #5
Min pointe er iøvrigt også at man kan/skal bruge LoginPrompt property\'en frem for Params.

Delphi
Avatar billede pellelil Nybegynder
28. september 2000 - 11:31 #6
Korrekt, uden at sætte LoginPrompt så er det helle lige meget, men ellers var der ikke nogle \"hard feelings\" fra min side - det var blot en konstatering...
Avatar billede pellelil Nybegynder
28. september 2000 - 11:35 #7
Forøvrigt kan jeg lige KONSTATERE at jeg også satte LoginPrompt og Connected  :-)
Avatar billede delphi Nybegynder
28. september 2000 - 12:33 #8
Utroligt - jeg har bare for travlt i dag (men ikke lyst til at arbejde...).  Jeg bemærkede KUN ved dit eksemepl, at du under runtime satte Params.  Ku være at jeg skulle læse lidt mere før jeg svare.

Delphi
Avatar billede tenate Nybegynder
29. september 2000 - 12:49 #9
jeg kender ikke User og Password.
Det er også administrartor kode den spørger efter.
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