Inhalt eines Datenbankfeldes abfragen
Detlev
- datenbank
Ich möchte in einer Datenbank den Inhalt des Feldes abfragen.
Beispiel:
Kurzreferenz;Anhang;Verfasser
Blumen;blumen1.doc;Meier
Pflanzen;;Müller
Bei einer Suchabfrage soll bei "Blumen" das Wort Blumen als Link zur Datei blumen1.doc verwendet werden. Da für Pflanzen aber keine Datei eingetragen ist sollte hier auch kein Link erscheinen. Wer kann mir hier den entscheidenden Tip geben wie ich nicht zum Namen des Datenfeldes "Anhang" komme sonder zum Inhalt des Feldes.
Detlev
Hallo Detlev
Kurze Zwischenfrage:
In welcher serverseitigen Programmiersprache soll das ganze realisiert werden:
[ ] Perl,
[ ] PHP,
[ ] ASP mit VisualBasic,
[ ] ASP mit Javascript,
[ ] JSP,
[ ] andere: .............
Bite ankreuzen.
Grüsse
Tom
Hallo Detlev
Kurze Zwischenfrage:
In welcher serverseitigen Programmiersprache soll das ganze realisiert werden:
»» [ ] Perl,
»» [ ] PHP,
»» [ ] ASP mit VisualBasic,
»» [ ] ASP mit Javascript,
»» [ ] JSP,
»» [ ] andere: .............
Bite ankreuzen.
Grüsse
Tom
Hallo Tom für mich wäre Javascript am besten.
Hallo Detlev
Kurze Zwischenfrage:
In welcher serverseitigen Programmiersprache soll das ganze realisiert werden:
»» [ ] Perl,
»» [ ] PHP,
»» [ ] ASP mit VisualBasic,
»» [x] ASP mit Javascript,
»» [ ] JSP,
»» [ ] andere: .............
Bite ankreuzen.
Grüsse
Tom
Javascript ist für mich besten. Hier kenne ich mich ein wenig aus.
Detlev
Hallo Detlev
Also ASP mit Javascript.
Ich nehme an, Deine Daten befinden sich in einer Datenbank, die Du über ODBC abrufen kannst.
Dazu muss auf dem Web-Server (beim Internet Information Server) eine ODBC-Datenquelle eingerichtet werden.
Der Name soll 'myDB' heissen, User und Passwort sind nicht definiert.
In der Datenbank sei eine Tabelle 'Referenzen' mit den von Dir genannten Feldern 'Kurzreferenz', 'Anhang', 'Autor' angelegt.
<%@ LANGUAGE=JScript%>
<!--#include file="Adojavas.inc"-->
<% // ASP-Code in JScript
// Aufbau der DB-Connection
db = Server.CreateObject("ADODB.Connection");
db.Open("myDB");
// Abfrage der Referenzen
rs = Server.CreateObject("ADODB.RecordSet");
SQL = "SELECT Kurzreferenz, Anhang, Autor FROM Referenzen";
rs.open(SQL, db, adOpenDynamic, adLockOptimistic);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Referenzen</title>
</head>
<body bgcolor="#FFFFFF" leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<%
while(!rs.EOF)
{
if(rs("Anhang").value != null)
{
Response.Write("<a href=" + rs("Anhang").value + " target='_self'>" + rs("Kurzreferenz").value + "</a> <i>(Autor:" + rs("Autor").value + ")</i><br>");
}
else
{
Response.Write("" + rs("Kurzreferenz").value + " <i>(Autor:" + rs("Autor").value + ")</i><br>");
}
rs.Move(1);
}
%>
</body>
</html>
Es hat etwas gedauert, bis ich das Beispiel zusammen hatte, denn JScript ist nicht gleich VBScript *grummel*.
Man beachte in JScript die folgenden Besonderheiten (gegenüber VBScript, welches unter den ASP-Programmieren wohl verbreiteter sein dürfte)
Weitere Informationen zu ASP, JScript, VBScript und ADO unter http://www.chilisoft.com/caspdoc/
Ich hoffe, dass das etwa das ist, was Du suchst.
Grüsse
Tom
Ich hoffe, dass das etwa das ist, was Du suchst.
Grüsse
Tom
Hallo Tom,
ich bin begeistert. Nun musste ich erst mehr als ein halbes Jahrhundert alt werden um in so kurzer Zeit so viel Hilfe zu erfahren. Bisher hatte ich noch keine Erfahrung mit einem Forum. Aber nun werde ich wohl regelmäßig mal reinschauen. Vielleicht kann ich dem einen oder anderen auch mal helfen
Detlev
Hallo Detlev
Kurze Zwischenfrage:
In welcher serverseitigen Programmiersprache soll das ganze realisiert werden:
»» [ ] Perl,
»» [ ] PHP,
»» [ ] ASP mit VisualBasic,
»» [ ] ASP mit Javascript,
»» [ ] JSP,
»» [ ] andere: .............
Bite ankreuzen.
Grüsse
Tom
Hallo Ihr,
na mit Javascript allein wird es nicht gehen. PHP, Perl oder ASP? ASP ist sicherlich einfacher zu verstehen für ungeübtere Programmierer. Aber was ist JSP?? JAVA SERVLET PROGRAMMING?
Deshalb nochmal eine kürzere Ankreuzelfrage:
[ ] PHP
[ ] Perl
[ ] ASP
Gruß, Frank
Hallo Frank
Aber was ist JSP?? JAVA SERVLET PROGRAMMING?
Fast richtig ;-)
JSP = Java Server Pages, in analogie zu ASP = Active Server Pages
Ähnlicher Aufbau wie ASP (auch mit <% %>-Tags, jedoch Java als interne Programmiersprache.
Grüsse
Tom
Programmierer. Aber was ist JSP?? JAVA SERVLET PROGRAMMING?
Deshalb nochmal eine kürzere Ankreuzelfrage:
[ ] PHP
[ ] Perl
[X] ASPGruß, Frank
Hallo Frank,
danke für Dein Interesse an meinem Problem. Mit dem Befehl
<id="Test" datafld="Anhang">
<script>alert(document.all.Test.dataFld)</script>
bekomme ich den Feldnamen also "Anhang" ausgegeben. .value liefert mir aber nicht den Inhalt des Datenfeldes. Da der Inhalt des Datenfeldes aber problemlos auf dem Bildschirm angezeigt wird, wie unser großer Lehrmeister (dies ist nicht zynisch gemein) Stefan in dem Bereich tfbb.htm#a3 beschreibt, sollte es auch möglich sein den Inhalt des Datenfeldes für eine Abfrage zu nutzen. Leider reichen meine Kenntnisse in den anderen Sprachen nicht aus.
Detlev
Hi,
okay, du hast ne Datenbank mit einer Tabelle, diese Tabelle hat 3 Spalten: Kurzreferenz,Anhang,Verfasser - die mit Daten gefüllt sind. hab ich das richtig verstanden? Wenn ja: Was is das für ne DB (SQL, Access, Oracle) und wie ziehst du die Daten aus der Tabelle raus?
Wenn du mir die Facts gibst kann ich dir evt. noch weiter helfen.
Gruß, Frank
Hi,
okay, du hast ne Datenbank mit einer Tabelle, diese Tabelle hat 3 Spalten: Kurzreferenz,Anhang,Verfasser - die mit Daten gefüllt sind. hab ich das richtig verstanden? Wenn ja: Was is das für ne DB (SQL, Access, Oracle) und wie ziehst du die Daten aus der Tabelle raus?
Wenn du mir die Facts gibst kann ich dir evt. noch weiter helfen.
Gruß, Frank
Hallo Frank,
danke das Du Dich mit meinem Problem befasst. Der Begriff Datenbank ist für die Tabelle sicherlich etwas hoch angesetzt. Ich benutze die Regeln die von Stefan Müntz unter DHTML (tfbb.htm) beschrieben sind für diese Aufgabe. Ich möchte eine HTML Seite aufbauen, die leicht pflegbar Literaturquellen mit einer Kurzreferenz verbindet. Da die Daten, also nicht nur die drei aus dem Beispiel, von mehreren Seiten benutzt werden erschien mir der Weg über die Zentrale xx.csv am besten.
Detlev
Hi,
okay, du hast ne Datenbank mit einer Tabelle, diese Tabelle hat 3 Spalten: Kurzreferenz,Anhang,Verfasser - die mit Daten gefüllt sind. hab ich das richtig verstanden? Wenn ja: Was is das für ne DB (SQL, Access, Oracle) und wie ziehst du die Daten aus der Tabelle raus?
Wenn du mir die Facts gibst kann ich dir evt. noch weiter helfen.
Gruß, Frank
Hallo Frank,
danke das Du Dich mit meinem Problem befasst. Der Begriff Datenbank ist für die Tabelle sicherlich etwas hoch angesetzt. Ich benutze die Regeln die von Stefan Müntz unter DHTML (tfbb.htm) beschrieben sind für diese Aufgabe. Ich möchte eine HTML Seite aufbauen, die leicht pflegbar Literaturquellen mit einer Kurzreferenz verbindet. Da die Daten, also nicht nur die drei aus dem Beispiel, von mehreren Seiten benutzt werden erschien mir der Weg über die Zentrale xx.csv am besten.
Detlev
Hi Detlev,
also wenn du im Besitz eines ASP-fähigen Servers bist (das ist dann zwangsweise ein NT-Server) nutze den Weg über ODBC. Lege dir einen Ordner auf deinem Server an, erstelle darin eine Textdatei (in der 1. Zeile schreibst du die Spaltenkonfiguration auf: Spalte;Spalte;Spalte)richte dann über Systemsteuerung->OSBC eine DB-Datenquelle (DSN) mit dem integrierten Texttreiber ein. Das geht alles mit einem Assitenten.
Wenn du dir diese DSN gebaut hast, trägst du in deinen ASP-Seiten immer folgendes ein:
set db = Server.CreateObject("ADODB.Connection")
db.open "dsn=dbankname;uid=Benutzername;pwd=Passwort"
dann kannst du mittels SQL-Abfragen wunderbar deine Daten verbasteln:
sqlabfrage = "SELECT * FROM deinetabelle"
set result = db.execute(sqlabfrage)
"result" beinhaltet dann alle Ergebnisse aus deiner Tabelle.
Die kannst du dann abarbeiten. Tips dazu findest du hier im Forumsarchiv (wie man Datensätze liest und darstellt) und unter folgenden Adressen:
http://www.altmuehlnet.baynet.de/~schneider-m/asp/
http://www.abs-online.de/aspdatabase/
Viel Spaß beim Experimentieren.
Frank
P.S. der Vorteil: ASP und Datenbanken sind Serverseitig, du brauchst dir dann um díe Browser keine Gedanken machen. Mit DHTML mußt du browserorientiert arbeiten, das ist bedeutent schwieriger. Mit ASP werden dann nur die Ergebnisse an den Surferbrowser geschickt.
Hi,
Ich möchte in einer Datenbank den Inhalt des Feldes abfragen.
Beispiel:
Kurzreferenz;Anhang;Verfasser
Blumen;blumen1.doc;Meier
Pflanzen;;MüllerBei einer Suchabfrage soll bei "Blumen" das Wort Blumen als Link zur Datei blumen1.doc verwendet werden. Da für Pflanzen aber keine Datei eingetragen ist sollte hier auch kein Link erscheinen. Wer kann mir hier den entscheidenden Tip geben wie ich nicht zum Namen des Datenfeldes "Anhang" komme sonder zum Inhalt des Feldes.
So was ähnliches macht die folgende Funktion:
sub search_host{
my $ip = shift; # ip wird als Parameter übergeben
my @zeile = "";
seek( HST, 0, 0);# zum Dateianfang des Handlers HST
while(<HST>){
@zeile = split; # hier musst Du nach /;/ splitten
if( $zeile[0] eq $ip ){ # oder so: ... =~ /$ip/;
return ( $zeile[1] ); # die 2. Spalte zurückgeben
}
}
}
Beachte mal die Kommentare...
Viele Grüße, Rolf
So was ähnliches macht die folgende Funktion:
Die Hosts anhand der IP aus der hosts-Datei ermitteln
sub search_host{
»» my $ip = shift; # ip wird als Parameter übergeben
»» my @zeile = "";
»» seek( HST, 0, 0);# zum Dateianfang des Handlers HST
»» while(<HST>){
@zeile = split; # hier musst Du nach /;/ splitten
if( $zeile[0] eq $ip ){ # oder so: ... =~ /$ip/;
return ( $zeile[1] ); # die 2. Spalte zurückgeben
}
»» }
}
Beachte mal die Kommentare...
Viele Grüße, Rolf
Hallo Rolf, danke für Deine Hilfe aber ich kann das script bisher noch nicht verstehen. Kannst Du es mir noch ein wenig besser erklären?
Detlev
Hallo Detlev
Nochmals zum Verständnis: Alle Vorschlöge, die hier kommen, setzen eine _serverseitige_ Programmiersprache voraus.
Dazu braucht Du einen direkten Zugriff auf einen Web-Server, bzw. musst Du mit dem Server-Administrator aushandeln, welche serverseitigen Programmiersprachen unterstützt werden.
Als Programmiersprachen gelten hier:
Für Perl muss auf dem Web-Server ein Perl-Interpreter installiert sein. Gibt es sowohl für Unix/Linux als auch Windows NT
Für ASP muss der Web-Server der Internet Information Server von Microsoft sein. Dieser gibt es aber nur für Windows NT.
Teile uns mit, mit welcher serverseitigen Programmiersprache Du arbeiten kannst, bzw. möchtest.
Grüsse
Tom
Teile uns mit, mit welcher serverseitigen Programmiersprache Du arbeiten kannst, bzw. möchtest.
Grüsse
Tom
Hallo Tom,
Danke das Du Dich mit meinem Problem befasst. Mit Javascript kenne ich mich ein wenig aus. Daher möchte ich nach Möglichkeit auch hier die Lösung finden. Die Lösung sollte auch, wenn möglich, ohne Server auskommen.
Detlev
Hallo Detlev
Dann habe ich Dich wohl total falsch verstanden >:-o
Für clientseitige Datenanbindungen gibt es nur Lösungen im MS Internet Explorer (wie Du in Posting <89817.html> selbst bemerkt hast).
Also zurück an den Start!
Dein Problem ist, auf den Feldinhalt einer solchen Datenquelle zuzugreifen. Richtig ?
Mit welcher Methode, der in <../../tfbb.htm> genannten, greifst Du auf die xx.csv zu?
Kannst Du ein Stück Quellcode posten?
Es würde das Leben ein bischen erleichtern.
Grüsse
Tom
.de/selfhtml/tfbb.htm] genannten, greifst Du auf die xx.csv zu?
Kannst Du ein Stück Quellcode posten?
Es würde das Leben ein bischen erleichtern.Grüsse
Tom
Guten Morgen Tom,
danke für Deine Antwort. Hier ein kleiner Ausschnitt:
***********
<html>
<head>
<script language="JScript">
function Suchen()
{
var max = 500;
document.all.Anzeige.style.display = "none";
var Suchausdruck = "";
var Suchbegriffe = 0;
if(document.Eingabe.SuchHersteller.value != "")
{
if(Suchbegriffe > 0)
Suchausdruck = Suchausdruck + " & Hersteller = " + document.Eingabe.SuchHersteller.value;
else
Suchausdruck = Suchausdruck + "Hersteller = " + document.Eingabe.SuchHersteller.value;
Suchbegriffe++;
}
if(document.Eingabe.SuchFabrik.value != "")
{
if(Suchbegriffe > 0)
Suchausdruck = Suchausdruck + " & Fabrik = " + document.Eingabe.SuchFabrik.value;
else
Suchausdruck = Suchausdruck + "Fabrik = " + document.Eingabe.SuchFabrik.value;
Suchbegriffe++;
}
document.all.Puppen.object.Filter = Suchausdruck;
document.all.Puppen.Reset();
document.all.Anzeige.dataSrc = "#Puppen";
if(document.all.Puppen.recordset.recordCount < max)
{
document.all.Anzeige.dataPageSize = Puppen.recordset.recordCount;
document.all.Treffer.innerText = Puppen.recordset.recordCount + " Puppen";
document.all.Anzeige.style.display = "block";
}
else
document.all.Treffer.innerText = "0 oder zu viele Suchtreffer!";
}
</script>
</head>
<body bgcolor="#C0C0C0">
<center>
<object id="Puppen" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="daten.csv">
<param name="UseHeader" value="true">
<param name="FieldDelim" value=";">
<param name="Filter" value="">
<param name="CaseSensitive" value=false>
</object>
<form name="Eingabe">
<table>
<tr><td>Suche nach:</td></tr>
<tr><td><input name="SuchHersteller" type="text" width=40> Hersteller</td>
<tr><td><input name="SuchFabrik" type="text" width=40> Puppenfabrik</td>
<tr><td></td><td><input type="button" style="width:150px; height:25px;" value="Suche starten" onClick="Suchen()"></td>
</form>
<span id="Treffer" style="color:#0000FF; font-weight:bold;"></span>
<table width=98%>
<tr>
<td bgcolor="#EEEEEE" width=14%><b>Hersteller</b></td>
<td bgcolor="#EEEEEE" width=14%><b>Puppenfabrik</b></td>
<td bgcolor="#EEEEEE" width=14%><b>Halsmarke</b></td>
</tr>
</table>
<table id="Anzeige" style="display:none" width=98%>
<colgroup>
<col>
<col>
<col width=100>
</colgroup>
<tr>
<td bgcolor="#FFFFE0" width=14%><span datafld="Hersteller"></span></td>
<!--*****************************************************//-->
<td bgcolor="#FFFFE0" width=14%><span datafld="Fabrik"></span></td>
<td bgcolor="#FFFFE0" width=14%><a datafld="HalsBild"><span datafld="Halsmarke"></span></a></td>
</tr><tr><td bgcolor="#EEEEEE" colspan=7><font size=-2><a datafld="Anhang"><span datafld="Literatur"></span></a></td></tr>
<!-- die Links der letzten beiden Zeilen sollen nur erscheinen wenn im Datenfeld "HalsBild" bzw "Anhang" ein Inhalt eingetragen ist //-->
<!--*****************************************************//-->
</table>
</center>
</body>
</html>
***************
Danke im vorraus
Hi again,
Hallo Rolf, danke für Deine Hilfe aber ich kann das script bisher noch nicht verstehen. Kannst Du es mir noch ein wenig besser erklären?
Bevor diese PerlFunktion schafft, wurde ein Dateihandler aufgemacht:
open HST, "wwwhosts" or die "$!";
In der "wwwhosts" stehen je Zeile eine IP und ein Hostname, die o.g. Funktion wird mit einer IP im Argument aufgerufen, geht durch die wwwhosts und wenn es eine übereinstimmende IP gibt wird der zugehörige Hostname zurückgegeben. IP und Hostname sind in der "wwwhosts" durch ein Leerzeichen getrennt, falls Du dieses Script für Deine Zwecke verwenden möchtest, müsstest Du in jeder Zeile die split-Funktion auf das Trennzeichen /;/ anwenden.
Siehe also perl, split, io/Filehandling und nochmals Perl.
Viele Grüße, Rolf