webForumDet fria alternativet

Lägga in ingenting, varför funkar det ej?

ASP

12 svar · 287 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Frågan#1

Har en SQL kod här:

			sql = "INSERT INTO FaktH(.... Faktmottagare, ...)"
			sql = sql & "VALUES( "

[B]...[/B]

			sql = sql & "', '"
[I]			sql = sql & ""[/I]
			sql = sql & "', '"

Som ni ser så ska den sneda raden sätta in ingenting, absolut ingenting alls, men det funkar inte, vet ej varför, eftersom det bara funkar om man tar bort det totalt, vilket inte går eftersom den ska användas i en if-sats senare...
Förstår inte varför det inte funkar, man ser inget i Access heller när man kollar databas fältet...

Man ser problemet senare i ett annat program, en raport som är gjord av Crystal Reports, det har en kod som går nått "isNull then this and that"

Problemet är att det inte verkar vara så, det funkar bara om man inte ens har med denna kod bit...

Hur kan jag sätta in ingenting?

Medlem sedan juni 200032 967 inlägg
#2

Det där är inte ingenting, det där är en sträng med längden noll tecken.

Ett nullvärde är NULL. NULL skall inte ha apostrofer runt sig, utan bara NULL mellan kommatecken i VALUES-parentesen.

Mvh,

Medlem sedan sep. 20004 079 inlägg
#3

@nders skrev:

Det där är inte ingenting, det där är en sträng med längden noll tecken.

Ett nullvärde är NULL. NULL skall inte ha apostrofer runt sig, utan bara NULL mellan kommatecken i VALUES-parentesen.

Mvh,

Aah, dumma mig, är fortfarande helt koko när det gäller ASP...

Du menar såhär då?
sql = sql & "', '"
sql = sql & NULL
sql = sql & "', '"

Medlem sedan juni 200032 967 inlägg
#4

ASP? Det där har inget med ASP att göra. ;)
Pure SQL. :)

Nej, inte riktigt så där. Du skall inte ha några apostrofer i SQL-frågan runt värdet NULL, eftersom det inte är någon sträng.

Byt:

sql = sql & "', '" 
sql = sql & NULL 
sql = sql & "', '"

Mot:

sql = sql & "', NULL, '"

Mvh,

Medlem sedan sep. 20004 079 inlägg
#5

Kan du hjälpa med If satsen då? den funkar inte...

			IF session("Faktmottagare") = "" THEN
				sql = sql & "', NULL, '"
			ELSE
				sql = sql & "', '"
				sql = sql & session("Faktmottagare")
				sql = sql & "', '"
			END IF

Har testat med denna kod och NULL skrivs inte in fastän faktmottagare är tomt...
Har det nått att göra med strängar igen?

Medlem sedan juni 200032 967 inlägg
#6

Vad innehåller sessionen? Prova att skriva ut innehållet med response.write.

Jag tycker också att sättet du skapar din SQL-fråga på verkar vara lite krångligt.

Den if-satsen bör fungera, under förutsättning att sessionsvärdet är endast tom sträng, inte null, inte något mellanslag, osv.

Response.write "#" & session("Faktmottagare") & "#"

# har jag med i utskriften för att se om det finns något mellanslag i sessionsvärdet.

Mvh,

Medlem sedan sep. 20004 079 inlägg
#7

@nders skrev:

Vad innehåller sessionen? Prova att skriva ut innehållet med response.write.

Nej, ingeting emellan dom två...

Jag tycker också att sättet du skapar din SQL-fråga på verkar vara lite krångligt.

Inte jag som skapat den, arbetar med ett färdig gjort system som inköptes ett år före jag började här...

Den if-satsen bör fungera, under förutsättning att sessionsvärdet är endast tom sträng, inte null, inte något mellanslag, osv

Tycker jag också, och i kund informationen där den hämtas är den också tom.

Medlem sedan juni 200032 967 inlägg
#8

Skriv ut den färdiga SQL-frågan istället för att exekvera den, och posta den här. If-satsen ska som sagt fungera.

I Access syns dock ingen skillnad på om fältet är NULL eller har en tom sträng i sig.

Mvh,

Medlem sedan sep. 20004 079 inlägg
#9

Lite snurrigt blev det:

INSERT INTO FaktH(Ordernr, Totalt, Kundordernr, Levsätt, Faktmottagare, Extra_1, NettoDagar,Extra_6, Levvillkor, Extra_8, Orderdatum, Ordervecka, Kundnr, Faktureras, MomsSättning, Er_referens,Status, Utskrift,Utskrivet_1, Utskrivet_2, Utskrivet_3, Utskrivet_4, Utskrivet_5,Utskrivet_6, Utskrivet_7, Valuta, Ändrad, Följesedel, PåläggBelopp, PåläggMoms)

VALUES
('', 
'', 
'INTERNET', 
'Postpaket', 
'', <---- här
'', 
'0', 
'', 
'Fritt Korsnäs', 
'', 
Date(),
'0235-3',
'',
'0', 
'1',
'',
'4',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'1',
'2',
'1',
'',
'3')
Medlem sedan juni 200032 967 inlägg
#10

Hur får sessionen sitt värde?

Testa också detta (if all else fails, typ):

IF Trim("" & session("Faktmottagare")) = "" THEN

Mvh,

Medlem sedan sep. 20004 079 inlägg
#11

dubbel kollade, såhär står det:
, '',

Medlem sedan sep. 20004 079 inlägg
#12

Ja, nu funkar det, med "trim" funktionen.

Medlem sedan juni 200032 967 inlägg
#13

Förmodligen var det så att sessionen innehöll NULL. Det ser ju dock ut som en tom sträng, trots att det inte är det.

Mvh,

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)