Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sökning med Plus och fnuttar??

Postades av 2004-06-13 02:16:36 - Jimmy Staff, i forum sql-server/msde, Tråden har 17 Kommentarer och lästs av 991 personer

Hej alla glada...

Skulle bli jätte trevligt om någon vänlig kille/tjej hjälpte mig med detta...

Jag har en kund som ska visa en produkt på Tisdag i London och vi måste fixa till sökningen i databasen..

En produktkatalog finns och den är väldigt omfattande med massor av fält...

Jaja.. sökningen fungerar nu i alla fält (sql koden blev lång)...

Kunden vill nu har + och "" funktionen i sökningen... Går det att göra?? Jag har sökt igenom forumet men inte hittat något...

Det är ASP och MS-SQL 2000

Hjälp!!!

strQuery = "SELECT * FROM tblData LEFT JOIN tblProdukter ON(tblData.prodID = tblProdukter.prodID) WHERE Produkt LIKE '" & strSearch & "' OR Bredd LIKE '" & strSearch & "' OR Langd LIKE '" & strSearch & "' OR ø LIKE '" & strSearch & "' OR Dø LIKE '" & strSearch & "' OR Halø LIKE '" & strSearch & "' OR hxb LIKE '" & strSearch & "' OR hxbxdj LIKE '" & strSearch & "' OR L1 LIKE '" & strSearch & "' OR Ltum LIKE '" & strSearch & "' OR Lmm LIKE '" & strSearch & "' OR Kontaktdon LIKE '" & strSearch & "' OR Typ LIKE '" & strSearch & "' OR Storlek LIKE '" & strSearch & "' OR EffektW LIKE '" & strSearch & "' OR Volt LIKE '" & strSearch & "' OR YteffektW_cm2 LIKE '" & strSearch & "' OR Temperaturområde LIKE '" & strSearch & "' OR Material LIKE '" & strSearch & " OR AreaCU LIKE '" & strSearch & "' OR AreaT_C LIKE '" & strSearch & "' OR Artikelnr LIKE '" & strSearch & "' OR AnslGanga LIKE '" & strSearch & "' OR Ganga LIKE '" & strSearch & "' OR Benamning LIKE '" & strSearch & "' OR Beteckning LIKE '" & strSearch & "' OR KL LIKE '" & strSearch & "' OR Kabeltyp LIKE '" & strSearch & "' OR Anslutning LIKE '" & strSearch & "' OR Ledararea LIKE '" & strSearch & "' OR Norm LIKE '" & strSearch & "' OR Reglerområde LIKE '" & strSearch & "' OR Spanning LIKE '" & strSearch & "' OR Larm LIKE '" & strSearch & "' OR Anmarkning LIKE '" & strSearch & "' ORDER BY DataID ASC"


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 08:12:52 - Mikael Wedham

Kunden vill nu har + och "" funktionen i sökningen...

Vad menar du???? Hur har kunden det nu, och vad skall skillnaden bli?

/micke


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 11:47:00 - Jimmy Staff

Jo man ska kunna söka på Bil & Båt t ex... "Bil + Båt"

Och då ska man få både bil och båt som resultat...


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 11:56:38 - Jenny Månsson

Nej det går inte att få in direkt/rakt av i sql.

Om kunden skriver:
"Bil + Båt"
måste du innan du skriver sql frågan splitta upp strängen
så att du får två separata argument, en med "Bil" och en med "Båt" som du lägger in i en array.
Sedan måste du dynamiskt bygga upp sql frågan utifrån hur många argument du har hittat,/lagt till i din array något i stil med (vet ej syntax i asp men tänket ska vara så här):

sql = sql & "WHERE "
foreach item in arrayargument
sql = sql & "Fordon = " & item & " AND "


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 11:58:27 - Jimmy Staff

Jo förstog att man var tvungen att splitta.. Problemet är ju att det är så många fält som ska sökas igenom... 20-30 st... blir en jäkla lång SQL-sträng...


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 13:13:48 - Jenny Månsson

Men måste du ha med alla Like som finns i din sqlfråga? Söker kunden verkligen allt på en gång?
Hela sqlfrågan ska byggas upp dynamiskt så att du inte tar med en massa villkor i onödan.

Om sökningen tar lång tid så rekommenderar jag dig att göra en stored procedure istället. Där alla villkor skickas in som parametrar.

Oavsett om du bygger din fråga i din kod eller i en sp så bör du göra en massa if villkor och bygga upp din fråga dynamiskt.


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 13:36:25 - Jimmy Staff

Jo det är ju det man tycker att de inte ska behöva söka i alla fält.. men det är så kunden vill ha det...

