28. februar 2007 - 16:30
Der er
9 kommentarer og 1 løsning
Opdatering af post vha. array
Hej, Jeg har et problem. Jeg benytter en parameter forespørgsel til at opdatere en række felter i en database. Værdierne smides i et array, og der laves en så en cmd.execute for at opdatere databasen. Dette virker helt fint, så længe der er værdier i felterne. Hvis felterne er tomme så kikser arrayet. Det er ikke i databasen det kikser for dér er "TilladNullVærdi" for alle relevante felter. For mig virker det umiddelbart som om at der ikke kan indsættes "tomme værdier" eller NULL værdier via et array på denne måde. Er der nogen der har oplevet det samme og måske har et løsningsforslag ? Koden er som følger: strSQL = "Update tblUddProfiler " strSQL = strSQL & "Set Navn = ?, " strSQL = strSQL & "TeaserText = ?, " strSQL = strSQL & "Overskrift = ?, " strSQL = strSQL & "[Overskrift-2] = ?, " strSQL = strSQL & "Forfatter = ?, " strSQL = strSQL & "ProfilHTML = ?, " strSQL = strSQL & "KarriereHTML = ?, " strSQL = strSQL & "FaktaHTML = ?, " strSQL = strSQL & "Mail = ?, " strSQL = strSQL & "Telefon = ?, " strSQL = strSQL & "web = ?, " strSQL = strSQL & "Adresse = ? " strSQL = strSQL & "WHERE tblUddProfiler.UddProfilID=" & request.Form("UddProfilID") & ";" arParms=Array(strNewUddNavn, strNewTeaser, strNewOverskrift, strNewOverskrift2, strNewForfatter, strNewProfilHTML, strNewKarriereHTML, strNewFaktaHTML, strNewMail, strNewTelefon, strNewwww, strNewAdresse) dim cmd set cmd=createobject("adodb.command") set cmd.activeconnection=conn cmd.CommandText=strSQL cmd.commandType=1 'adCmdText cmd.Execute ,arParms,128 'adExecuteNoRecords Alle "str" værdierne der puttes ind i array'et, hentes via request.form andet steds i koden. Håber der er nogle gode råd derude.... Horus
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
28. februar 2007 - 16:33
#1
har du oprettet alle dine variabler sådan her? Dim xx,yy,bb osv osv først? så kan du lave dette bagefter xx = "" yy = "" osv osv og til sidst request.form på dem.. xx = xx " & request.form("etting") så er de aldrig tomme!
28. februar 2007 - 16:44
#2
har prøvet at lave noget tilsvarende hvor jeg sætter dem til at være "" hvis "længden" er 0 - så de netop ikke er tomme - men det virker ikke. Hvis jeg derimod sætter dem til at være " " så virker det fint, men så har jeg jo et "mellemrum" i min post og det er jo ikke lige det jeg er ude efter :-)
28. februar 2007 - 16:51
#3
forstår ikke hvorfor det ikke virker hvis man sætter dem til "" da det jo er en tom streng. prøv igen og lav din array sådan. arParms=Array(Cstr(strNewUddNavn), Cstr(strNewTeaser), Cstr(strNewOverskrift), Cstr(strNewOverskrift2), Cstr(strNewForfatter), Cstr(strNewProfilHTML), Cstr(strNewKarriereHTML), Cstr(strNewFaktaHTML), Cstr(strNewMail), Cstr(strNewTelefon), Cstr(strNewwww), Cstr(strNewAdresse))
28. februar 2007 - 17:06
#4
prøver jeg....
28. februar 2007 - 17:09
#5
Fejlen jer får er i øvrigt: Microsoft OLE DB Provider for ODBC Drivers error '80040e21' [Microsoft][ODBC Microsoft Access Driver]Invalid precision value
28. februar 2007 - 17:12
#6
Cstr() om variablerne hjalp heller ikke.... :-(
28. februar 2007 - 17:16
#7
så lav det her.. if IsEmpty(request.form("eteller andet")) then xx = " " else xx = request.form("et eller andet") end if og hvis isEmpty ikke virker så bare tjek normalt.. altså om værdien er større end "". det vil virke.. så er det kun de tomme plads i dit array som får et mellemrum
28. februar 2007 - 17:20
#8
jo - men det kan jeg godt få til at virke, men så får jeg et mellemrum ind i felter i databasen - og da der andre steder tjekkes for om felterne er tomme, så skal det så også laves om :-(
28. februar 2007 - 17:45
#9
ved ikke hvad ellers desværre.. men med hensyn til de andre steder skal du ellers blot skrive if Trim(rs("noget")) "" then den er tom else den er ikke tom
30. september 2008 - 08:46
#10
lukker
Kurser inden for grundlæggende programmering