Databas: SQL Sever 2000 Varför är det så jobbigt att skapa en bra SQL-sats precis enligt vad användaren vill ha? Det är ju bara att programmera det en gång, det är ju inte så att det är något återkommande arbete eller något. Om du konstrar till SQL-satsen onödigt mycket så är det mindre chans att SQL Server kan återanvända exekveringsplaner, och då riskerar du att få sämre prestanda. Eftersom det är ca 8 olika variabler som användaren kan fylla i och ska jag kolla alla olika kombinationer som användaren kan ha valt så blir det 256 st och det är många ifsatser. En If sats per vilkor räcker: Även om Andreas Hillqvist visade att det inte är så svårt så missade du ändå poängen i mitt inlägg. Vilket är bäst tycker du, att en gång skriva en hel del kod som sedan fungerar bra, eller att skriva lite kod (vilket iofs går snabbare att skriva) som sedan fungerar sämre?SQL problem
Hej!!
Jag har ett problem med en sqlfråga.
Sql frågan byggs dynamiskt beroende på vilken information som användaren vill ha. Problemet är om användaren vill ha alla poster där värdet i en kolumn får vara vad som helst.
tex
Jag har provat med det här och det funkar inte.
Select * from table Where userid = *;
Jag vet att man kan bygga om sqlsatsen och bara skriva
"Select * from table;"
Eftersom det inte bara är userid som används så kan jag inte bygga om den och jag vet inte vilka variabler som användaren vill söka på.
Jag kan lösa det med ifsatser men det är ca 8 variabler som används så det blir inte så praktiskt.
Finns det något sätt att säga att man vill ha alla värden (*) ?? Sv: SQL problem
Sv: SQL problem
Sv: SQL problem
<code>
Dim strSQL
Dim strWhere
If Len(txtFält1) > 0 Then
strWhere = strWhere & " AND Fält1 = '" & Replace(txtFält1, "'", "''") & "'"
End If
If Len(txtFält2) > 0 Then
strWhere = strWhere & " AND Fält2 = '" & Replace(txtFält2, "'", "''") & "'"
End If
If Len(txtFält3) > 0 Then
strWhere = strWhere & " AND Fält3 = '" & Replace(txtFält3, "'", "''") & "'"
End If
'osv...
If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM TableName WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM TableName"
End If
</code>Sv: SQL problem