Skulle man på något sätt kunna hämta alla värden från ett formulär och sätta in dem i en tabell där fältet heter samma sak som namnet på det speciella fältet i forumuläret
Ursprungligen av Rinaldo **Skulle man på något sätt kunna hämta alla värden från ett formulär och sätta in dem i en tabell där fältet heter samma sak som namnet på det speciella fältet i forumuläret
PM-fält är ju text, men med Ja/Nej blir det svårare att lösa än med min simpla metod. Du får helt enkelt kolla genom varje fälttyp med ett recordset, och använda andra delimiters än "', '" som jag använde. Bör inte vara några problem. :)
Kan ge dig ett hantag när jag är tillbaka om en halvtimme, hinner inte just nu. :)
Här kommer ett sätt att lägga till data, oavsett fälttyp:
<%
Function SQL_Creator ( ByRef objRS )
Dim strCurrentDelimiter, strCurrentField, strCurrentValue
Dim strFields, strValues, strSQL
Dim objField
For Each objField In objRS.Fields
strCurrentDelimiter = ""
strCurrentField = ""
strCurrentValue = ""
Select Case objField.Type
Case 202
strCurrentDelimiter = "'"
Case 203
strCurrentDelimiter = "'"
Case 3
strCurrentDelimiter = ""
Case 135
strCurrentDelimiter = "#"
Case 11
strCurrentDelimiter = ""
End Select
For Each reqItem In Request.Form
If reqItem = objField.Name Then
strCurrentField = reqItem
strCurrentValue = strCurrentDelimiter & Request.Form ( reqItem ) & strCurrentDelimiter
End If
Next
If strCurrentField <> "" Then
If strFields <> "" Then
strCurrentField = ", " & strCurrentField
strCurrentValue = ", " & strCurrentValue
End If
strFields = strFields & strCurrentField
strValues = strValues & strCurrentValue
End If
Next
strSQL = "INSERT INTO tbl (" & strFields & ") VALUES(" & strValues & ")"
SQL_Creator = strSQL
End Function
Dim objC, objRS
set objC = Server.CreateObject ( "ADODB.Connection" )
objC.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ( "/yaDB.mdb" )
set objRS = objC.Execute ( "SELECT * FROM tbl" )
objC.Execute ( SQL_Creator ( objRS ) )
objRS.Close
objC.Close
set objRS = Nothing
set objC = Nothing
%>
Fungerar förhoppningsvis som den ska, har ju inte testat. :)
Fungerar endast för fält med typerna:
Tal, Text, PM, Datum och Boolean
Feltyp:
Request-objekt, ASP 0102 (0x80004005)
Funktionen förväntar sig en sträng som inmatning.
/applications/eget_forum/register_execute.asp, line 30
POST Data:
username=aaaa&password=aaaa&first_name=aaaa&sur_name=aaaa&email=aaaa&homepage=aaaa&location=aaaa&signature=aaaa&show_email=on&show_signature=on&auto_login=on
Detta felmeddelande uppkommer när jag använder scriptet...