Avatar billede bernhof Nybegynder
23. april 2001 - 15:35 Der er 20 kommentarer og
2 løsninger

ASP/SQL: Talfelt=ingenting?

Jeg har en tabel i en database med et felt kaldet \"antal\" som er numerisk. Dette er felt er dog ikke obligatorisk.

Hvordan sætter jeg dette felts værdi til at være ingenting i en INSERT INTO og UPDATE SQL Streng? - Det virker ikke med antal=\'\'...

Hvad gør jeg?
Avatar billede nute Nybegynder
23. april 2001 - 15:39 #1
du bare utelater feltet i dine SQL statements...
Avatar billede perla Nybegynder
23. april 2001 - 15:53 #2
I din

\"Insert into tabel (Felt1,felt2) Values (Værdi1,værdi2)\" udelader du bare feltet.

Update sætningen ændrer man kun de værdier man skriver, så dette er ikke et problem.

-Per
Avatar billede bernhof Nybegynder
23. april 2001 - 15:56 #3
Nå ja! I har ret med INSERT INTO, men ikke med UPDATE.

Jeg vil gerne have feltet sat til at være ingenting i mine UPDATE statements... dette sker ikke hvis jeg udlader feltet fra UPDATE - så lader den bare være med at ændre værdien!
Avatar billede nute Nybegynder
23. april 2001 - 16:00 #4
har du ikke en defaultverdi i ditt felt ? på databasenivå ?
Avatar billede nute Nybegynder
23. april 2001 - 16:02 #5
men så lenge du allerede har fått satt inn en \"tom\" verdi,  så skal det ikke være nødvendig å gjøre noe annet for en update...

det skal være nok å utelate feltet i din update statement...
Avatar billede bernhof Nybegynder
23. april 2001 - 16:02 #6
Nej - min default værdi for feltet er \"\" (ingenting). Men dette betyder jo kun noget i mit Insert Into statement!
Avatar billede bernhof Nybegynder
23. april 2001 - 16:05 #7
Eksempel:

feltet \"antal\" er ved et tidligere UPDATE blevet sat til værdien \"100\".

NU vil jeg gerne sætte feltets værdi til INGENTING ved hjælp af et UPDATE statement!!

Dette kan man ikke ved blot at udelade feltet fra mit UPDATE statement!!
Avatar billede nute Nybegynder
23. april 2001 - 16:09 #8
hvis det er et tallfelt, kan du jo sette verdien til \'null\' hvis du har tillatt dette i ditt design. deretter skal du bare, i dine SELECT statements hente ut alle som ikke er null...alternativt kan du benytte 0 eller -1...

/nute
Avatar billede bernhof Nybegynder
23. april 2001 - 16:15 #9
OK ... det var én metode - tak! :)

Men uheldigvis kræver den at jeg laver det meste af min kode på mit website om... hvilket jeg ikke helt har lyst eller tid til lige nu :)

Er der ikke andre muligheder... Jeg mener... det må vel være muligt på én eller anden måde?!
Avatar billede perla Nybegynder
23. april 2001 - 16:19 #10
Det er heller ikke det samme. At ef felt er Null=INGENTING er et udtryk for den ikke er defineret. Når den en gang har været defineret kan den ikke \"udefineres\". En løsning kunne være at trække data ud, slette data og importer dem igen.

-Per
Avatar billede bernhof Nybegynder
23. april 2001 - 16:20 #11
Nute får point hvis der ikke er...
Avatar billede nute Nybegynder
23. april 2001 - 16:21 #12
kan ikke tenke meg at det er en annen måte, desverre...alle metodene jeg kan komme på krever at du faktisk på skrive om på din kode. Du kan enten skrive om alle dine SQL eller så kan du skrive om dine utlistninger, fx hvis du støter på en oppføring som er lik \'null\' så skal du ikke skrive den ut. prinsippet er det samme, men....

/nute
Avatar billede bernhof Nybegynder
23. april 2001 - 16:22 #13
PERLA >> Det var nok the last resort, da denne metode som du nævner kommer til at trække hårdt på databasen...
Avatar billede nute Nybegynder
23. april 2001 - 16:22 #14
perla >> selvfølgelig er det mulig !!
Avatar billede perla Nybegynder
23. april 2001 - 16:23 #15
Må lige korrigere min opfattelse. Afprøvede det lige.

Du skal bruge sætningen.

Update tabel set antal = NULL where Test2 = \'100\'

-Per
Avatar billede bernhof Nybegynder
23. april 2001 - 16:24 #16
Tja... så må det jo være det jeg tager mig til, så!

Tak for hjælpen - begge to!
Avatar billede perla Nybegynder
23. april 2001 - 16:24 #17
Sorry sætte fejl.

Det skulle selfølgelig være

Update tabel set antal = NULL where antal = \'100\'

-Per
Avatar billede bernhof Nybegynder
23. april 2001 - 16:37 #18
Det virker fint som I begge sagde, såå ... Tak for hjælpen! :)

/Mikkel
Avatar billede bernhof Nybegynder
23. april 2001 - 16:43 #19
Damn! - Jeg kom lige i tanke om noget :

Hvordan checker jeg i ASP om et felt fra databasen er lig NULL?

Jeg vil gerne bede om kode.

Kan det være noget lignende dette:

If RS(\"antal\") = Null Then \'Bla bla ?
Avatar billede nute Nybegynder
23. april 2001 - 16:46 #20
if not isNull( RS(\"antal\") ) then
  \'så er den ikke null
end
/nute
Avatar billede perla Nybegynder
23. april 2001 - 16:46 #21
Ja, men i SQL spørger man Where Antal is Null, dvs man bytter = med is.
Avatar billede bernhof Nybegynder
23. april 2001 - 16:53 #22
OK, tak skal I have!! :)
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