/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Indsætte data i MySql via ftp
Fra : Kurt G


Dato : 22-08-08 21:46

Jeg bruger Delphi 5.
Jeg har et program, som danner nogle tekstfiler.
Disse filer vil jeg gerne have programmet til at sende til en MySql-database
(eller evt. Access) på en server på nettet. På serveren kan jeg om
nødvendigt lave noget programmering med ASP.
Da jeg ikke har nogen erfaringer med at skabe forbindelse mellem et
delphiprogram og en server på nettet, vil jeg gerne vide lidt om måden at
gøre det på.
Er der nogen, der vil fortælle om fremgangsmåden, vil jeg være taktnemmelig
(men det medfører nok yderligere spørgsmål .

Mvh Kurt



 
 
Stig Johansen (23-08-2008)
Kommentar
Fra : Stig Johansen


Dato : 23-08-08 05:29

Kurt G wrote:

> Jeg bruger Delphi 5.
> Jeg har et program, som danner nogle tekstfiler.
> Disse filer vil jeg gerne have programmet til at sende til en
> MySql-database (eller evt. Access) på en server på nettet.

På UnoEuro's server f.eks er der adgang til mySQL udefra.
Har du direkte adgang til din mySQL database ?
Jeg har installeret en ODBC driver til mySQL, og så kan jeg bare bruge den
direkte, som det var en hvilken somhelst anden database.
Server databaser er ligeglade om de ligger lokalt eller i Timbuktu,
kommunikationen foregår via TCP/IP.
Dog er det nok smartest at bruge TQuery i stedet for TTable.

> På serveren kan
> jeg om nødvendigt lave noget programmering med ASP.

En anden måde er at bruge f.eks. Synapse og så sende data via HTTP til et
ASP program, der så opdaterer databasen.

> Er der nogen, der vil fortælle om fremgangsmåden, vil jeg være
> taktnemmelig (men det medfører nok yderligere spørgsmål .

Hvis du skriver lidt om dit setup, størrelser, er det udelukkende insert's
eller updates eller.., fejlhåndtering osv. så er det ikke umuligt man kan
finde lidt kodeeksempler til hhv. Delhpi/ASP.

--
Med venlig hilsen
Stig Johansen

Kurt G (23-08-2008)
Kommentar
Fra : Kurt G


Dato : 23-08-08 16:33

"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:48af92d9$0$90270$14726298@news.sunsite.dk...
> Hvis du skriver lidt om dit setup, størrelser, er det udelukkende insert's
> eller updates eller.., fejlhåndtering osv. så er det ikke umuligt man kan
> finde lidt kodeeksempler til hhv. Delhpi/ASP.
>
> --
> Med venlig hilsen
> Stig Johansen

Databasen består kun af to tabeller, den ene er en, som der ikke skal ændres
ved.

Da det nuværende program som sagt ender med en enkelt tekstfil, har jeg
forestillet mig, at den skal danne en ny databasetabel, som erstatter den
tabel, der i forvejen findes på serveren.
Denne tekstfil er i øjeblikket omkring 400kB, men kan ad åre komme op på det
dobbelte!

Jeg regner derfor med at skulle tilføje to knapper til progrmmet, eet der
henter den nuværnde tabel og konverterer til en tekstfil og en anden, der
går den anden vej. Disse funktioner skal nok også bringes til at køre ved
start og afslutning af programmet.

Endvidere skal der jo nok også være en funktion til opsætning af data til
forbindelsen til nettet!

Mht fejlhåndtering har jeg forestillet mig, at der skal tages hånd om de
almindeligst forekommende fejl uden pt. at vide, hvad det er. Men der skal
jo nok dukke ting op!

Er det tilstrækkeligt til at starte op på?

Mvh Kurt



Stig Johansen (23-08-2008)
Kommentar
Fra : Stig Johansen


Dato : 23-08-08 23:25

Kurt G wrote:

> "Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
> news:48af92d9$0$90270$14726298@news.sunsite.dk...
>> Hvis du skriver lidt om dit setup, størrelser, er det udelukkende
>> insert's eller updates eller.., fejlhåndtering osv. så er det ikke
>> umuligt man kan finde lidt kodeeksempler til hhv. Delhpi/ASP.
>
> Databasen består kun af to tabeller, den ene er en, som der ikke skal
> ændres ved.

Ok.

> Da det nuværende program som sagt ender med en enkelt tekstfil, har jeg
> forestillet mig, at den skal danne en ny databasetabel, som erstatter den
> tabel, der i forvejen findes på serveren.

Jeg går ud fra det er indholdet af tabellen du mener skal erstattes (?)
Dvs. noget med når tekstfilen er færdig/klar til 'eksport', så er det noget
med (pseudo)
DELETE FROM Tabellen
INSERT INTO Tabellen (indholdet af tekstfilen).

> Denne tekstfil er i øjeblikket omkring 400kB, men kan ad åre komme op på
> det dobbelte!

Nåh, det er ik' så møj endda.

> Jeg regner derfor med at skulle tilføje to knapper til progrmmet, eet der
> henter den nuværnde tabel og konverterer til en tekstfil og en anden, der
> går den anden vej.

Denne her er lidt svær at greje, skal det fprståe sådan at du laver noget a
la:
Hent eksisterende data til lokal (Delphi)
Opdater data lokalt.
Opdater lokale data i databasen.

> Disse funktioner skal nok også bringes til at køre ved
> start og afslutning af programmet.

I princippet kan du blot aktivere de ovenstående funktioner ved start og
slut, eksempelvis ved hhv. FormShow og CloseQuery.

> Endvidere skal der jo nok også være en funktion til opsætning af data til
> forbindelsen til nettet!

Nu ved jeg ikke hvilket databaselag du bruger i din D5.
Jeg ved jeg blev nødt til at gå op i Enterprise versionen dengang for at få
ADO med.
Det kunne senere tilkøbes, så spørgsmålet er:
Bruger du BDE eller ADO ?

Jeg ved ikke rigtig hvad jeg skal anbefale dig.
Men jeg tror du vil få største fleksibilitet ved at lave
databasehåndteringen på serveren i ASP, og køre kommunikationen med
klienten over HTTP.

På den måde får du fri bevægelighed mellem Access og mySQL - Access kan du
ikke benytte direkte via Internettet.

Men er det et program til videredistribution ?

> Mht fejlhåndtering har jeg forestillet mig, at der skal tages hånd om de
> almindeligst forekommende fejl uden pt. at vide, hvad det er. Men der skal
> jo nok dukke ting op!

Det jeg specifikt tænker på er internetforbindelsen.
Når man snakker decentrale løsninger skal man altid tage højde for at
forbindelsen ryger midt i en opdatering.

Nu kender vi ikke indholdet af dine 400KB, men lad os antage der er tale om
f.eks 1000 records.

Uanset om man looper gennem tekstfilen eller man sender det i én stor klods,
så skal(bør) man implementere fejlhåndtering under forudsætning af linien
ryger undervejs.

En anden ting - er det enkeltbruger eller flerbruger ?
Hvis man kan risikere 2 brugere vil opdatere på samme tid har vi en
yderligere udfordring.

> Er det tilstrækkeligt til at starte op på?

Ja, men hvordan kommer vi videre ?

Hvis du poster din tabelstruktur, så kan jeg godt lave en lille demo med
Delphi/ASP, som henter og sender en tekstfil via HTTP til en database på
serveren - ud fra de ovennævnte forudsætninger.

Dvs.
1) Hent et datasæt til en tekstfil.
2) Erstat datasættet med ny tekstfil.

--
Med venlig hilsen
Stig Johansen

Kurt G (24-08-2008)
Kommentar
Fra : Kurt G


Dato : 24-08-08 16:55

"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:48b08f04$0$90271$14726298@news.sunsite.dk...
---KLIP---
> Jeg går ud fra det er indholdet af tabellen du mener skal erstattes (?)
> Dvs. noget med når tekstfilen er færdig/klar til 'eksport', så er det
> noget
> med (pseudo)
> DELETE FROM Tabellen
> INSERT INTO Tabellen (indholdet af tekstfilen).

Lige præcis.

---KLIP---
> Denne her er lidt svær at greje, skal det fprståe sådan at du laver noget
> a
> la:
> Hent eksisterende data til lokal (Delphi)
> Opdater data lokalt.
> Opdater lokale data i databasen.

Ja, det er tanken!

---KLIP---
> Det kunne senere tilkøbes, så spørgsmålet er:
> Bruger du BDE eller ADO ?

Ingen af delene, programmet bruger kun tekstfiler, men jeg har PRO-udgaven
med databasehalløj!
Jeg undlod at bruge database, da det aldrig lykkedes mig at få det til at
virke med Access!

> Jeg ved ikke rigtig hvad jeg skal anbefale dig.
> Men jeg tror du vil få største fleksibilitet ved at lave
> databasehåndteringen på serveren i ASP, og køre kommunikationen med
> klienten over HTTP.
> På den måde får du fri bevægelighed mellem Access og mySQL - Access kan du
> ikke benytte direkte via Internettet.
>
> Men er det et program til videredistribution ?

