Har frågat detta förut och har använt mig av detta:
If recset.eof then
'recordset tomt
else
'recordset inte tomt
end if
men detta funkar inte om min tabell jag försöker hämta dada ifrån är tomt.. Jag har satt standardvärdena i tabellen till "" alltså tom sträng.. då kraschar allt. Sätter jag standardvärdet till 0 i dessa fält istället så tror den inte att recordsetet är tomt utan försöker gå vidare ändå.. Vad ska jag göra??
sql_max = "select max(produktkategori_ID) from produktkategori"
set maxRecSet = Server.CreateObject("ADODB.Recordset")
maxRecSet.open sql_max, connect
if not maxRecSet.EOF or not maxRecSet.BOF then
response.write("Inte tom")
else
response.write("Tom")
end if
maxRecSet.Close
Den blir aldrig tom hur jag än gör.. Beror det på sql frågan att jag letar efter max?
sql_max = "select max(produktkategori_ID) as MaxAntal from produktkategori"
set maxRecSet = Server.CreateObject("ADODB.Recordset")
maxRecSet.open sql_max, connect
if maxRecSet.EOF or maxRecSet.BOF then
max_ID = 1
else
Do Until maxRecSet.EOF
max_ID = maxRecSet(0)
maxRecSet.MoveNext
Loop
max_ID = max_ID +1
end if
maxRecSet.Close
Även om jag bara anvånder if maxRecSet.EOF så verkar mitt
recordset aldrig vara tomt.. Eftersom det inte ligger någonting i tabellen så försöker den göra max_ID = max_ID +1, detta trots att
max_ID aldrig får ett värde, dvs det kraschar.. grr
är redundant för dig, eftersom du gör en SELECT. End-Of-File räcker alldeles utmärkt. Det du har efter
Do Until maxRecSet.EOF
max_ID = maxRecSet(0)
maxRecSet.MoveNext
Loop
förstår jag inte vad det ska vara bra för. Ge tusan i defaultvärden. Dom ställer bara till med bekymmer ;)
sql_max = "SELECT (Max(produktkategori_ID) + 1) AS nNewValue FROM produktkategori"
maxRecSet.Open sql_max, connect
If maxRecSet.EOF Then
[blue]'Ingen post... maxID = 1 ?[/blue]
Else
maxID = maxRecSet("nNewValue")
End If
Det kan tänkas att jag inte förstog ditt problem, men jag antar att det är något sånt här du är ute efter.
okay, jag förstår att jag kanske krånglat till det lite för mig.. Använder mig av det du skrev här innan, Mitt problem fortfarande är dock att
if maxRecSet.EOF then
aldrig blir sant. Trots att min tabell är tom och den inte borde ha nåt värde försöker den tilldela max_ID med någonting.. Förstår inte varför. Nu har jag i access inte satt något standardvärde alls. Jag antar att detta värde är NULL eller "" vet verkligen inte vad jag skall göra. Mitt max_ID får alltså inget värde då tabellen jag söker från är helt tom. Finns det en post och ett ID så går det bra men annars inte
sql_max = "select max(produktkategori_ID) as MaxAntal from produktkategori"
'
'
if maxRecSet(0) is null then
'produktkategori är tom
else
'produktkategori är inte tom
end if
om .recordcount är -1 brukar det innebära att recordsetet inte är öppnat på ett sätt som stöder propertyn, och då är värdet alltid -1, oberoende av hur många poster där finns. Använd nikos förslag, det är mitt förslag.
jag måste göra nåt annat fel. Såhär ser det ut nu, använde mig av nikos förslag:
sql_max = "select max(produktkategori_ID) as Maxvalue from produktkategori"
set maxRecSet = Server.CreateObject("ADODB.Recordset")
maxRecSet.open sql_max, connect
if maxRecSet(0) is NULL then
max_ID = 1
response.write("TOMT")
else
max_ID = maxRecSet("Maxvalue")
end if
Resultatet blir fortfarande att max_ID inte har något värde
Det är helt otroligt, jag får det verkligen inte att fungera.
om jag skriver
sql_max = "select max(produktkategori_ID) as Maxvalue from produktkategori"
Vad får då Maxvalue för värde om tabellen jag hämtar från är tom..
Jag har testat med "" och is NULL men ingenting av detta blir sant
fattar verkligen inte
if isNull(maxRecSet(0)) then
'produktkategori är tom
else
'produktkategori är inte tom
end if
Grymt tack @nders!! fattar att man sliter håret av sig efter ett tag
någonting som fortfarande är konstigt är att maxRecSet.recordcount fortfarande blir -1 trots att det finns poster i tabellen. Ett problem som jag iof inte orkar bry mig om just nu =)
257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2