Snippet: Auslagerung der Artikelbeschreibung auf Festplatte

Hilfreiche Tools, Scripte und Code-Schnippsel von BayWotch Nutzern für BayWotch Nutzer
Antworten
Mischa
Beiträge: 801
Registriert: 04.01.2004, 07:28
Wohnort: Köln

Snippet: Auslagerung der Artikelbeschreibung auf Festplatte

Beitrag von Mischa »

Aufgabe:

Um die Datenbank zu verkleinern soll eine Auslagerung der Artikelbeschreibung auf Festplatte erfolgen.

Die Auslagerung soll mit dem folgenden Pfad erfolgen:

Code: Alles auswählen

C:\Programme\baywotch3\desc\#START_YEAR#\#START_MONTH#\#START_DAY#\#ARTICLE_NO#.htm


wichtige Einschränkung:

Nach der Auslagerung der Artikelbeschreibungen kann NICHT mehr in der Artikelbeschreibung nach Begriffen gesucht werden.






Teil-Lösung: Anzeige der ausgelagerten Dateien

Um ein weiteres normales Arbeiten mit Baywotch zu ermöglichen (Anzeige der Artikeldaten) ist es notwendig die ausgelagerten Beschreibungen in Baywotch einzubinden.

Bei der Auslagerung wurde jede Artikelbeschreibung mit folgendem Text ersetzt:

Code: Alles auswählen

<export>
<export_date>#DATE#</export_date>
<export_agent>BayWotchTool::Export::Description</export_agent>
<export_path_base>C:\Programme\Baywotch3\desc\</export_path_base>
<export_path_detail>#START_YEAR#\#START_MONTH#\#START_DAY#\</export_path_detail>
<export_path_file>#ARTICLE_NO#.htm</export_path_file>
<export_path_full>C:\Programme\baywotch3\desc\#START_YEAR#\#START_MONTH#\#START_DAY#\#ARTICLE_NO#.htm</export_path_full>
</export>
(Anmerkung: interessant ist hier nur der Parameter: export_path_full - die restlichen Daten hätte man sich auch sparen können.)



um dann noch die richtige Datei anzuzeigen habe ich in der Datei desc.htm folgenden Code im Header ergänzt:

Code: Alles auswählen


...

</style>

<script language="JavaScript" ><!--


function onLoadDesc(){

	var myNode = document.getElementsByTagName("export_path_full")[0]

	if( myNode==null){

		//alert("normale Artikelbeschreibung");

	} else { 

		//alert("ausgelagerte Artikelbeschreibung");
	
		var fileName =  document.getElementsByTagName("export_path_full")[0].nextSibling.nodeValue;
		document.location.href = "file://"+fileName;
	}
}


//--></script>
</HEAD>
<BODY onload="onLoadDesc();">

...


Funktion:
sobald die Seite geladen ist wird geprüft, ob "export_path_full" existiert und dann die entsprechende Seite nachgeladen.

Man merkt keinen Unterschied bei der Darstellung von internen und externen Beschreibungen.



Teil-Lösung: Auslagerung der Dateien

Zur Vorbereitung habe ich eine Kopie der Datei DESC.HTM --> DESC_EXPORT.HTM erstellt, in der nicht das oben beschriebene Script enthalten ist.

Mein Programm durchläuft dann alle Datensätze und lagert die Daten in das entsprechnde Verzeichnis aus.

Um nur bestimmte Datensätze (bestimmte Folder oder vor einem Datum) zu exportieren kann man normal die Einschränkungen der SQL-Abfrage anpassen.

Der Beschreibungstext wird dann immer in der Datei DESC_EXPORT.HTM bei %%article_desc%% eingesetzt und als neue Datei im entsprechenden Pfad (welcher evtl generiert werden muß) gespeichert.

Die Beschreibung in der Tabelle tblAuction wird dann jeweils durch den oben gezeigten Text mit Informationen zum Speicherort ersetzt.


Für diesen Export habe ich mir auch ein Java-Programm geschrieben. (Hinweis: den code dafür habe ich jetzt nicht hier mit angezeigt)


*** ergänzt am 27.07.2005 ***

Vor- und Nachteile

Vorteil:
- Größe der Beschreibungsdaten nur durch Festplatte beschränkt
- keine Änderungen in der Baywotch-Datenbankstruktur notwendig
- nahtlose Integration der internen und der externen Artikelbeschreibungen
- kein Unterschied bei der Anzeige (egal ob intern oder extern)
- genug Platz in der Datenbank wird geschaffen (ca.90% werden frei).

Nachteil:
- keine Suche mehr in Artikelbeschreibung möglich.

Haupt-Funktion:
- Nachlade-Trick: das Nachladen erfolgt nicht durch Baywotch, sondern durch eine URL-Umleitung bei der Anzeige im integrierten Vorschaufenster durch den Internet-Explorer.
Zuletzt geändert von Mischa am 27.07.2005, 07:23, insgesamt 2-mal geändert.
Borkumer
Beiträge: 1443
Registriert: 03.01.2004, 17:27
Wohnort: Borkum
Kontaktdaten:

Beitrag von Borkumer »

Hallo Mischa!

Jau... das is et!

Ich denke, dass diese Funktion die ganze Diskussion zum Thema beenden kann.

Auslagern der Beschreibung als HTML-Datei auf die Festplatte mit den gleichen (einstellbaren) Pfadeigenschaften wir die Pics. Durch die Ordnerstruktur der V3 kann man auf die "Suche auch in der Beschreibung" verzichten, vorausgesetzt man hat von vorneherein eine Strategie dazu entwickelt.

Wem das nicht ausreicht : SQL-Server (zynischer Kommentar: "Es war schon immer etwas teurer einen besonderen Geschmack zu haben" 8-) )
Gruß

Tim
__________________________
XP Pro; SP3 (werde ohne Not auch nicht wechseln !!)
Mischa
Beiträge: 801
Registriert: 04.01.2004, 07:28
Wohnort: Köln

Beitrag von Mischa »

ich hab mir jetzt diese funktion selbst programmiert, da Elmar diese funktion erst für die Versionen nach der 3.0 geplant hat - aber auf jeden fall NICHT für das aktuelle Release :-(
Mischa
Beiträge: 801
Registriert: 04.01.2004, 07:28
Wohnort: Köln

Beitrag von Mischa »

Borkumer hat geschrieben:Auslagern der Beschreibung als HTML-Datei auf die Festplatte mit den gleichen (einstellbaren) Pfadeigenschaften wir die Pics.
du meinst sicherlich die optionen mit START_YYYY etc.


ich hab jetzt aber bewußt ein anderes verzeichnis /desc/ genommen


ein vorteil zum beispiel: ich kann die XP-Eigene ordnerkomprimierung aktivieren. dies ist bei textdateien sehr sinnvoll.

pix lassen sich schlecht bis gar nicht mehr weiter komprimieren deshalb ein extra verzeichnis für die pix.
Borkumer
Beiträge: 1443
Registriert: 03.01.2004, 17:27
Wohnort: Borkum
Kontaktdaten:

Beitrag von Borkumer »

Hallo Mischa!

Ich meinte einstellbar wie bei den Pics..es muß nicht im gleichen Verzeichnis wie die Pics sein. (deutsche Sprache häufig schwere Sprache 8-) *manchmalichkompliziertweilwillgenau*)
Gruß

Tim
__________________________
XP Pro; SP3 (werde ohne Not auch nicht wechseln !!)
Mischa
Beiträge: 801
Registriert: 04.01.2004, 07:28
Wohnort: Köln

Beitrag von Mischa »

dann hatte ich dich auch richtig verstanden :-)

*auch.lieber.kompliziert.und.nachgefragend.als.falsch.verstehend*
Borkumer
Beiträge: 1443
Registriert: 03.01.2004, 17:27
Wohnort: Borkum
Kontaktdaten:

Beitrag von Borkumer »

Hallo Mischa!

Eigentlich sollte die o.g. Lösung direkt in BW eingebaut sein, damit sie jederman nutzen kann. Aber ich glaube, Elmar ist nach den letzten Wochen/Monaten und der Geburt der V3 erstmal urlaubsreif und für SonderSonderwünsche nicht ansprechbar!??! ;)

Möchte man aber die Funktion erstmal als Einzellösung individuell auf dem lokalen Rechner nutzen wäre doch zunächst mal der Export der Beschreibung als HTML-Datei (?) in ein eigenständiges Verzeichnis notwendig.

Gibt es unter Access eine (Export-)Funktion, um das elegant zu lösen? Oder wie hast Du den Export gemacht?
Gruß

Tim
__________________________
XP Pro; SP3 (werde ohne Not auch nicht wechseln !!)
Mischa
Beiträge: 801
Registriert: 04.01.2004, 07:28
Wohnort: Köln

Beitrag von Mischa »

Borkumer hat geschrieben:Eigentlich sollte die o.g. Lösung direkt in BW eingebaut sein, damit sie jederman nutzen kann. Aber ich glaube, Elmar ist nach den letzten Wochen/Monaten und der Geburt der V3 erstmal urlaubsreif und für SonderSonderwünsche nicht ansprechbar!??! ;)
genau ... es sollte später auch in baywotch direkt gehen ... da es aber nicht in der V3.0 eingebaut ist habe ich es mir schon selbst geschrieben (da ich solange nicht warten wollte).
Borkumer hat geschrieben: Möchte man aber die Funktion erstmal als Einzellösung individuell auf dem lokalen Rechner nutzen wäre doch zunächst mal der Export der Beschreibung als HTML-Datei (?) in ein eigenständiges Verzeichnis notwendig.
ich würde die obengenannte verzeichnisstruktur nutzen.
Borkumer hat geschrieben: Gibt es unter Access eine (Export-)Funktion, um das elegant zu lösen? Oder wie hast Du den Export gemacht?
ich nutze die file-lesen und file-schreiben funktion. bei access wären es dann die entsprechenden VBA-Befehle ...

da ich ein wenig java lernen wollte und ich auch kein access bei mir installiert habe ist ein java-code daraus geworden.
Antworten