18. april 2007 - 21:55Der er
5 kommentarer og 1 løsning
indsætte flere poster samme tid
Hejsa
Jeg har fået lavet noget kode her som udemærket kan indsætte en string. Hvordan får jeg det til at være muligt at indsætte flere variabler på samme tid.
Jeg har 2 tekstboke, hvoraf den ene (hylde) skal tjekke at hylden overhovedet eksisterer. Den anden er info som skal opdateres inden i databasen.
Jeg vil gerne have at begge tekstbokse skal kunne klare flere strenge, som (hylde) 11, 12, 13, 14, 15 etc. og (info)info1, info2, info3 etc.
Hvis en af hylderne ikke eksisterer skal det sættes til false, men hvis alle hylder er der, skal alt info ind i databasen.
Her er koden, hvis i har brug for yderlig forklaring så bare sig til.
<%
Dim hylde, info hylde =Trim( Request("hylde")) info = Trim(Request("info"))
Dim myConnection Set myConnection=Server.CreateObject("ADODB.Connection") myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../database/jn.mdb") myConnection.Open Dim loginSQL LoginSQL = "SELECT * FROM trial WHERE hylde = '" & hylde & "'" Dim myRS Set myRS=Server.CreateObject("ADODB.Recordset") myRS.Open loginSQL, myConnection Dim mainMessage If myRS.EOF Then mainMessage="hyldeInfo=false" Else If(StrComp(myRS("hylde"), hylde, vbTextCompare) =0) Then set opdater = myConnection.execute("UPDATE trial SET info = '"&info&"' WHERE hylde = '"&hylde&"'") mainMessage="hyldeInfo=true" Else mainMessage = "hyldeInfo=false" End If End If myRS.Close Set myRS=Nothing myConnection.Close Set myConnection=Nothing Response.Write(mainMessage) %>
Det er I access. Problemet er mere hvordan jeg får ASP/Access til at vide at efter en komma er der en ny variabel. Hvis vi siger 11,12,13 er 3 variabler skrevet i samme input field.
Access understøtter også IN () metoden, men problemet her ar at info også er en komma liste:
Dette ville virker: UPDATE trial SET info = 'noget tekst' WHERE hylde in (2,5,1,8,4)
Men du er ude efter noget ala: UPDATE trial SET info = 'noget tekst,noget tekst,noget tekst,noget tekst' WHERE hylde in (2,5,1,8,4)
Det kan men ikke med en update. Insert kan, men kan ikke huske om access har understøttelsen.
Du bliver derfor nød til at updatere enkeltvis. Lav en split på variablerne:
hyldeArr = split(request.form("hylde"),",") infoArr = split(request.form("info"),",") for f=0 to uBound(hyldeArr) conn.execute("update trial SET info = '"& infoArr(f) &"' WHERE hylde = '"& hyldeArr(f) &"'") next
Koden ser nu således ud, og det virker, men man har kun muligheden for at indsætte det således 1,2,3 og info1,info2,info3. Det ville være dejligt hvis man kunne gøre således når info er den samme i hver hylde. fx. 1,2,3 og info1.
btw kan man ikke trimme en variabel når split er der?
Dim myConnection Set myConnection=Server.CreateObject("ADODB.Connection") myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../database/jn.mdb") myConnection.Open Dim loginSQL LoginSQL = "SELECT * FROM trial WHERE hylde = '" & hyldeArr(f) & "'" Dim myRS Set myRS=Server.CreateObject("ADODB.Recordset") myRS.Open loginSQL, myConnection Dim mainMessage If myRS.EOF Then mainMessage="hyldeInfo=false" Else If(StrComp(myRS("hylde"),hyldeArr(f), vbTextCompare) =0) Then
for f=0 to uBound(hyldeArr) set opdater = myConnection.execute("update trial SET info = '"& infoArr(f) &"' WHERE hylde = '"& hyldeArr(f) &"'") next mainMessage="hyldeInfo=true"
Else mainMessage = "hyldeInfo=false"
End If End If
myRS.Close Set myRS=Nothing myConnection.Close Set myConnection=Nothing Response.Write(mainMessage) %>
Håber du kan hjælpe mig, ellers bare svar, så får du dine point:)
Ikke helt med på hvad du mener med trimme en varibel sammen med split, men det kan man godt:
tmp = " hej, med , dig " tmp = trim(tmp) 'tmp er nu " hej, med , dig " tmpArr = split(tmp) for f=0 to ubound(tmpArr) response.write trim(tmpArr(f)) 'Udskriver "hej", "med" og "dig" next
fejl :o) tmp er selvfølgelig "hej, med , dig" efter trim
Der kan IKKE laves trim på denne måde: tmp = " hej, med , dig " tmpArr = split(tmp) tmpArr = trim(tmpArr)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.