Nej, ikke rigtigt. Det er blot noget jeg laver for en ven og der er ingen
penge i det!.

---KLIP---
> Det jeg specifikt tænker på er internetforbindelsen.
> Når man snakker decentrale løsninger skal man altid tage højde for at
> forbindelsen ryger midt i en opdatering.
>
> Nu kender vi ikke indholdet af dine 400KB, men lad os antage der er tale
> om
> f.eks 1000 records.
>
> Uanset om man looper gennem tekstfilen eller man sender det i én stor
> klods,
> så skal(bør) man implementere fejlhåndtering under forudsætning af linien
> ryger undervejs.

OK.

> En anden ting - er det enkeltbruger eller flerbruger ?
> Hvis man kan risikere 2 brugere vil opdatere på samme tid har vi en
> yderligere udfordring.

Det er enkeltbruger!

---KLIP---
> Hvis du poster din tabelstruktur, så kan jeg godt lave en lille demo med
> Delphi/ASP, som henter og sender en tekstfil via HTTP til en database på
> serveren - ud fra de ovennævnte forudsætninger.
> Dvs.
> 1) Hent et datasæt til en tekstfil.
> 2) Erstat datasættet med ny tekstfil.


---KLIP---

Tabellen er i øjeblikket en Access og ser sådan ud:
Navn: Samlet
År,Nr, Side : Tal
Forfatter, Titel, Sted, EmneTekst : Tekst
Emne, Tidsalder, Kortside : Tal
MarkeringPåKort : Tekst

Tekstfilen kan se sådan ud:
År;Nr;Side;Forfatter;Titel;Sted;EmneTekst;Emne;Tidsalder;KortSide;MarkeringPåKort;
1957;1;10;Peter Seeberg;Historiker blandt "sprittere";;Historiker
blandt »sprittere«;165;9;62;
1957;1;12;Oscar Marseen;Begravet by;;Sandflugtshærgede gårde;122;7;28;D
1957;1;13;Hans Neumann;Våbenfund igen!;Ejsbøl;Våben og hestetøj;87;5;10;b
1957;4;5;G.K. [Georg Kunwald];Tiden er kommet - men manden er ikke
kommet!;Sjellebro;Stenveje;117;5;10;P
1958;1;10;Erik Skov;Parkeringsplads og kloster;Næstved;Grave ved
kloster;40;7;30;c





Stig Johansen (24-08-2008)
Kommentar
Fra : Stig Johansen


