Avatar billede foralias Praktikant
29. december 2006 - 09:06 Der er 12 kommentarer og
3 løsninger

Automatisk indsætte værdier i database.

Jeg har en validerings side, som skal indsætte en række værdier i en tabel, hvis alle validerings kravene er opfyldt.
Jeg har lavet det sådan at min variabel "error_count" er lig 0 indtil der er en fejl, så bliver den lig 1. Er der ingen fejl skal daterne indsættes. Uden at brugeren skal trykke på noget.

Jeg har tænkt på at lave en sub, kan det lade sig gøre?
Eks.
sub succes
Indsæt data
end sub

og burde jeg kunne kanlde den med følgende:
if error_count=0 then succes

Data som skal indsættes:
Tabel navn: Bruger
Felter: bruger, adr, by, post, land
Variabler: bru_opr, adr_opr, by_opr, post_opr, land_opr

Er det helt hen i vejret?
Avatar billede aggemamm Nybegynder
29. december 2006 - 12:16 #1
hello.
en måde kunne være:

if error_count<>1 then
query = "INSERT INTO Bruger (bruger, adr, by, post, land) VALUES ('bru_opr', 'adr_opr', 'by_opr', 'post_opr', 'land_opr')"
dbConn.Execute(query)   
end if

Happy coding!
Avatar billede foralias Praktikant
29. december 2006 - 13:58 #2
Hey det ser umiddelbart ud til at fungere.
Jeg har bare glemt at jeg også har en dato variabel sidst_dato.
Den vil ikke sætte den ind i DB'en, som er sat til datetime. Variablen bliver formatteret som yyyymmdd.
Den skriver: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.
Avatar billede aggemamm Nybegynder
29. december 2006 - 14:19 #3
Hvis du bruger sidst_dato = now() og sætter det ind i databasen, skulle det gerne virke.
Du kan også bruge IsDate(expression) funktionen til at validere det du prøver at indsætte i databasen.
Avatar billede foralias Praktikant
29. december 2006 - 14:40 #4
Datoen er valideret med isdate. Og som skrevet er det en variabel, dvs. jeg kan ikke bruge now, den angiver jo dags dato.
Avatar billede foralias Praktikant
29. december 2006 - 14:40 #5
Jeg bruger den som en slags sidste udløbsdato.
Avatar billede aggemamm Nybegynder
29. december 2006 - 14:56 #6
alt efter hvilken database det er du forsøger at indsætte data i, så undersøg hvordan sidst_dato skal formatteres så databasen accepterer det.
Avatar billede foralias Praktikant
30. december 2006 - 13:20 #7
Det er en SQL2000 database, og feltet er sat til datetime.
Avatar billede aggemamm Nybegynder
02. januar 2007 - 12:40 #8
det er nok bare en lille formatteringsfejl så.
prøv at sætte bindestreger mellem år, måned og dag; så det bliver YYYY-MM-DD
Avatar billede foralias Praktikant
02. januar 2007 - 12:54 #9
Jeg tror jeg har fundet "fejlen" om jeg så må sige.
Jeg prøvede at ændre tabellen til at kunne modtage alt. Det viser sig så at den skriver variabelnavnet i de respektive kolonner i stedet for værdien. Altså i kolonnen bruger skriver den bru_opr.
Håber du forstår :-)
Avatar billede fennec Nybegynder
02. januar 2007 - 13:03 #10
Du skal have dine variabler ind rigtigt og ikke bare som tekst. Også er "by" et reserveret ord så der skal [] omkring:

query = "INSERT INTO Bruger (bruger, adr, [by], post, land, sidst_dato) VALUES ('"& bru_opr &"', '"& adr_opr &"', '"& by_opr &"', '"& post_opr &"', '"& land_opr &"','"& sidst_dato &"')"
Avatar billede fennec Nybegynder
02. januar 2007 - 13:04 #11
MS-SQL godtager desuden yyyymmdd formatet så det kan du godt lade blive som det er.
Avatar billede foralias Praktikant
02. januar 2007 - 14:00 #12
Så virker det (næsten)!
Post feltet er et numerisk felt, dvs. jeg får fejlen Error converting data type varchar to numeric. Hvordan fortæller jeg liget at det er numerisk?
fennec smid lige et svar, du har hjulpet med opklaringen.
Avatar billede foralias Praktikant
02. januar 2007 - 14:01 #13
liget -> lige at
liget er jo nok ligeglad ;-)
Avatar billede fennec Nybegynder
02. januar 2007 - 14:07 #14
lol

Fjern ' omkring værdien post_opr:

query = "INSERT INTO Bruger (bruger, adr, [by], post, land, sidst_dato) VALUES ('"& bru_opr &"', '"& adr_opr &"', '"& by_opr &"', "& post_opr &", '"& land_opr &"','"& sidst_dato &"')"
Avatar billede foralias Praktikant
02. januar 2007 - 14:37 #15
SÅDAN!
Jeg tænkte det nok, men fik en syntax fejl. Det var som sædvanlig bare en skriuve farjl :-)
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