DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Bernhard Elbl Artikel Drucken
        
Das Textfile als Datenbank

Viele Firmen verwenden kleine Textfiles als Datenbank. Wenn es nicht um tausende von Datensätzen geht, können Textfiles von Vorteil sein und sie brauchen nicht immer gleich eine Datenbank. Textfiles können manuel leicht editiert werden. Schwierig ist jedoch das Modifizieren der Textfiles, Suchfunktionen, das Sortieren von Datensätzen innerhalb dynamischer Websiten. Warum also nicht ein Textfile als Recordset benutzen?
Recordsets selfmade!
Recordsets sind nicht von einer OLE-DB-Datenquelle abhängig. Sie können die Daten so wie ihre Spalten selbst erstellen. Sie können Recordsets also grundsätzlich als Datenspeicher verwenden. Wenn Sie mehrdimensionale Arrays verwenden/kennen, werden Sie sicher wissen, dass es als Programmierer wenig Spass macht diese zu programmieren. Für diese müssen Sie z.B. Sortierfunktionen und Suchfunktionen selber coden. Also können Sie ein Recordset benutzen, das all diese Funktionen bereits enthält.
Spalten erstellen:
können Sie mit Hilfe der Append-Methode der Fields-Collection. Hier die Syntax.
rs.Fields.Append <Spaltenname>, <Datentyp>, <Grösse>, <Attribute>, <Wert>

Wichtig ist die Reihenfolge ist der verschieden "Methode Calls". Hier die kurz Form:
set rs = Server.CreateObject("ADODB.Recordset")
rs.Fields.Append ....
rs.Open
rs.Fields(0).Value = ....
rs.UpdateBatch

Hier ein vollständiges Sample:
- konvertieren eines Textfiles in ein Recordset
  (Textfile 1. Spalte = Spaltennamen, ab 2. Spalte Daten, Tabulator getrennte Werte)
- darstellen des Textfiles als HTML-Table
Textfile in Recordset einlesen
<%@ Language=VBScript %>
<%
Dim sFile ' enthält den Pfad und Name der TextDB
Dim fs ' FileSystemObject = für Dateizugriff
Dim txtST ' TextStream =  zum Auslesen einer Textfiles
Dim rs ' Recordsets der Datenspeicher
Dim sLine ' enthält jeweils eine Zeile des TextFiles
Dim aFieldNames ' Array mit Spaltennamen (erste Zeile des Textfiles)
Dim aFieldValues ' Array mit Spaltenwerte (ab der 2. Zeile des Textfiles)
Dim i ' Zähler

sFile = Server.MapPath("./db.txt")
' Object instanzen erzeugen
set fs = Server.CreateObject("Scripting.FileSystemObject")
set rs = Server.CreateObject("ADODB.Recordset")
' TextStream-Object referenz holen
set txtST = fs.OpenTextFile(sFile)
sLine = txtST.ReadLine     'Spaltennamen auslesen
aFieldNames = split(sLine,vbTab) ' vbTab = Tabulator getrennte Werte in Array splitten
' Spalten erstellen, adVarWChar als String-Datentyp mit der Grösse 255 Zeichen
for i = 0 to ubound(aFieldNames)
 rs.Fields.Append aFieldNames(i), adVarWChar, 255
next
' Jetzt initiiertes Recordset öffnen
rs.Open
' Durch das TextFile lupen
do until txtST.AtEndOfStream
 sLine = txtST.ReadLine ' Datenzeile auslesen
 aFieldValues = split(sLine, vbTab) ' Splitten / hier evtl. Trim-Funktion einfügen
 
 rs.AddNew ' neuen Datensatz dem Recordset hinzufügen
 
 ' Werte in Fields übertragen
 for i = 0 to ubound(aFieldValues)
  rs.Fields(i).Value = aFieldValues(i)
 next
loop
' Alle hinzufügen Datensätze im Recordset speichern
rs.UpdateBatch
%>

Recordset ausgeben...
<HTML>
<HEAD>
</HEAD>
<BODY>
<h1>Das TextFile-Recordset ausgeben</h1>
<%
'-----------------------------------------------------------------
'---- Ausgabe des Recordsets
'-----------------------------------------------------------------
if not (rs.BOF and rs.EOF) then
 rs.MoveFirst
 
 Response.Write "<table>"
 
 Response.Write "<tr>"
 for i = 0 to rs.Fields.Count-1
  Response.Write "<td>" & rs.Fields(i).Name & "</td>"
 next
 Response.Write "</tr>"
 
 do until rs.EOF
 
  Response.Write "<tr>"
  for i = 0 to rs.Fields.Count-1
   Response.Write "<td>" & rs.Fields(i).Value & "</td>"
  next
  Response.Write "</tr>"
  
  rs.MoveNext
 loop
  
 Response.Write "</table>"
end if
%>

</BODY>
</HTML>
<%
set fs = nothing
set rs = nothing
%>

 

DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 16.04.2002
  Gültig bis: 16.05.2002
51 Ratings
Bewertung: 92,5%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG