Hallo Mansur,
vielleicht hiflt Dir folgender Scoure weiter habe ich mal auch jux geschrieben,
erstellt ein Formular aus feldern einer tabelle und tr�gt
ein update nach Submit ein, l�sst sich aber genausogut mit Insert machen
<%
option explicit
response.expiresabsolute=dateadd("d",-1,now)
response.buffer=true
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">
<html>
<head>
<STYLE>
<!--
.blautext { font-family: Arial, Helvetica; font-size: 12px; color: #0a0b68;
TEXT-DECORATION: none; }
//-->
</STYLE>
</head>
<body bgcolor='#ffffff' text='#0a0b68'>
<%
'------ Variablen bestimmen ---
dim database, db, db_table, db_idfield, id_nr
db_table = "Deine_Tabelle"
db_idfield = "ID"
id_nr = 135
database = "Deine_Datenbank"
Set db = Server.CreateObject("ADODB.Connection")
db.Open "DBQ=" & Server.Mappath("../" & database & ".mdb") & ";Driver={Microsoft
Access Driver (*.mdb)};"
'-------------------------------------- Formulardaten pr�fen:
if Request.Form.Count = 0 then
DatenbankAbfrage db, db_table, db_idfield, id_nr
else
FormularAnzeigen db, db_table, db_idfield, id_nr
end if
'----------------------------- Datenbankabfrage -------------------------------
sub DatenbankAbfrage(db,db_table, db_idfield,id_nr)
Dim counter, sql, rs, field
counter = 0
Sql = "Select * from " & db_table & " where " & db_idfield & " = " & id_nr
set rs = db.Execute(sql)
rs.MoveFirst
Response.Write "<center><form method='post'><table class='blautext'><tr>" & vbCRLF
for each field in rs.fields
counter = counter + 1
Response.Write "<td><input type='text' class='blautext' style='width=190' name='" &
field.name & "' value='" & field.value & "'></td>" & vbCRLF
Response.Write "<td>" & field.name & "</td>" & vbCRLF
If counter = 2 then
counter = 0
Response.Write "</tr><tr>" & vbCRLF
end if
next
Response.Write "<td colspan='4'><input type='submit' value='Absenden'>" & vbCRLF
Response.Write "</tr></table></form></center>" & vbCRLF
rs.close
db.close
end sub
'--------------------- Formular dynamisch erstellen ---------
sub FormularAnzeigen(db,db_table,db_idfield,id_nr)
Dim count, sql, Updateliste, UpdateInsert, entry, field, rs, hotels, eintrag,
UpdateString
count = 1
sql = "Select "
for each entry in Request.Form
if count = 1 then
sql = sql & entry
else
sql = sql & ", " & entry
end if
count = count + 1
next
sql = sql & " from " & db_table & " where " & db_idfield & " = " & id_nr
set rs = db.Execute(sql)
rs.MoveFirst
for each entry in request.form
eintrag = Request.Form(entry)
if eintrag = "" then Eintrag = " "
for each field in rs.fields
if Lcase(entry) = "id" then
'
else
if entry = field.name then
Select case field.type
case 8, 2, 129, 200, 201, 130, 202, 203
'---- String ----
updateliste = updateliste & entry & " = '" & Replace(eintrag, "'", chr(96)) & "', "
case 7, 133, 134, 135
'------ Datum ---
updateliste = updateliste & entry & " = '" & CDate(eintrag) & "', "
case 11
'------ Boolean -----
updateliste = updateliste & entry & " = " & CInt(CBool(eintrag)) & ", "
case 9, 10, 13, 128, 132, 204, 205
'-------------- Spezial -------------
case else
'---------- Numeric
updateliste = updateliste & entry & " = " & eintrag & ", "
end select
end if
end if
next
next
updateliste = updateliste + ")"
updateliste = Replace(updateliste, ", )", "")
UpdateString = "Update " & db_table & " set " & updateliste & " where " & db_idfield &
" = " & id_nr
set hotels = db.Execute(UpdateString)
rs.close
db.close
'----- Updatebestaetigung -----
If Err = 0 then
html "Das Update wurde erfolgreich durchgef�hrt"
else
html "Fehler beim update"
end if
end sub
'----------------- HTML anstelle von response.Write
sub html(text)
response.Write "<p class='blautext'>" & text & "</p>"
end sub
%>
</dd></dl>
</body>
</html>
Mit freundlichen Gr��en
Andr� Scheres
http://hotelandre.de
http://partnerhotels.com
----- Original Message -----
From: "Offensiv-Medien [Mansur Esmann]" <[EMAIL PROTECTED]>
To: "AspGerman Kaffeehaus" <[EMAIL PROTECTED]>
Sent: Tuesday, November 20, 2001 6:39 PM
Subject: [aspdecoffeehouse] Feldtypen einer DB
| Hallo Leute,
|
| Hat jemand einen sinnvollen Ansatz wie ich herausfinden kann, ob ich einen
| Feldwert f�r ein Insert in eine DB Quoten muss oder nicht?
| Es geht ausschlie�lich um SQL-Server
|
| -Ich habe die Funktion so umrissen:
| checkTable = Tabellenname
| ConnectionTable = der Connectionstring
| FiledTable = Das Feld, bei dem ich rausfinden will, ob es gequotet geh�rt!!!
|
| function CheckForQuotes checkTable, ConnectionTable, FieldTable
|
| '....Wie kann ich das machen?
| CheckForQuotes = "'"
| CheckForQuotes = ""
|
| end function 'CheckForQuotes
|
| Hintergrund:
|
| Ich habe felder die per post gesubmittet werden. Diese Felder hei�en so wie
| auch die DB-Felder hei�en...
| Jetzt kann ich aber nicht einfach einen Querystring zusammenbauen, weil ich
| keinen Einfluss darauf habe was f�r ein Formular da kommt....
|
|
| F�r die die es interessiert:
|
| 'Aktion ausf�hren
| if Action2 ="insertEXE" Then
| query = "insert into " & singNode.getAttribute("table") & "("
| For each childs in singNode.childNodes
| query = query & childs.getAttribute("name") & ", " 'Aus dem XML-Node
| alle Child holen, denn die referenzieren welche DB-Felder ge�ndert werden
| k�nnen
| Next
| query = left(query, len(query)-2) & ") VALUES ("
| For each childs in singNode.childNodes
| 'In der CheckForQuotes m�chte ich entweder quotes zur�ckbekommen (') oder
| nichts
| Quote = CheckForQuotes singNode.getAttribute("table"),
| singNode.getAttribute("connection"), childs.getAttribute("name")
| query = query & Quote & request.form(childs.getAttribute("name")) & Quote
| &", "
| Next
| query = left(query, len(query)-2) & ")"
| response.write(query)
| set JobConn = Server.CreateObject("ADODB.Connection")
| JobConn.open singNode.getAttribute("connection")
| jobConn.Execute query
| jobConn.close
| set jobConn = nothing
| end if 'insertEXE
|
|
| Hat da wer einen Ansatz?
|
|
| Gru� Mansur
| __________________________________________________________
| Die Utopie ist die wirklichste aller wirklichen M�glichkeiten.
| Mansur Esmann, Offensiv-Medien, Heberlingerstr. 16, D-87471 Durach.
| Tel.: +49 (0)831 - 69 71 892, Fax: +49 (0)831 - 697 18 91.
| eMail: [EMAIL PROTECTED] Web: www.offensiv-medien.de
|
|
| | [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed
| | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| | Sie k�nnen sich unter folgender URL an- und abmelden:
| | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp
| [aspdecoffeehouse] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp