03. februar 2004 - 09:27Der er
18 kommentarer og 1 løsning
Konvertering af priser
jeg kan ikke få lov til at skrive prisen 50,95 til databasen. den vil kun acceptere 50.95. hvordan kan jeg omskrive det ?
NB: jeg bruger Dreamweaver så det er vigtigt at koden kan tilpasses det gejl som DW laver. Eksempel på min opret produkt kode:
<% ' *** Edit Operations: declare variables
Dim MM_editAction Dim MM_abortEdit Dim MM_editQuery Dim MM_editCmd
Dim MM_editConnection Dim MM_editTable Dim MM_editRedirectUrl Dim MM_editColumn Dim MM_recordId
Dim MM_fieldsStr Dim MM_columnsStr Dim MM_fields Dim MM_columns Dim MM_typeArray Dim MM_formVal Dim MM_delim Dim MM_altVal Dim MM_emptyVal Dim MM_i
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME")) If (Request.QueryString <> "") Then MM_editAction = MM_editAction & "?" & Request.QueryString End If
' boolean to abort record edit MM_abortEdit = false
' query string to execute MM_editQuery = "" %> <% ' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "fHtmlEditor") Then
' create the MM_fields and MM_columns arrays MM_fields = Split(MM_fieldsStr, "|") MM_columns = Split(MM_columnsStr, "|")
' set the form values For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2 MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i))) Next
' append the query string to the redirect URL If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString Else MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString End If End If
End If %> <% ' *** Insert Record: construct a sql insert statement and execute it
Dim MM_tableValues Dim MM_dbValues
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement MM_tableValues = "" MM_dbValues = "" For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2 MM_formVal = MM_fields(MM_i+1) MM_typeArray = Split(MM_columns(MM_i+1),",") MM_delim = MM_typeArray(0) If (MM_delim = "none") Then MM_delim = "" MM_altVal = MM_typeArray(1) If (MM_altVal = "none") Then MM_altVal = "" MM_emptyVal = MM_typeArray(2) If (MM_emptyVal = "none") Then MM_emptyVal = "" If (MM_formVal = "") Then MM_formVal = MM_emptyVal Else If (MM_altVal <> "") Then MM_formVal = MM_altVal ElseIf (MM_delim = "'") Then ' escape quotes MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'" Else MM_formVal = MM_delim + MM_formVal + MM_delim End If End If If (MM_i <> LBound(MM_fields)) Then MM_tableValues = MM_tableValues & "," MM_dbValues = MM_dbValues & "," End If MM_tableValues = MM_tableValues & MM_columns(MM_i) MM_dbValues = MM_dbValues & MM_formVal Next MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
If (Not MM_abortEdit) Then ' execute the insert Set MM_editCmd = Server.CreateObject("ADODB.Command") MM_editCmd.ActiveConnection = MM_editConnection MM_editCmd.CommandText = MM_editQuery MM_editCmd.Execute MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then Response.Redirect(MM_editRedirectUrl) End If End If
det er en af grundene til at jeg ikke bruger editorer som fx DreamWeaver ... den fucker fuldstendig op alt der hedder fornuft ;-) Man har ikke kontrol på "en skid" ...
anyway ... du kan jo prøve at gøre følgende:
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2 if( MM_fields(MM_i+1) = "Pris" Or MM_fields(MM_i+1) = "Pris_DKK_v6" ) then MM_formVal = Replace( MM_fields(MM_i+1), ",","." ) else MM_formVal = MM_fields(MM_i+1) end if
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [TCX][MyODBC]Column count doesn't match value count at row 1 /admin/vin/opret_vin.asp, line 140
oki ... du har ikke fået fanget prisen ... du kan godt se at prisen her stadig er '59,95'.
Men efter at have kigget lidt mere på din kode, kan det se ud som om du skal gøre:
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2 if( MM_fields(MM_i) = "Pris" Or MM_fields(MM_i) = "Pris_DKK_v6" ) then MM_formVal = Replace( MM_fields(MM_i+1), ",","." ) else MM_formVal = MM_fields(MM_i+1) end if
det var da godt at høre :-) har aldrig helt klaret at gennemskue kode fra dreamWeaver tidligere. hver eneste gang jeg ser kode fra DW, så rykker jeg 3 meter bagud ... det er noget værre skod :-|
Men jeg tror det er nemmere for dig at lære *uden* at kigge på koden fra DW. DW laver så meget unødig kode som ikke er normalt at bruge, så jeg ville hellere råde dig til at læse en tutorial om ASP. læs denne ... den er meget nem at tilgå, og efter at du har læst denne igennem, så vil du nok være dygtig nok til at forstå meget af den kode som DW genererer:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.