Avatar billede ejoergensen Nybegynder
30. marts 2005 - 11:26 Der er 7 kommentarer og
1 løsning

Accept af nulværdi i søgestring

hvordan er det lige vi kan få et SQL -kald til at acceptere nulværdi i søgekriterie; altså der er en række variable parametre, men ikke alle er udfyldt, så der skal kun søges på de der er.  Eks.:
" WHERE (" & Tabel & " like '" & GNavn & "') or " &_
"" & Tabel1 & "= " & GNav & "or" &_
"" & Tabel2 & "like '" & GN & "')"

og der er kun disse parametre angivet:
Tabel = Gruppe
GNavn = MultiGroove
Tabel2 = %
Tabel1 = Vkt_nr
Gnav = 99

Jeg vil gerne have et hurtigt svar, hvis det er muligt.
Avatar billede Slettet bruger
01. april 2005 - 23:03 #1
Før du genererer sql linien kan du validere de forskellige varibable. F.eks. på følgende måde
strSQL = "Select * FROM .....blahblah WHERE ID > 0 "
if Gruppe <> "" then
strSQL = strSQL&" AND Gruppe ="&Gruppe
end if

Hvis du ikke forstår hvad jeg mener kan du lige sige til..så skal jeg nok lave noget ordentligt kode.
Avatar billede ejoergensen Nybegynder
11. april 2005 - 20:45 #2
nå, der var ikke flere ideer. Tror nok du er inde på noget af det rigtige, bortset fra kontrollen er nødt til at ske FØR sql sentensen afvikles. Jeg har fundet ud af at i SQL 'en skal der kun være én Wherelinie, alt det øvrige skal ligge i en sætningsopbygning før afviklingen af SQL. Kan du ud fra det (where ("& Værdi1 & "like '" & Værdi & "')" Vise en kontrol som kan sortere fra óg opbygge værdierne til Værdi1 og Værdi med en og to af parametrene angivet?
Avatar billede Slettet bruger
11. april 2005 - 23:21 #3
Jeg er ikke helt sikker på hvad du mener, men ja der skal kun være een WHERE linie, for resten bliver det AND. Det er derfor jeg starter sætningen med WHERE ID > 0 hvor ID er din primære nøgle..på den måde kan du nøjes med at bruge AND i resten af sætningen. WHERE ID > 0 returnerer jo alle rækker og udelukker ikke noget.
Kan du lige gentage dit sidste spørgsmål..jeg forstår ikke helt.
Avatar billede ejoergensen Nybegynder
18. april 2005 - 13:25 #4
sorry, skal prøve at forklare mig: i min where sætning vil jeg ikke have mere end en betingelse på, ikke nogen 'or' eller 'and', da jeg derved får en sql-sætning som kan anvendes til alle forespørgselstyper, både med numeriske og alfa værdier, hver for sig og blandet. Derved kan jeg nøjes med en sql-sætning som den jeg angav i sprgsmålet.
Nu har jeg forstået hvor du vil hen: du henter alle data og sorterer derefter i visningsresultat, hvor jeg spekulerede i at sende en specifik forespørgsel som indeholder anvisningen på hvad der skal søges efter. Jeg tror det giver bedre performance, det er ret belastende for server at ekserkvere den anden måde, synes vi at have set!  Jeg gjorde selv på den anden måde først, men var ikke tilfreds med flexibiteten og performance.
Avatar billede Slettet bruger
20. april 2005 - 16:34 #5
med mit sqlsætning henter den jo ikke alle data og sorterer derefter. Serveren bruger lidt krudt på at danne sql sætning udfra nogle simple conditionals. Uden at vide det vil jeg tro at det kræver minimalt regnekraft. Jeg sidder ikke lige ved min egen computer, så jeg kan ikke teste men kan du ikke bruge LIKE %søgeparametre%. Hvis den er ingenting laver det ingen ulykker i kaldet.
Avatar billede ejoergensen Nybegynder
22. april 2005 - 11:17 #6
kan ikke lige teste det nu, men mener at jeg tidligere havde dårlige resultater med LIKE ved numeriske værdier; der vil den have =, da det er et eksakt udtryk. SQ
L-sætningen skal helst overfladisk set være den samme, men med forskellige værdier efter søgekriterier, Jeg havde tidligere, som du ser øverst, tre conditions inde i SQL; men der ville den ikke acceptere hvis en værdi var nul/null i en af conditions selvom jeg brugte OR
Avatar billede ejoergensen Nybegynder
14. juni 2005 - 16:56 #7
hov, havde glemt det her ? Hvis joker smider et svar, er der lidt point for at gide prøve at hjælpe.
Avatar billede ejoergensen Nybegynder
28. april 2006 - 20:26 #8
Joker har ikke været her, beklager. lukket
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

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