Avatar billede horus Nybegynder
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
Avatar billede kalp Novice
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!
Avatar billede horus Nybegynder
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 :-)
Avatar billede kalp Novice
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))
Avatar billede horus Nybegynder
28. februar 2007 - 17:06 #4
prøver jeg....
Avatar billede horus Nybegynder
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
Avatar billede horus Nybegynder
28. februar 2007 - 17:12 #6
Cstr() om variablerne hjalp heller ikke.... :-(
Avatar billede kalp Novice
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
Avatar billede horus Nybegynder
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 :-(
Avatar billede kalp Novice
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
Avatar billede horus Nybegynder
30. september 2008 - 08:46 #10
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester