Avatar billede lubker Nybegynder
09. juni 2005 - 10:54 Der er 7 kommentarer og
1 løsning

MySQL + delphi

Jeg har arbejdet lidt med mysql og delphi, men når jeg arbejder på en ekstern mysql server, har jeg problemmer med rettighederne til ekstern tilgang til databasen.
Jeg leder derefter til en metode at komme uden om dette på.

Overvejede en mulighed, hvor en php-side viste data fra databasen, som delphi så selv kunne indlæse, men ved ikke helt om om dette kan lade sig gøre og i så fald hvordan.

Nogen der kan hjælpe enten med denne metode eller noget helt andet.
Det er meget vigtigt at det er data fra den eksterne database, da programmet skal arbejde sammen med en hjemmeside.
Avatar billede kroning Nybegynder
09. juni 2005 - 11:39 #1
Det letteste ville jo være at komme uden om problemerne med rettighederne, men hvis det ikke kan lade sig gøre hvad så med:

www.minside.dk/data.php?f=g&ID=6253&Navn=Hans Andersen&Addr=Vejen 23
Her er f=g (funktion=gem), dvs. info gemmes, der returneres f.eks.
status=OK

www.minside.dk/data.php?f=l&ID=6253
Her er f=l (funktion=læs), dvs. info læses og returneres som f.eks.:
ID=6253
Navn=Hans Andersen
Addr=Vejen 33

en sidste kunne så være f=s (funktion=slet)
Avatar billede lubker Nybegynder
09. juni 2005 - 12:00 #2
Det er jo både et spørgsmål om firewall og brugeradgang til databasen.

Med hensyn til den anden løsning, hvordan fungerer det så fra delphi.
Har arbejdet en del i php, så den del er ikke noget problem.
Avatar billede kroning Nybegynder
09. juni 2005 - 12:29 #3
Du kan evt. bruge indys TIdHTTP komponent, det kræver kun ganske få linier. F.eks.:

var
  tekst : string;
begin
  tekst:="www.minside.dk/data.php?f=l&ID=6253"
  try
    IdHTTP:=TIdHTTP.Create(nil);
    IdHTTP.ReadTimeout:=15000;
    IdHTTP.AllowCookies:=false;
    teksten:=IdHTTP.Get(tekst);
    IdHTTP.Free;
  except
    tekst:='ERROR'; //fejl
end;

tekst vil nu indeholde:
ID=6253
Navn=Hans Andersen
Addr=Vejen 33

eller hvordan du nu vil lave det.
Avatar billede lubker Nybegynder
09. juni 2005 - 13:17 #4
er der mulighed for at få det delt op i flere variabler direkte eller skal man splitte strengen senere?
Avatar billede kroning Nybegynder
09. juni 2005 - 16:38 #5
Hvad mener du? Du kan evt. bruge en TStringList til at gemme svaret i, så får du helt automatisk delt det op.. hvis du altså i din php laver det sådan at hver linie indeholder en variabel.
Hvis svaret kommer med en var i hver linie så bruger du:
StringList.Text:=IdHTTP.Get(tekst);

hvis du f.eks. laver det så din php giver svaret som en lang komma sepereret linie så kan du bruge:
StringList.CommaText:=IdHTTP.Get(tekst);

men mulighederne er mange.
Avatar billede kroning Nybegynder
09. juni 2005 - 16:40 #6
Glemte lige at når du så skal have de enkelte variabler så kan du bruge:

ID:=StringList.Values['ID'];
Navn:=StringList.Values['Navn'];
osv.
Avatar billede lubker Nybegynder
09. juni 2005 - 18:21 #7
Fandt ud af hvordan jeg kunne tilgå databasen direkte,
Men lægger du et svar, så du kan få point? - Du har trods alt brugt tid på det.
Avatar billede kroning Nybegynder
09. juni 2005 - 19:05 #8
Jeg bruger nu mest tiden fordi jeg syntes det er sjovt og så kan man også mange gange lære noget selv.
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