Då är det bara min kunskap i SQL som sätter stopp :(


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 14:08:22 - Jimmy Staff

SP vet jag hur man gör.. men hur gör man för att skicka in parametrar?? Den vore ju grymmast om jag fick till...

Tack för hjälpen!


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 18:52:09 - Jenny Månsson

I SP skriver du parametrarna mellan "Create Procedure spnamn" och "as" exempelvis:
Create Procedure spnamn
@Parameter1 int = 0,
@Parameter2 nvarchar(10) = "",
@Parameter3 bit = 0
AS

På parametrarna sätter du default värden ifall kunden inte fyller i vissa fält.
Sedan kollar du med en if sats om sql frågan ska byggas ut
if @Parameter1 <> 0
bygg ut frågan

Om du vill ha en array parameter kan du spara den i en nvarchar och sedan använda en splitfunktion
med komma tecknet som separator.

Hur du skickar parametrar från ASP vet jag inte men du hittar säker i hjälpen
för ASP om du söker på stored procedure oach parameter


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 21:13:26 - Jimmy Staff

Har nu löst problemet.. delvis ialla fall..

Enda som strular är hur man ska kunna söka på hela ord istället för hela fältet...

T ex :
Vi söker på : Arla och får följande resultat :

"Arla"
"Arlanda"
"Arla tillverkar mjölk, fast det är ju egentligen kossor som gör det"
osv..

Vi söker med fnuttar : "Arla" och får följande resultat :
"Arla"

Alltså så missar vi den sista eftersom fältet innehåller mer än bara "Arla"....


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 21:42:19 - Andreas Hillqvist

Jag är lite sent ute.

Jag har förslag på hur er datastruktur bör omorganiseras:

Tabell: tblProperties
Fält: PropertyId
Fält: PropertyName

Tabell: tblProducts
Fält: ProductId
Fält: ProductName
osv...

Tabell: tblProductProperties
Fält: ProductPropertyId
Fält: ProductPropertyProperty -> tblProperties.PropertyId
Fält: ProductPropertyProduct -> tblProducts.ProductId
Fält: ProductPropertyValue
Fält: ProductPropertyUnit

Exempel data:


tblProperties
--------------------------------------------
PropertyId, PropertyName
--------------------------------------------
1, "Bredd"
2, "Langd"
3, "Area"
4, "Storlek"
5, "Kontaktdon"
6, "Material"
7, "Färg"

tblProducts
--------------------------------------------
ProductId, ProductName
--------------------------------------------
1, "EKK 1,5mm² blå"
2, "EKK 1,5mm² brun"
3, "EKK 1,5mm² gul-grön"
4, "EKK 2,5mm² blå"
5, "EKK 2,5mm² brun"
6, "EKK 2,5mm² gul-grön"

tblProductProperties
----------------------------------------------------------------------------------------
ProductPropertyId, ProductPropertyProperty, ProductPropertyProduct, ProductPropertyValue, ProductPropertyUnit
----------------------------------------------------------------------------------------
1, 2, 1, "100", "m"
2, 3, 1, "1.5", "mm²"
3, 6, 1, "CU", Null
4, 7, 1, "Blå", Null
5, 2, 2, "100", "m"
6, 3, 2, "1.5", "mm²"
7, 6, 2, "CU", Null
8, 7, 2, "Brun", Null
9, 2, 3, "100", "m"
10, 3, 3, "1.5", "mm²"
11, 6, 3, "CU", Null
12, 7, 3, "gul-grön", Null
13, 2, 1, "100", "m"
14, 3, 1, "2.5", "mm²"
15, 6, 1, "CU", Null
16, 7, 1, "Blå", Null
17, 2, 2, "100", "m"
18, 3, 2, "2.5", "mm²"
19, 6, 2, "CU", Null
20, 7, 2, "Brun", Null
21, 2, 3, "100", "m"
22, 3, 3, "2.5", "mm²"
23, 6, 3, "CU", Null
24, 7, 3, "gul-grön", Null

Denna datastruktur ger er möjligheten att att lägga till och ta bort egenskaper utan att förändara datastrukturen.


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-13 21:45:58 - Jimmy Staff

Jo självklart skulle jag ha normaliserat den om det var jag som gjorde den :)

Men nu är det redan för sent och jag skriver inte om ca 10 000 poster :) Det blir kundens huvudvärk...

Tack för infon dock!!


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-14 09:27:05 - Mikael Wedham

Vill du söka på hela ord, så kan du väl lägga in ett mellanslag efter?

LIKE '%Arla %'

istället för utan mellanslag. Då kan du behöva experimentera med ANSI PADDING för att få det att funka.

/micke


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-14 09:28:24 - Jimmy Staff

Var kan jag finna mer info om ANSI PADDING ??


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-14 09:30:14 - Mikael Wedham

Från BOL:

ANSI_PADDING

When set to ON, trailing blanks in character values inserted into varchar columns and trailing zeros in binary values inserted into varbinary columns are not trimmed. Values are not padded to the length of the column. When set to OFF, the trailing blanks (for varchar) and zeros (for varbinary) are trimmed. This setting affects only the definition of new columns.

Char(n) and binary(n) columns that allow nulls are padded to the length of the column when SET ANSI_PADDING is set to ON, but trailing blanks and zeros are trimmed when SET ANSI_PADDING is OFF. Char(n) and binary(n) columns that do not allow nulls are always padded to the length of the column.



Important It is recommended that ANSI_PADDING always be set to ON. SET ANSI_PADDING must be ON when creating or manipulating indexes on computed columns or indexed views.


The status of this option can be determined by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-15 15:14:29 - Andreas Hillqvist

Posterna behöver du inte bry dig om. Det låter du ett script eller fråga sköta. Det är grännsnittet för att visa datastrukturen som du är tvungen att förändra.


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-16 08:08:02 - Kalle Dahlberg

Andreas har helt rätt. Om du inte skriver om strukturen nu så kommer du ständigt att ha liknande problem som detta med sökning. Om nu inte detta är den sista utveckling som sker på systemet?


Svara

Sv: Sökning med Plus och fnuttar??

Postades av 2004-06-17 20:14:20 - Per Karlsson

Om du vill söka på hela ordet är det bättre att använda = än att använda LIKE. Dessa kan ju också användas omväxlande så att man bara då t.ex. wildcards ska användas använder LIKE. Söker man på 'Arla' med LIKE så får man inte tillbaka Arlanda om man inte har lagt till % (alltså LIKE 'Arla%').


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 887
27 965
271 776
561
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies