Jeg vil da gerne lige høre hvad det er du mener der umuliggør brugen af PHP? Der er, så vidt jeg ved, intet du kan gøre gennem Delphis MySQL interface, som ikke kan gøres gennem PHP.
Det er et spørgsmål om, at der skal laves en lang række sql forespørgsler, når visse felter bliver valgt.
Php vil simpelthen bare for langsomt at arbejde i, når der skal laves ca. 100 daglige opdateringer/indtastninger, hvor siden skal reloades mindst 4 gange pr. opdatering/indtastning.
Er det så ikke muligt at programmere det således at der køres flere SQL-eksekveringer ad gangen?
Men for at forsøge mig med et svar; Jeg ved de større versioner af Delphi har specielle komponenter til håndtering af CGI, men man skal altså op i Enterprise-størrelsen for at få dem. Er ikke sikker med de nyere versioner, da jeg kun havde råd til en Pro version.
For at kunne køre dette, skal du dog være placeret på en Windows-server, og så er de lidt besværlige at arbejde med (så vidt jeg har hørt, har ikke selv prøvet med Delphi).
En anden løsning er jo selvfølgelig at skrive en decideret server-applikation i Delphi, der så vil *være* serveren, men det kræver at din udbyder har stor tiltro til dig, samt at du ligger på en Windows server (med mindre du bruger Kylix til det).
Ikke noget problem, du henter bare Kylix 2 open edition og laver dit cgi i Kylix ( nu hedder det jo godt nok ikke cgi i linux, men du kan lave et apache modul )
martinlind > og der kan jeg bygge et "grafisk" interface ligesom en alm. form i Delphi ? og derefter køre det fra en html side, ligesom en ActiveX komponent ?
Hvis det virkelig er vigtigt med en sådan brugerflade, og du ikke *kan* bruge PHP til det (af grunde jeg endnu ikke helt forstår), så bør du nok kigge på Java.
martinlind, dkn > vil det sige at med isapi/cgi kan jeg bygge en server applikation, der i princippet on the spot kan foretage de forespørgsler jeg ønsker, og derefter hente indholdet til en klient applikation ?
angelod > java er vel også klient side ikke ? og så har jeg stadig problemet med at jeg ikke kan kontakte databasen.
isapi/cgi er ligesom et serverside script (ex asp, php) - men isapi er bare meget hurtigere fordi serveren ikke skal behandle det som et script men som et program.
Jeg ved ikke hvad du mener med klient applikation...men du kan gøre alt i isapi/cgi kode som i en normal delphi application, men du har bare ikke det visuale at tænke på. Dvs du kan godt bruge en tclientsocket i isapi/cgi som connecter og sender noget information...
angelod > vil det sige, at med php kan jeg også sende "kun" data til en feks. alm. windows applikation (jeg er ikke interesseret i at det skal sættes op i html) i givet fald hvordan gøres dette ?
hm jeg er nok ikke helt god til at forklare, hvad det er jeg vil.
Så jeg prøver lige at uddybe det lidt.
1. Databasen ligger hos udbyder med den begrænsning, at alle forespørgsler skal foretages lokalt (på localhost).
2. Af hensyn til båndbredde er det nødvendigt at det KUN er data fra db'en der bliver sendt vha. internettet (altså ikke en masse unødvendig tekst eks. HTML)
3. Den data der modtages skal indsættes i en applikation der køres på klienten - feks. en alm. form i delphi, hvorpå der er nogle felter, som data fra db'en bliver indsat i.
problemet er, at i feltet Nr. skal der indtastes et medlemsnummer og derefter hentes værdien navn og slag automatisk for det pågældende medlem - derefter kan man udfylde Matchform - hvis det er slagsspil skal der være mulighed for at indtaste Bruttoscore og nettoscore regnes - hvis det er stableford skal der være mulighed for at taste Pointantal ind istedet.
Jeg er simpelthen bange for, at siden skal opdateres for tit ved at bygge det i php og html - og at applikationen derfor ikke bliver brugt.
Hver gang applikationen bliver brugt (ca. hver dag) skal der indtastes data for godt 100-130 medlemmer.
"tågernes kaj": kunne du kalde dette spm.,der er langt mere end dårligt formuleret - elendigt.Du skriver du kun har adgang til dine databasedata via localhost, dvs via et intranet og det vil igen sige at du selv udgår fra et serversystem - og du vil så koble de 2 systemer sammen med Delphi a la CGI.Det lyder ikke spor "ladesiggøreligt".Hvis din udbyderserver er Linux kan du heller ikke bruge Access-databaser, der ellers vistnok er udstyret til at lave det opsæt jeg kan forstå du ønsker, selvom jeg tror det kan være svært alligevel.Det du kan med delphi er at lade data ligge på din egen server og de kan så tilgåes fra intra- og internet.Jeg tror ikke det er nødvendigt med enterprise-versionen for at gøre det. http://www.cgiexpert.com/ Dette link er et udemærket eksempel på mulighederne.Delphi er "state of the art" m.h.t. databasehåndtering.
Det her link er endnu bedre.Meget basalt og lavet i delphi-4.
Hvis du selv har en "åben" serverforbindelse kan du jo lisså godt bruge den eller hvad ?. Hvad slags servertype er det ? Win ? og hvad version i så fald ?.
Hvis I i forvejen har en accesdatabase er det smarteste sikkert at vælge en udbyder der kan håndtere disse.Men det er et båndbreddeproblem I vil løse ved at ændre DB-typer ?.
pbudk >> Kan du finde ud af at skrive PHP scripts? For så er det blot at hive det ud af databasen og udskrive det som plain text, uden brug af html og hvad der ellers hører til. Det er nemt, hurtigt, og frem for alt, effektivt (eller så effektivt som det nu kan blive med de restriktioner du har).
Dit Delphi-baserede program skal så bare kontakte databasen igennem de PHP scripts du har skrevet, og så vil det virke nøjagtigt som det skal. :o)
Ved ikke helt hvordan jeg skal forklare det bedre, men det er i stor grad muligt at gøre.
Du skulle nok hellere kigge på "DataSnap" fra delphi, og lave din app som multi-tier en client app og en serverapp og en db-server 3 lag, det ene er en tynd client, din server app. er den der ligger på serveren og snakker med db, og client'en, client'en snakker kun med din server app. og ikke db'en, dvs du fra din server app. kan lave Local host forespørgelser og sende den vidre til din client, det smarte er at dette er "indbygget" i delphi, du kan læse mere i online hjælpen, og se demo'er i Delphi\Demos\
"(jeg er ikke interesseret i at det skal sættes op i html)":
med delphi (og VB, php, javascript etc.) kommer du ikke udenom html. Og explorer er iøvrigt osse en windows-applikation.
Hvad slags Acces-version har I ?.Hvis det er en 2000 eller derover er der indbyggede funktioner til at vedligeholde "opdateringer" af data mellem 2 servere med Win-extensions.
janbb >> Hvad i alverden er det dog du snakker om? Du kan foretage et output med plain text igennem PHP, hvormed du naturligt vil undgå HTML. Du kommer ikke udenom HTTP, da det er protokollen du skal benytte, men det er sgu noget lidt andet altså.
martinlind >> Det er muligt at bruge Kylix til at skrive det der, ja, men hvis han kender til PHP er det omtrent lige så hurtigt, og sikkerheden er den samme, og så sparer han at skulle downloade Kylix fra Borland, der jo som bekendt fylder omkring 150MB.
janbb > ja jeg er godt klar over, at formuleringen er lidt uheldig.
jeg tror du misforstår mig. Når jeg skriver localhost, så er det fordi den bruger, der er oprettet i mysql og som har lov til at connecte, KUN har lov til at connecte fra localhost, altså scripts og programmer, der bliver afviklet fysisk på internetserveren feks. php.
Vi har ikke nogen "åben" serverforbindelse og hvis vi havde skulle det køre med en uploadhastighed på 128 kbit. Derfor vil jeg gerne have mulighed for at arbejde i mysql databasen på internettet fremfor den access database - som kun er lokalt på den ene maskine, der bruges til indtastning af data. Fra den database er jeg altså nødt tl manuelt at lave en output fil, som jeg uploader og indlæser til webserveren via php. For at alle alm. internet brugere på vores website kan se oplysningerne, som jeg nu henter ud fra mysql med php.
Jeg håber, at dette gav en lidt bedre forståelse af problemstillingen.
angelod > jeg tror vi er inde på noget af det rigtige med at bruge php - og jeg kan godt finde ud af at programmere i php - dog har jeg kun arbejdet med at sende data via http til en regulær internet browser. Hvis du kan give et eksempel på hvordan jeg bruger delphi til at kontakte databasen gennem php ville det være helt super.
Du får et langt bedre resultat med DataSnap og delphi, så glem PHP, og lav det som en tynd client med en Server app. der ligger på serveren og kan lave db som LocalHost.
pbudk >> Jamen det gør du da bare ved at åbne et PHP script igennem Delphi, som du ville gøre det med en hvilken som helst anden webside. Eventuelt med de parametre du skal bruge, tilføjet som normalt.
martinlind >> Det kommer virkelig an på så meget. Hvis download af Kylix tager længere tid, og han ikke kender MySQL APIen, så kan det altså godt være at det, ihvertfald i første omgang, vil være langt mere effektivt at bruge PHP til det. Så kan han jo altid lave den optimerede løsning bagefter, mens den første løsning kører.
martinlind > det var faktisk lige netop sådan en løsning jeg oprindelig havde i tankerne.
Jeg har kort været på borland.com og kigge lidt på DataSnap - er det en speciel udgave af Delphi ? eller er det en del af Enterprise udgaven i Delphi 6 ?
Pt. arbejder jeg i Delphi 5 - og budgettet er desværre ikke til en opgradering :o(
Ja, det er sku desværre vist nok en Enterprise udgave du skal havde fat i :(
angelod >> Nu er det jo ikke hver gang man kører prg. at man skal hente kylix, og man skal heller IKKE kende noget API, delphi interfacser fint med mySQL
ja, nu forstår jeg problemstillingen og synes det er et rigtig godt spørgsmål.Det du vil have er simpelthen et program der kører online og opdaterer din database.De findes sikkert i eksemplarer man kam forstå og få til at virke.Jeg har bare aldrig haft total succes med det.Der er for mange "catch 21"-es ved dem og da din databasetype er acces og serveren er LINUX tror jeg du får problemer.
martinlind >> Mindre rettelse.. Jeg har f.eks. ikke integreret MySQL support Delphi. Jeg kan få det gennem APIen eller MySQLDAC, men det er ikke med som standard i denne version. Måske det er i andre versioner, det ved jeg ik..
Angående download af Kylix.. Nej, jeg ved sgu da godt at det ikke skal downloades hver gang, men på en 128 Kb linie kan det godt tage ret lang tid..
martinlind > tja jeg tror jeg vil prøve at downloade D6 enterprise i trial'en og se, om det lever op til forventningerne.
angelod > hvilken komponent bruger du til det ? altså jeg går ud fra, at du har en komponent på din form som idHTTP1.Get henviser til eller er det forkert ?
janbb > rart at det endelig er lykkedes mig nogenlunde at kommunikere budskabet ud ;o)
pbudk >> Jeg benytter Indy pakken til alt internet-relateret programmering i Delphi. Der er godt nok nogle standard med i denne her, men det siger lidt at Inprise selv har valgt at sende Indy med i de nyere versioner af ihvertfald Kylix (er ikke sikker på Delphi).
En lille advarsel: hvis du downloader delphi 6 trial-versionen på den computer hvor du har dit (goe gamle) Delphi 5 vil du opleve at når prøvweperioden udløber og du måske ikke får råd til at købe vers 6 alligevel - bliver alle dine gamle delphi 5 programmer ubrugelige og vil ikke stå til at redde.
mht. mySQL og delphi kan dette være en løsning http://www.zeoslib.org/ dog IKKE som Multi-tier model. Delphi har indbygget mySQL adgang via DBExpress comp., så en rettelse var nok ikke det rigtige at skrive, der kan jo godt findes noget selv om du ikke har det ikk' "angelod"
martinlind >> Jo, rettelse var lige nøjagtig det rigtige ord, da jeg ved at der ikke er MySQL support i alle versioner af Delphi, og derfor kan man ikke bare skrive at det er der, for så lyder det som om det er i alle versioner, hvilket jo som bekendt ikke passer. Det er med i de nyere versioner, og stadig der, som regel ikke i de mindre, gratis versioner, hvilket er det de fleste bruger når de begynder med Delphi.
Men men men, jeg er her ikke for at diskutere hvad der er eller ikke er. Jeg er her for at hjælpe pbudk med en løsning, og jeg formoder du er her for det samme, "martinlind". :o)
martinlind > jeg skal lige have en ting på plads - det modul jeg skal lave til serveren skal lave i Kylix og det modul jeg vil lave til klienten skal laves i Delphi - er dette korrekt ?
martinlind >> Okay, jeg kigger måske på Zeoslib hvis jeg får tid.
pbudk >> Håber du finder ud af det. :o)
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.