Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Gästebuch erstellen





Frage

Hallo Ich versuche seit Tagen ein eigenes Gästebuch zu erstellen. Die DB Abfrage konnte ich nun endlich machen. Jetzt möchte ich ein Eingabeformular für meine Website Besucher erstellen und die Daten danach in eine DB übergeben. Das Eingabeformular habe ich erstellt jetzt bin ich an der insert.asp : <% Set nameConn = Server.CreateObject ("ADODB.Connection") nameConn.Open "DSN=guestbook" nameConn.Execute "insert into guestbook (Name) values (" & request.form("entry") & ")" nameConn.Close %> Es gibt im Formular folgende Spalten : Name, Email, Link, From, Comments. Wie muss ich diese genau in der insert.asp angeben ? Mit dem oben angegebenen Quelltext erscheint folgende Fehlermeldung : Microsoft OLE DB Provider for ODBC Drivers- Fehler 80040e10 [Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben. /sabine_test/insert.asp, line 15 Bin ehrlich gesagt überfordert damit. Danke für Eure Hilfe Sabine

Antwort 1 von FooX

am besten ist es, wenn du den inhalt von request.form("entry") in irgendeine variable übergibst und dann das schreibst:

insert into tabelle (name) values ("&var&")
aufpassen: nicht ("&var&"), sondern ("&var&"). damit beschreibst du einen text.


Antwort 2 von Sabine Ingold

Wie sieht der Wert für ein AutoWert Feld in einer Datenbank aus ? Sobald ich diese Spalte aus der Tabelle entferne funktioniert der Eintrag, mit der Spalte jedoch nicht. Muss ich etwas spezielles beachten ? Danke
Sabine

Antwort 3 von federweis

hmmm wenn das eine flash seite wäre wüsste ich ne adresse wo du das ganze herbekommst http://www.cybercollege.de/
ist zum downloaden

mfg federweis

Antwort 4 von FooX

Was willst du denn genau mit dem autowert-feld machen?
wenn du es entfernst, dann mußt du natürlich auch beim auslesen der datenbanke statt z.b. rs(3) nun unter umständen rs(2) schreiben, also die indizies verschieben.
hast du das gemeint?

Antwort 5 von FooX

oh, der druckt ja das zeichen gar nicht!!! son dreck!! das ist eine kritik wert!!!

Antwort 6 von Karl

Hallo Sabine,

eigentlich wollte ich nur lesen, aber...

Die Sache ist relativ einfach und schnell erklärt.

Das Feld "Autowert" ist vom Datentyp Long Integer und wird AUSSCHLIESSLICH von Access gehändelt. Das heisst: das Autowert - Feld kann nicht beschrieben sondern nur gelesen werden (Ja, ich kenne die Ausnahmen, darum geht es hier nicht !)

Daraus die Konsequenz: entweder selbst händeln oder auf das Zurückschreiben verzichten.

1. Selbst händeln:
Das Feld wird nur als Long Integer und NICHT als Autowert in Access eingestellt (Primärschlüssel bleibt)
Required-Eigenschaft auf on,
Vor dem Beschreiben einen Execute-SQL-String an die Datenbank abschicken, der den MAX-Wert des Feldes ermittelt, danach MAX-Wert + 1, diesen Wert zurückschreiben.

Abgeschreckt ? dann

2. Access händeln lassen.

In einem Insert-SQL-String alle Entititäten an die Datenbank abschicken, ausser, den Autowert!
Der wird dann von Access selbst generiert.

mfg Karl
















Antwort 7 von Karl

Fehlerteufel:

nach dem nameConn.close muss ein "End If"

Das Ganze kann man auch in eine Function packen...


mfg Karl

Antwort 8 von Sabine ingold

Hallo Karl
Herlichen Dank für Deine Hilfe !!
Gruss
Sabine

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: