Avatar billede Jman Praktikant
12. juli 2002 - 12:02 Der er 16 kommentarer og
2 løsninger

Søgning på alt, men hvor et felt ikke må være tomt

HeY!
Un small problem, yes....

Jeg vil søge i en DB på alt, men hvor kolonnen "Losning" ikke må være tom... Flg. er min kode:

sql = "Select Betegnelse, Kategori, Slutdato, Problem, Losning from Opgave Where Status='Færdig' AND Losning <> 0 or null"

Men det brokker den sig sgu over:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.

KnowledgeBase.asp, line 124
Avatar billede webben Nybegynder
12. juli 2002 - 12:11 #1
losning not = 0, så skulle det du
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 12:31 #2
Hvis du vil tjekke for om en losning er null kan du bruge syntaxen:
Status='Færdig' AND ISNull(Losning, 0) <> 0

SÅ konverterer den losning til 0  hvis den er NULL, ellers lukker den bare losning igennem som det den oprindelig var.
(MSSql syntax..)
Avatar billede Jman Praktikant
12. juli 2002 - 12:49 #3
det virkede ikke-
det den skal er at kigge i DB efter alle problemer i databasen, men den må kun poste de emner, hvor der også er indskrevet en løsning ("losning")
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 13:21 #4
Hvilke datatyper er hhv. losning og status?
Avatar billede Jman Praktikant
12. juli 2002 - 13:43 #5
tekst
Avatar billede Jman Praktikant
12. juli 2002 - 13:44 #6
hele koden til søgningen ser således ud:

<%
Kategori = CleanString(Request("Kategori"))
Streng = CleanString(Request("Streng"))

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")

If Kategori = "Alle" Then
  sql = "Select Betegnelse, Kategori, Slutdato, Problem, Losning from Opgave Where Status='Færdig' "
Else
  sql = "Select Betegnelse, Kategori, Slutdato, Problem, Losning from Opgave Where Status='Færdig' AND Kategori = '" & Kategori & "' "
End If
 
pos = 1
blank = InStr(Streng, " ")
Do While blank > 0
  txt = Mid(Streng, pos, blank - pos)
  sql = sql & "AND (Betegnelse like " & "'%" & txt & "%' OR Problem like " & "'%" & txt & "*' OR Losning like " & "'%" & txt & "%') "
  pos = blank + 1
  blank = InStr(pos, Streng, " ")
Loop
txt = Mid(Streng, pos)
sql = sql & "AND (Betegnelse like " & "'%" & txt & "%' OR Problem like " & "'%" & txt & "%' OR Losning like " & "'%" & txt & "%') "
 
Set rs = Conn.Execute(sql)
%>
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 13:53 #7
tekst.. hmmm indsætter du 0 nogen steder i losning... Hvis ikke, skal du vel tjekke på om lostinen er tom eller om den er null..->
Status='Færdig' AND not isNull(Losning, '') = ''
Avatar billede Jman Praktikant
12. juli 2002 - 14:02 #8
det giver samme fejl :(
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 14:06 #9
hmmmm.... Siger fejlen ikke at du skal bruge LIKE istedet for = når der er tale om TEXT-felter (TEXT.... det er edermanme nogle store felter til at holde f.eks. staus :-))
Avatar billede Jman Praktikant
12. juli 2002 - 14:34 #10
jeg får den fejl, der står i toppen -
Hvad mener du med at det er store felter til "staus"

?
Avatar billede ztyxx Nybegynder
12. juli 2002 - 14:40 #11
når der er en kolonne der ikke må være tom hedder det
WHERE felt NOT NULL

NULL kan ikke lig med eller forskellig fra noget, det kan KUN være NOT NULL

den eneste undtagelse er når man bruger UPDATE SET felt = 0
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 14:51 #12
text-felter der det manlaver nårINGEN andre felter er store nok!
Normalt bruger man et eller andet nummerisk (f.eks. integer) til status.
well, den siger at du skal skrive:
Status LIKE 'Færdig' AND isNull(Losning, '') NOT LIKE ''
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 14:53 #13
ztyxx -> Derfor har ham funktionen isNull, som defaulter til en værdi hvis værdien af feltet er NULL.
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 14:53 #14
ham ?!?! man :-)
Avatar billede ztyxx Nybegynder
12. juli 2002 - 15:26 #15
skifter han ham!??:-)
Avatar billede _just4fun_ Nybegynder
12. juli 2002 - 15:29 #16
nej.. man skifter ham!
Avatar billede ztyxx Nybegynder
12. juli 2002 - 15:43 #17
øh, ham er på et krybdyr, man er de hår en hest har på halsen, og de kan ikke skifte ham*LOL*
Avatar billede Jman Praktikant
18. juli 2002 - 00:32 #18
Jeg fik det sq aldrig til at virker - takker for tid ...og en smule spam *GG*
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