Autor Beitrag
uranop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Do 16.07.09 07:57 
moin moin,

ich steh hier grade vor nem mittelgrossen problem.
Da ich meinen anwendern nicht zumuten will, das die xls im web nach csv konvertieren,
und das dann auch noch via phpmyadmin in einer db pressen, habe ich mir gedacht das muss auch anders gehen.

Also nr 1 muss ich irgendwie dem tool sagen, open xls und speicher unter csv.
sollte gehen mit den ole steuerungs möglichkeiten.
nun habe ich dann eine liste die monatlich um ca 300 ids grösser ist als die alte bestehende.
diese gilt es dann auf den server zu pumpen.
die alte db killen und den neuen zeichensatz mit distinct raufjagen.

bevor ich nun hergehe und versuche mit kanonen auf spatzen zu schiessen,
weiss einer wie man das am smartesten angeht ?

danke im vorraus
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Fr 17.07.09 09:23 
Sodali, XLS 2 CSV funzt.

jetzt noch csv 2 sql ...

Eigentlich muesste es ja so gehen.
das CSV zeile für zeile auslesen und denn die betroffenen zellen in die input syntax von mysql reinklemmen?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 17.07.09 18:47 
MySQL kann über die Import-Anweisung direkt CSV lesen. Brauchst die CVS also nicht extra noch nach SQL wandeln, sondern musst einfach nur MySQL sagen, dass er die Datei bitte kurz importieren soll. Anleitung dazu gibt's in deren Doku ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Fr 17.07.09 20:55 
njo das weiss ich,
ich habe nur lediglich das problem, das ich den anwendern keinen mysql access geben will kann darf.

sprich ich muss was basteln, das delphi direkt die csv dann in die db jagt.
daran feile ich momentan
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 17.07.09 21:21 
Was spricht dagegen, den Import-Befehl durch die Anwendung ausführen zu lassen?

Ansonsten dürfte sich hier zum Thema Parsen von CSV sicherlich einiges finden lassen ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Fr 17.07.09 21:43 
Vielleicht habe ich bissher auch etwas zu eingeschränkt gesucht.
Jedenfalls habe ich nur befehle in dne man-pages entdecken könne welche vorraussetzen,
das das source file auf dem gleichen serverliegt wie der deamon von mysql ... also local aufn server.
das kann ich aber nicht zulassen.

ich werde zumindest weiter suchen
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 17.07.09 21:48 
Zumindest müssen sie im Server-Dateisystem für den Daemon erreichbar sein. Über Netzwerk-Shares könnte es also von daher auch von extern gehen ...

Aber wie gesagt: Schau mal hier im Forum zwecks CSV lesen bzw. XLS auslesen. Da könntest du auch fündig werden.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Sa 18.07.09 09:32 
moin,
es sind leider auch keine netzwerkshares sondern quellcomputer auf einem campuslan und über "tausend" tunnels
eine verbindung auf nen mysqlserver bei strato xD .
Man wird richtig erfinderisch wenn du nur 21,22,80,443 nach aussen offen hast : P
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 18.07.09 09:59 
Also wenn ich das ganze gerade richtig überblicke, dann möchtest Du also nach Möglichkeit auf Deinem Server eine Anwendung haben, an die Du eine (anders formatierte) Anfrage schickst und diese dann dort erst in ein SQL-Statement umwandeln lässt.
Dann könntest Du doch zum Beispiel das ganze im HTML-Stil - also so in etwa:
ausblenden Delphi-Quelltext
1:
'<angefragteDatenbank='+DatenbankName+'><Parameter1='+parameter1+'><Parameter2='+parameter2+'>'					

probieren.
Wenn Dein Server das dann umwandelt, dann kann daraus ja schon mal kein Delete-Befehl mehr werden, da die umwandelnde Anwendung ohne die Hochkommas dann ja immer nur das direkt mach dem =Zeichen Wort nutzt und damit sehe ich zumindest jetzt gerade nicht so einfach eine Möglichkeit...

...wobei ich dann jetzt gerade überlege, dass es doch einfacher wäre, den auf dem Server ankommenden String von Deiner Anwendung erst mal auf "verbotene Worte" wie DELETE und sowas untersuchen zu lassen und wenn dort so etwas drin ist, einfach nicht mehr weiterzumachen...
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Sa 18.07.09 21:12 
falsch : )

also folgendes :

Programm im Firmennetzwerk.
Die Quelle der XLS Files stammt ebenfalls irgendwo aus dem Firmennetz
Da wir ( meine Kollegen und ich ) aber "externe" Mitarbeiter sind und somit nicht das Recht haben
eigene Server im Netz in Betrieb nehmen zu dürfen, haben wir uns etwas auf einem EXTERNEN Internet server erbaut.

Dieser Server kann nur vom gateway des Firmennetzwerkes angesprochen werden und das auch nur über den 443 port.

nun muss ich was basteln, um monatlich anfallende XLS files,
a) umzuwandeln in csv [ erledigt ]
b) diese für statistische Rechenaufgaben auf den Externen mysqld jagen. [ noch offen ]

ich habe mir nun folgendes gedacht...

ich lese die csv (nicht sichtbar) in eine listview ein,
mache dann eine anweisung an zeos, das der die list view zeilenweise nun in die db schieben soll.
wobei ich mir da gedanken über die laufzeit mache.
derzeit sind es 128XX rows steigend ...
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 19.07.09 02:12 
Was spricht dagegen, die XLS-File beim Auslesen 1:1 gleich als Datensätze in die Datenbank einzutragen? Direkte Umwandlung nach SQL brauchst Du dann nämlich nicht.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Di 21.07.09 05:46 
re und morgen !

eehm das XLS beim Auslesen gleich wo hin schieben ... ansich ok. aber auslesen tu ich das nicht.
Es beschraenkt sich bis her auf ne kleine OLE spielerei was mir im hintergrund excel öffnet, die datei läd,
crap raus schmeisst und als csv abspeichert.

gelesen wird da nichts.

Irgendwie stehe ich derzeit auf einem toten punkt.
Ich habe keine ahnung wie ich weiter vorgehen soll.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 21.07.09 08:42 
Naja, wenn Du Daten via OLE rausschmeißen kannst, kannst Du auch einfach die Daten, die dich interessieren darüber abfragen. In dem Fall hast Du die Daten dann sogar schon so, wie Du sie für die DB brauchst (bzw. kannst sie in der Reihenfolge abfragen aus der Datei).

Den Umweg über CSV würde ich versuchen zu vermeiden, soweit es geht ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.