webForumDet fria alternativet

Missing operator

34 svar · 574 visningar · startad av Jesper T · sida 2 av 2

Jesper TMedlem sedan nov. 20017 144 inlägg
#21

Tack, då är vi tillbaka på ruta ett.
Jag väljer nog tre frågor, det låter ju klart smidigast.
Tack än en gång!

Jesper TMedlem sedan nov. 20017 144 inlägg
#22

Försökte mig på en sån där Union:

SQL="select W_notes, W_weight, W_date,null,W_per_id "&_  
" from Weight where W_per_id = " & Id & " AND W_date = #" & d & "#"&_
" UNION ALL"&_
" select  Notes,N_namn_id,N_datum,N_kat,N_Id FROM Notes "&_ 
" WHERE N_namn_id = "& Id &" AND N_datum = #" & d & "#"&_
" UNION ALL "&_ 
" select 'd',null,null,null,Frukt_id "&_
" FROM Calendar WHERE namn_id = " & Id & " AND datum = #" & d & "#"

Då står det

Item cannot be found in the collection corresponding to the requested name or ordinal.

Rad 130 ---> rs("Frukt_id")
Och den har jag ju med i sista selecten

Jesper TMedlem sedan nov. 20017 144 inlägg
#23

Vad kan felmeddelandet betyda?

LarsGMedlem sedan dec. 200012 464 inlägg
#24

Om du använder union så är det bara namnen i den första select-satsen som går att använda när du refererar något i recordsetet.

Jesper TMedlem sedan nov. 20017 144 inlägg
#25

Jasså, då var det ingen glädje med den sorgen då.

LarsGMedlem sedan dec. 200012 464 inlägg
#26

Det var därför jag hade med

select 'Weight'

i mitt union-exempel. Med hjälp av det värdet så kan du se från vilken tabell data kommer.

Jesper TMedlem sedan nov. 20017 144 inlägg
#27

Det går alltså att göra en sådan union jag gav exemplet på om man lägger till tabellnamnet efter "select" eller?

Hur kommer då sql:en att se ut med mitt senaste unionexempel?

(Om det inte går att loopa ut ett recset med kolumner ifrån den tredje selecten, vad är det då för mening med union?)

@ndersMedlem sedan juni 200032 969 inlägg
#28

Jesper T skrev:

(Om det inte går att loopa ut ett recset med kolumner ifrån den tredje selecten, vad är det då för mening med union?)

Jo, det är klart att det går, men fältnamnen följer inte med. En kolumn kan ju inte ha flera namn på samma gång. (Allt blir ju en kolumn, eftersom det är det resulterande recordsetet som håller datat.) Därför, lägg till en kolumn på slutet, som innehåller en sträng med tabellnamnet från vilken datan är hämtad, så får du använda dig av index när du refererar till recordsetet istället.

Response.write Rs(0) & " - " & Rs(1) 'osv

Mvh,

Jesper TMedlem sedan nov. 20017 144 inlägg
#29

lägg till en kolumn på slutet

På vilket sätt gör man det?
Det går ju bara att skriva "Rs(0), Rs(1) ...osv till Rs(5), skriver jag rs(6) så blir det fel.

@ndersMedlem sedan juni 200032 969 inlägg
#30

Titta på LarsGs inlägg. Där har han med en extrakolumn (fast han har lagt den först), där han markerar.

LarsG skrev:

Det var därför jag hade med

select 'Weight'

i mitt union-exempel. Med hjälp av det värdet så kan du se från vilken tabell data kommer.

Om det blir fel när du försöker skriva ut Rs(6), tja, då har du väl bara 6 kolumner i ditt recordset?

mvh,

Jesper TMedlem sedan nov. 20017 144 inlägg
#31

Ja, det har jag också men sätter jag den('weights') först och skriver rs(0) så står där "weights".

@ndersMedlem sedan juni 200032 969 inlägg
#32

Ja, och det är det som är meningen.

if rs(0) = "weights" then
     ' pryttlarna kommer från weights, gör speciella saker
elseif rs(0) = "otherstuff" then
     ' pryttlarna kommer från någon annan stans, gör andra speciella saker
end if
Jesper TMedlem sedan nov. 20017 144 inlägg
#33

ha, ha, du menar så. Skall kika lite på´t

@ndersMedlem sedan juni 200032 969 inlägg
#34

Japp, precis så menar jag, och jag tror att det är precis så LarsG menar också. :)

Mvh,

Jesper TMedlem sedan nov. 20017 144 inlägg
#35

Jag upptäckte att om en post i "notes" existerar på ett visst datum så "skrivs den över" om det ligger en post på samma datum i "weight". Jag vill ju ha med båda, eller rättare sagt alla.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)