lenizMedlem sedan aug. 2001676 inlägg
Hej!
Jag har en ganska lång sql sats med flera fält där jag tagit inner join. Koden är rätt förutom att när jag lägger till en kontroll att jag vill att ett fält ska innehålla något så fungerar det inte.
Om jag skriver:
where t.faltnamn <> ''
så visas INGET
(det är alltså två fnuttar ' bredvid varandra och inte ett " tecken)
Om jag skriver:
where t.faltnamn is not null
så visas ALLT, d.v.s. även de vars fält är tomt.
Finns det något tredje sätt att skriva detta på som kan fungera?
Har mysql databas.
Mvh Lena :)
aspMedlem sedan aug. 2002747 inlägg
Borde fungera.
SELECT * FROM [tabell] WHERE falt <> ''
LarsGMedlem sedan dec. 200012 465 inlägg
Engine^Medlem sedan dec. 20002 861 inlägg
Jag tycker förvisso asps förslag ska fungera, men här är en variant till
SELECT *
FROM [i]tabell[/i]
WHERE CHAR_LENGTH([i]fält[/i]) > 0
lenizMedlem sedan aug. 2001676 inlägg
Tack för era svar. Har nu upptäckt en sak som istället får mig att tro att det är rs.eof som inte fungerar riktigt som det ska.
Det är nämligen så här. Att om det finns två eller fler poster som motsvarar sökvillkoren så skrivs de ut när jag har where t.faltnamn <> ''. Om jag däremot bara har 1 post som motsvarar sökvillkoren så skrivs det inte ut, utan då skrivs istället meddelandet nedan om "Leider kein anzeige..." ut.
Det är här (gissar jag) som det hela blir fel:
if rs.eof then
Response.Write("<table width='100%'><tr><td width='100%'><center><font face='tahoma,arial' color='990000' size='2'><b>Leider kein anzeige angepasst die suche.</b></font></td></tr></table>")
else
här skrivs det hela ut
Himla konstigt detta tycker jag.
Sökte här på webforum och hittade ett inlägg som gjorde att jag testade detta istället för rs.eof
if isNull(rs(0)) then
men då fick jag följande felmeddelande istället:
Data provider or other service returned an E_FAIL status.
Hade problem att få like i satsen att fungera också med min nya mysql databas. Men då tog jag bort lite mellanslag kring % tecknen och då fungerade det fint.
Mvh Lena
lenizMedlem sedan aug. 2001676 inlägg
Ingen som vet eller orkar svara?
Jag undrar alltså varför det inte visas någon träff om det bara finns 1 träff, medan träffar visas om det finns 2 eller fler när jag har if rs.eof.
Mvh Lena
lenizMedlem sedan aug. 2001676 inlägg
Kan det ha något med min sidindelningsfunktion att göra, att t.ex. det här kan störa på något vis?
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.CursorType = 3
rs.ActiveConnection = stugdatabas
rs.Open sql
if rs.EOF then....
Erik JuhlinMedlem sedan maj 20007 625 inlägg
Engine^ skrev:
Jag tycker förvisso asps förslag ska fungera, men här är en variant till
SELECT *
FROM [i]tabell[/i]
WHERE CHAR_LENGTH([i]fält[/i]) > 0
Fungerar inte för alla databaser.
Engine^Medlem sedan dec. 20002 861 inlägg
Erik Juhlin skrev:
Engine^ skrev:
Jag tycker förvisso asps förslag ska fungera, men här är en variant till
SELECT *
FROM [i]tabell[/i]
WHERE CHAR_LENGTH([i]fält[/i]) > 0
Fungerar inte för alla databaser.
Nix, men det var ju MySQL det var frågan om.
LarsGMedlem sedan dec. 200012 465 inlägg
Det borde fungera i alla DBMS eftersom char_length är en standardfunktion.
Erik JuhlinMedlem sedan maj 20007 625 inlägg
Fungerar i alla fall inte i SQL Server 7 och SQL Server 2000.
Engine^ skrev:
Nix, men det var ju MySQL det var frågan om.
Sorry, missade det... :)