Dato : 24-08-08 18:38

Kurt G wrote:

>> Det kunne senere tilkøbes, så spørgsmålet er:
>> Bruger du BDE eller ADO ?
>
> Ingen af delene, programmet bruger kun tekstfiler, men jeg har PRO-udgaven
> med databasehalløj!
> Jeg undlod at bruge database, da det aldrig lykkedes mig at få det til at
> virke med Access!

Nej, Access er ikke så nemt uden ADO, så du har sikkert haft noget bøvl med
det.

[snip en masse oplysninger]

Det er en interesant opgave, så jeg er i tænkeboksen.

Jeg tror jeg laver en lille demo, hvor man samtidig har mulighed for at
'sende' filen via en almindelig html form.

Jeg forestiller mig noget med en ASP funktion der kaldes fra Delphi, hvor
* HTTP GET (=hent fil) der returnerer en CSV fil, som du har beskrevet
( måske uden Å'er i feltnavne)
Sådan en kan man hente direkte ind i en stream i Delphi, og efterfølgende
lave en SaveToFile, eller hvad man nu vil gøre med den.

* HTTP POST (=send fil) , hvor hele filen sendes i en 'variabel', analogt
med et <textarea>.
Det er også lige ud ad landevejen i Delphi, eksempelvis en TStringlist med
en LoadFromFile og en efterfølgende send til server.

Til den slags kommunikation bruger jeg Synapse:
<http://synapse.ararat.cz/doku.php/start>

Men tekstfilen - du beskriver den med overskrifter som 1. linie.
Er det altid gældende, altså både ved hent og ved send ?

NB: Der går nok lidt tid inden den(demoen) er klar.

--
Med venlig hilsen
Stig Johansen

Kurt G (24-08-2008)
Kommentar
Fra : Kurt G


Dato : 24-08-08 20:09

---KLIP---
> Det er en interesant opgave, så jeg er i tænkeboksen.
>
> Men tekstfilen - du beskriver den med overskrifter som 1. linie.
> Er det altid gældende, altså både ved hent og ved send ?


Ved import til mit program kan de godt undværes, blot rækkefølgen
overholdes, men jeg plejer at tage dem med for en sikkerheds skyld!
Ved indsættelse i Access er de ikke nødvendige, men her SKAL rækkefølgen så
også overholdes. Men er de med, kan man jo lave det sådan, at SQL-sætningen
laver tabellen i overensstemmelse med overskrifterne!
>
> NB: Der går nok lidt tid inden den(demoen) er klar.
>
> --
> Med venlig hilsen
> Stig Johansen

Tak for din villighed til at hjælpe!

Mvh Kurt



Stig Johansen (25-08-2008)
Kommentar
Fra : Stig Johansen


Dato : 25-08-08 06:19

Kurt G wrote:

> Ved import til mit program kan de godt undværes, blot rækkefølgen
> overholdes, men jeg plejer at tage dem med for en sikkerheds skyld!

Jeg synes også det er pænest, så det cvar bare en præcision af, at vi er
enige.

> Ved indsættelse i Access er de ikke nødvendige, men her SKAL rækkefølgen
> så også overholdes.

Uanset hvad, så skal der være overensstemmelse mellem felterne.

> Men er de med, kan man jo lave det sådan, at
> SQL-sætningen laver tabellen i overensstemmelse med overskrifterne!

Man sletter ikke tabellen og opretter den igen.
Det er kun indholdet der bliver udskiftet.

> Tak for din villighed til at hjælpe!

He - Kurt, jeg har alle funktionerne, og bruger dem i forvejen.
Dog ikke i en samlet funktion, men det er kun et spørgsmål om at klippe
klistre lidt sammen hist og pist.

Men jeg har lidt indledende 'arbejde' til dig, men jeg tror lige jeg laver
en ny tråd, af hensyn til overskriften.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407862
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste