28. september 2000 - 01:06Der 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.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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>
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 > 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
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...
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.
jeg kender ikke User og Password. Det er også administrartor kode den spørger efter.
Synes godt om
Ny brugerNybegynder
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.