Avatar billede _petrucci Nybegynder
19. december 2001 - 10:49 Der er 6 kommentarer og
2 løsninger

Check om værdi eksisterer i kolonno

Hejsa :)

Jeg er ved at lave et system hvor en administrator logger ind og kan oprette nye brugere. Disse brugere (med hvert sit id nummer) kan så oprette/redigere dokumenter i en anden tabel via et asp-interface med lister af dokumenterne.

Når administratoren har oprettet brugeren, er der selvfølgelig ingen dokumenter med hans brugerid i tabellen \"dokumenter\", så hvis brugeren går ind og kigger hans dokumenter igennem, finder han ingen men får fejlen:

ADODB.Recordset error \'800a0bcd\'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Hvordan får jeg den til at checke om brugerens ID findes i \"dokumenter\" tabellen (i kolonnen \"bruger_id\")?

Og hvis den så ikke gør...skal den komme med en simpel tekst besked a la \"du har desværre ingen dokumenter endnu\" - istedet for den grimme error message ;)
Avatar billede senj Nybegynder
19. december 2001 - 11:22 #1
Du kunne evt. starte med at tælle antal poster i basen hvor id = \"brugerid\". Derefter kan du tjekke om antaller = 0 eller antaller er større end nul. I samme omgang kan du uskrive på skærmen hvor mange dokumenter den enkelte har!

Altså:
SELECT COUNT(ID) AS total FROM tabel

Hvis den returnere mere end 0, så skyder du din anden SQL mod basen og finder alle posterne.

/senj
Avatar billede _petrucci Nybegynder
19. december 2001 - 11:46 #2
Har prøvet følgende:

SQLCHECK = \"SELECT COUNT(BRUGER_ID) AS total FROM TIDSREG1 WHERE BRUGER_ID=\" & Session(\"BRUGER_ID\")   
set rscheck = Server.CreateObject(\"ADODB.Recordset\")
rscheck.Open(SQLCHECK), myConn

if total = 0 then

response.write \"ingen poster\"
   
else   

SQL5 = \"SELECT * FROM TIDSREG1 WHERE BRUGER_ID =\"& Session(\"BRUGER_ID\") & \" ORDER BY ID DESC\"

Dette skriver fint tekst-strengen hvis der ingen poster er med brugerens id. Men den skriver det samme hvis der FINDES poster med brugerens id.....strange?
Avatar billede senj Nybegynder
19. december 2001 - 11:51 #3
prøv at vende den om, så hvis total er forskellig fra 0 eller null

IF total != 0 || total != null
  sql
else
  ingen poster

Prøv at skrive total ud på skærmen samtidig og se hvad der ligger i den!
Avatar billede _petrucci Nybegynder
19. december 2001 - 11:59 #4
tror det er der problemet ligger - hvis jeg prøver at udskrive total...skriver den ingenting overhovedet?

Avatar billede senj Nybegynder
19. december 2001 - 12:01 #5
Der ligger noget gymnastik i at få fat i total - jeg vender lige tilbage lidt senere. Der er noget med at du ska have en variabel eks. v_total som tildeles recordset(total);

Prøv dig lidt frem med det!
Avatar billede burningice Nybegynder
19. december 2001 - 12:05 #6
Hvorfor ikke bare tjekke om dit recordset er tomt før du looper det igennem??

Set objRS = Conn.Execute(\"SELECT * FROM [tabel] WHERE (bruger_id = \"& Session(\"bruger_id\") &\")\")

If objRS.EOF or objRS.BOF Then
    \'Det findes ingen poster
Else
    Do Until objRS.EOF
        Response.Write objRS(\"[felt]\")
        objRS.MoveNext
    Loop
End If

Set RS = Nothing
Avatar billede _petrucci Nybegynder
19. december 2001 - 12:44 #7
Fik faktisk begge ting til at virke nu - bruger dog nok sidstnævnte løsning da det virker lidt nemmere. Takker til begge :)
Avatar billede senj Nybegynder
19. december 2001 - 12:47 #8
Takker for point!

Kan godt se at fessors løsning giver mere mening og knap så meget spaghettikode :)
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