[ASP] AW: ActiveServerPages digest, Vol 1 #108 - 12 msgs
Hotel André
activeserverpages at glengamoi.com
Wed, 22 Dec 2004 12:35:16 +0100
Hallo Georg,
Ich würde Fehlermeldungen beim Update oder Insert wie folgt
aus dem Weg gehen:
DIM entry
DIM n
DIM db_IDfield
DIM db_table
DIM idnr
idnr = Request.Form("ID")
if idnr = "" then idnr = 0
db_IDfield = "ID"
db_table = "schedule"
n = - 1
for each entry in Request.Form
If Request.Form(entry) > "" and not LCase(entry) = db_IDfield then
n + 1
end if
next
DIM ArrayFields: REDIM ArrayFields(n)
DIM ArrayValues: REDIM ArrayValues(n)
n = 0
for each entry in Request.Form
If Request.Form(entry) > "" and not LCase(entry) = db_IDfield then
ArrayFields(n) = entry
ArrayValues(n) = Request.Form(entry)
n + 1
end if
next
Call OpenConn(database)
Call Update_db_table(db_table, db_IDfield, ArrayFields,ArrayValues, idnr)
Call CloseConn()
function NewID(db_table,Arrayfields,Arraydaten)
Dim rs
Dim sql
Dim n
Set rs = Server.CreateObject("ADODB.RecordSet")
sql = "Select * from " & db_table & " where " & db_IDfield & " < 0"
rs.Open(sql), dbc, adOpenKeySet,adLockOptimistic,adCmdText
rs.AddNew ArrayFields, ArrayDaten
If Err.Number <> 0 then
n = Err.description
else
n = rs.Fields(db_IDfield).value
end if
NewID = n
Call CloseRS(rs)
end function
function Update_db_table(db_table, db_IDfield, ArrayFields,Arraydaten, idnr)
Dim rs
Dim sql
Dim field
Dim n
Set rs = Server.CreateObject("ADODB.RecordSet")
sql = "Select * from " & db_table & " where " & db_IDfield & " = " & idnr
rs.Open(sql), dbc, adOpenKeySet,adLockOptimistic,adCmdText
If rs.eof or rs.bof then
Call CloseRS(rs)
' Daten neu eintragen
Update_db_table = NewID(db_table,Arrayfields,Arraydaten)
else
for each field in rs.fields
'Response.Write(field.name & " = field.type: " & field.type)
Select Case field.type
case 11
field.value = false
case 135
field.value = date()
case 3, 6
if not LCase(field.name) = LCase(db_IDfield) then
field.value = 0
end if
case 220, 202
field.value = ""
end Select
next
end if
rs.update
rs.Update ArrayFields, ArrayDaten
If Err.Number <> 0 then
Update_db_table = Err.description
else
Update_db_table = rs.Fields(db_IDfield).value
end if
end if
end function
Rat am Rande: Beim verwenden von "ID" als Feldname können Fehlermeldungen
von Access aus entstehen, besser Du würdest den Feldnamen für das IDfield
in "scheduleID" oder ähnl. umbenennen.
Solltest Du nicht zurecht kommen, Email an mich.
Mit freundlichen Grüßen
Hotel André
André Scheres
Geneickener Str. 104
41238 Mönchengladbach
Telefon: + 49 2166 254199
Telefax: + 49 2166 254148
http://hotelandre.de
-----Ursprüngliche Nachricht-----
Von: activeserverpages-admin@glengamoi.com
[mailto:activeserverpages-admin@glengamoi.com]Im Auftrag von
activeserverpages-request@glengamoi.com
Gesendet: Mittwoch, 22. Dezember 2004 08:39
An: activeserverpages@glengamoi.com
Betreff: ActiveServerPages digest, Vol 1 #108 - 12 msgs
Message: 9
From: "Georg Dreier" <lineman74@gmx.at>
To: <activeserverpages@glengamoi.com>
Date: Wed, 22 Dec 2004 00:46:43 +0100
Subject: [ASP] Eintragspflicht bei Formular
Reply-To: activeserverpages@glengamoi.com
Hey Leute!
Habe folgendes Riesen-Problem: Wenn ich eine Insert oder Update =
Anweisung
mache müssen Zahlen und Datumsfelder ausgefüllt sein obwohl ich das =
nicht
möchte. Ich bekomme sonst immer die Fehlermeldung "Datentypen in
Kriterienausdruck unverträglich"! Ich arbeite mit einer Access =
Datenbank.
Unter "Eingabe erforderlich" habe ich in Access überall ein nein.".
### Hier eine meiner Update Anweisungen: ###
-----------------------------------------------------------------------
<%
If IsObject(Session("cowhp_conn")) Then
Set conn = Session("cowhp_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
strDSNPfad = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=" & Server.MapPath("/maturaprojekt/db/db.mdb")
conn.open strDSNPfad,"",""
Set Session("cowhp_conn") = conn
End If
sql = "update schedule set team = '" & request.Form("team") & "',"
sql = sql & "seasontype = '" & request.Form("seasontype") & "',"
sql = sql & "week = '" & request.Form("week") & "',"
sql = sql & "datum = '" & request.Form("datum") & "',"
sql = sql & "zeit = '" & request.Form("zeit") & "',"
sql = sql & "stadion = '" & request.Form("stadion") & "',"
sql = sql & "ort = '" & request.Form("ort") & "',"
sql = sql & "gegner = '" & request.Form("gegner") & "',"
sql = sql & "pointsfor = '" & request.Form("pointsfor") & "',"
sql = sql & "pointsagainst = '" & request.Form("pointsagainst") & =
"',"
sql = sql & "anmerkung = '" & request.Form("anmerkung") & "',"
sql = sql & "bild = '" & request.Form("bild") & "' "
sql = sql & "where ID = " & request.Form("ID") & " ; "
'response.write sql
conn.execute sql
%>
-----------------------------------------------------------------------
### Hier eine meiner Insert Anweisungen: ###
-----------------------------------------------------------------------
<%
If IsObject(Session("cowhp_conn")) Then
Set conn = Session("cowhp_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
strDSNPfad = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=" & Server.MapPath("/maturaprojekt/db/db.mdb")
conn.open strDSNPfad,"",""
Set Session("cowhp_conn") = conn
End If
sql = "insert into schedule (team, seasontype, week, datum, zeit, =
stadion,
ort, gegner, pointsfor, pointsagainst, anmerkung, bild) values ('"
sql = sql & request.form("team") & "','"
sql = sql & request.form("seasontype") & "','"
sql = sql & request.form("week") & "','"
sql = sql & request.form("datum") & "','"
sql = sql & request.form("zeit") & "','"
sql = sql & request.form("stadion") & "','"
sql = sql & request.form("ort") & "','"
sql = sql & request.form("gegner") & "','"
sql = sql & request.form("pointsfor") & "','"
sql = sql & request.form("pointsagainst") & "','"
sql = sql & request.form("anmerkung") & "','"
sql = sql & request.form("bild") & "');"
'response.Write sql
conn.execute sql
%>
-----------------------------------------------------------------------
SQL Ansicht im Access klappt bei mir leider nicht so ganz!
Hier sind die Daten in einer Textdatei:
-----------------------------------------------------------------------
1;"Regular Team";"Preseason";"-";28.3.2004 00:00:00;30.12.1899
13:00:00;"Stadion Svoboda";"Ljubljana";"Ljubljana
Silverhawks";38;6;;"ljubljanasilverhawks.jpg"
2;"Regular Team";"Regular Season";"Week 2";4.4.2004 00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"=D6ko-Box Graz
Giants";12;60;;"oekoboxgrazgiants.jpg"
3;"Regular Team";"Friendship Game";"-";18.4.2004 00:00:00;30.12.1899
14:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Ljubljana
Silverhawks";30;0;;"ljubljanasilverhawks.jpg"
4;"Regular Team";"Regular Season";"Week 4";2.5.2004 00:00:00;30.12.1899
16:00:00;"Happyland";"Klosterneuburg";"Danube
Dragons";7;35;;"danubedragons.jpg"
5;"Regular Team";"Regular Season";"Week 6";16.5.2004 00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Carinthian
Falcons";26;10;;"carinthianfalcons.jpg"
6;"Regular Team";"Regular Season";"Week 7";22.5.2004 00:00:00;30.12.1899
18:00:00;"Herrenried";"Hohenems";"Cineplexx Blue Devils";0;35;"Wegen
Spielermangels abgesagt und strafverifiziert!";"cineplexxbluedevils.jpg"
7;"Regular Team";"Regular Season";"Week 10";12.6.2004 =
00:00:00;30.12.1899
17:00:00;"Tivoli W1";"Innsbruck";"Papa Joe's Tyrolean
Raiders";12;48;;"papajoestyroleanraiders.jpg"
8;"Regular Team";"Regular Season";"Week 11";20.6.2004 =
00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Chrysler Vikings
Vienna";0;35;"Wegen Spielermangels abgesagt und
strafverifiziert!";"chryslervikingsvienna.jpg"
9;"Junioren";"Regular Season";"Week 1";5.9.2004 00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Baden
Bruins";36;6;;"badenbruins.jpg"
10;"Junioren";"Regular Season";"Week 2";11.9.2004 00:00:00;30.12.1899
15:00:00;"Pepsi Field";"Baden";"Baden Bruins";8;0;;"badenbruins.jpg"
11;"Junioren";"Regular Season";"Week 5";2.10.2004 00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Carinthian
Falcons";52;0;;"carinthianfalcons.jpg"
12;"Junioren";"Regular Season";"Week 7";17.10.2004 00:00:00;30.12.1899
14:00:00;"Koschatplatz";"Klagenfurt";"Carinthian
Falcons";30;0;"";"carinthianfalcons.jpg"
13;"Junioren";"Post Season";"Final";30.10.2004 00:00:00;30.12.1899
13:00:00;"Postpl. Hörtendorf";"Klagenfurt";"Salzburg
Bulls";;;;"salzburgbulls.jpg"
14;"Jugend";"Regular Season";"Week 3";19.9.2004 00:00:00;;"Postpl.
Hörtendorf";"Klagenfurt";"Papa Joe's Tyrolean Raiders";0;35;"Wegen
Spielermangels abgesagt und =
strafverifiziert!";"papajoestyroleanraiders.jpg"
15;"Jugend";"Regular Season";"Week 4";25.9.2004 00:00:00;;"Postpl.
Hörtendorf";"Klagenfurt";"=D6ko-Box Graz Giants";0;35;"Wegen =
Spielermangels
abgesagt und strafverifiziert!";"oekoboxgrazgiants.jpg"
16;"Jugend";"Regular Season";"Week 5";3.10.2004 00:00:00;30.12.1899
15:00:00;"BSZ Südstadt";"Maria Enzersdorf";"AFC ASK=D6 =
Rangers";0;35;"Wegen
Spielermangels abgesagt und strafverifiziert!";"afcaskoerangers.jpg"
17;"Jugend";"Regular Season";"Week 6";10.10.2004 00:00:00;30.12.1899
14:00:00;;"St. Pölten";"OVB St. Pölten Invaders";0;0;"Wegen =
Spielermangels
bei beiden Seiten abgesagt!";"ovbstpoelteninvaders.jpg"
-----------------------------------------------------------------------
Tut mir leid dass das alles etwas unübersichtlich ist. Ich hoffe mir =
kann
jemand helfen - ist extrem wichtig.
Danke
Georg