webForumDet fria alternativet

Bygga eget recordset och lägga in information i det.

ASP

20 svar · 447 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Kan man bygga sig ett eget recordsett och lägga in information i det?

Har nämligen byggt en liten sökpryl som hämtar information från filer. Informationen skulle jag sedan vilja kunna sortera och kunna dela upp på flera sidor med hjälp av paging.

Information som jag ska lägga in i recordsett är:
titel
sokvag
beskrivning
filnamn
traffar

Går detta? Hur gör man i så fall? Kanske finns nån artikel på nätet?

Medlem sedan nov. 20017 144 inlägg
#2

Menar du hårdkåda in poster eller?

Medlem sedan mars 20007 896 inlägg
#3

Visst går det.
Enkelt beskrivet:

set adoRS = Server.CreateObject( "ADODB.Recordset" )
adoRS.CursorLocation = adUseClient
adoRS.Append "titel", adVarChar, 75
adoRS.Append "beskrivning", adVarChar, 200
adoRS.Append "traffar", adInteger

adoRS.AddNew
adoRS( "titel" ) = "Min titel!"
adoRS( "beskrivning" ) = "En beskrivning för ingenting"
adoRS( "traffar" ) = 7
adoRS.Update

adoRS.Sort = "titel DESC"

Do Until adoRS.EOF
     Response.Write adoRS( "titel" )
     ...
     adoRS.MoveNext
Loop

set adoRS = Nothing

Typ.

Sen kan du använda filter, plus en massa smaskigt också.

Notera att det kan vara bra att ha adovbs-filen för att kunna använda konstanterna, och slippa alla siffror. :)

Sök på MSDN för mer information, jag tror även att Vide har skrivit något om detta på webeye.nu också.

Medlem sedan jan. 20013 406 inlägg
#4

Så här ser min kod ut just nu. Den skriver ut all data på skärmen men istället skulle jag vilja placera det i ett recordset.

For each objFile in colFiles
  If raknare <=50 Then
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objTextStream = objFSO.OpenTextFile(application("driver")&application("rootFolder")&"\pages\"&objFile.name, 1)
      strSida = objTextStream.ReadAll
    objTextStream.Close
    Set objTextStream = Nothing
    Set objFSO = Nothing
 
    strSida = RemoveASP(strSida)
    titel   = hamtaTitel(strSida, objFile.name)
	strSida = RemoveStyle(strSida)
    strSida = RemoveJava(strSida)
    strSida = RemoveHTML(strSida)
  
    sokResultat = sok(strSida, sokfraga)
  
    If sokResultat <> "" Then
      Response.write titel&"<br><br>"&sokResultat&"<hr>"
      traffar = traffar + 1
    End If
  End If
  raknare = raknare + 1
Next

Alla variabler är inte med i den här koden som ska in i rs:et

Medlem sedan jan. 20013 406 inlägg
#5

Okej tack! Jag ska titta mer på detta imorgon kväll. Återkommer om det blir några problem.

Medlem sedan mars 20015 287 inlägg
#6

Det där har vi gjort tidigare...
Sökte lite o hittade tex denna: http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=43378&highlight=recordset
Mao finns det kod o hjälp hos Vide Webeye :)

Medlem sedan jan. 20013 406 inlägg
#7

Får:

Feltyp:
ADODB.Fields (0x800A0BB9)
Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.

'Skapa recordsettet som sokresultatet ska läggas in i
set adoRS = Server.CreateObject( "ADODB.Recordset" )
adoRS.CursorLocation = 3
[b]adoRS.Fields.Append "Id", adInteger[/b]
adoRS.Fields.Append "titel", adVarChar, 100
adoRS.Fields.Append "beskrivning", adVarChar, 350
adoRS.Fields.Append "traffar", adInteger
adoRS.Fields.Append "sokvag", adVarChar, 350
adoRS.Fields.Append "filnamn", adVarChar, 100
adoRS.Open
Medlem sedan mars 20007 896 inlägg
#8
adoRS.Append "Id", adInteger

Ska det vara. Alltså inget Fields. :)

Medlem sedan jan. 20013 406 inlägg
#9

Objektet stöder inte egenskapen eller metoden.: 'adoRS.Append'

'Skapa recordsettet som sokresultatet ska läggas in i
set adoRS = Server.CreateObject( "ADODB.Recordset" )
adoRS.CursorLocation = 3
[b]adoRS.Append "Id", adInteger[/b]
adoRS.Append "titel", adVarChar, 100
adoRS.Append "beskrivning", adVarChar, 350
adoRS.Append "traffar", adInteger
adoRS.Append "sokvag", adVarChar, 350
adoRS.Append "filnamn", adVarChar, 100
adoRS.Open
Medlem sedan juni 20022 599 inlägg
#10
adoRS.Fields.Append "Id", adInteger

.. ska det nog vara. <ledande fråga>Var anger du värdena på "adInteger" osv ..?</ledande fråga>

Medlem sedan mars 20007 896 inlägg
#11

Nu måste jag tänka... Fields ska ju kanske visst vara med, eftersom att felmeddelandet säger att det är parameterfel.

Ta en titt på Vides http://www.webeye.nu istället, det var för länge sedan jag gjorde det här för att komma ihåg det på ett vettigt sätt. :)

Medlem sedan jan. 20013 406 inlägg
#12

Givetvis så tänkte jag ju inte på att inkludera adovbs filen

Medlem sedan jan. 20013 406 inlägg
#13

Verkar fungera klockrent nu. Antagligen kommer jag tillbaks med lite frågor angående lite avancerad sortering.

Medlem sedan jan. 20013 406 inlägg
#14

Kan man få paging och fungera med det här recorsetet?

Medlem sedan juni 200032 967 inlägg
#15

Inte utan att mellanlagra det någonstans är jag rädd.

Medlem sedan jan. 20013 406 inlägg
#16

Kan man mellanlagra informationen på nått bra sätt som är resurssnålt och inte använder sig av en databas?

Medlem sedan dec. 19998 577 inlägg
#17

Sålänge posterna läggs till på samma sätt varje gång så är det inga problem att använda paging utan att mellanlagra.

Men, genom att t.ex använda en session kan du mellanlagra recordsettet.

Men kom ihåg att bara lagra i sessionen om fördelarna med detta överväger prestandan det tar att skapa recordsettet varje gång. ;)

Medlem sedan jan. 20013 406 inlägg
#18

Något exempel?

Har försökt men inte fått till det

Medlem sedan dec. 19998 577 inlägg
#19

Visa koden för hur du har försökt så kan vi utgå ifrån den.

Medlem sedan jan. 20013 406 inlägg
#20

Det är lite mycket kod:
Nu tog jag heller inte med funktionerna men det har inte så stor betydelse tror jag.

IF Not len(sSearchString) < 3 Then
'Skapa objektet för att kunna läsa och bläddra igenom filer
set objFS = server.createObject("Scripting.FileSystemObject")
set objFolderRoot = objFS.getFolder(application("driver")&application("rootFolder")&"\pages") 
set colFiles = objFolderRoot.Files

'Skapa recordsettet som sokresultatet ska läggas in i
set adoRS = Server.CreateObject( "ADODB.Recordset" )
adoRS.CursorLocation = 3
adoRS.Fields.Append "Id", adInteger
adoRS.Fields.Append "titel", adVarChar, 100
adoRS.Fields.Append "beskrivning", adVarChar, 350
adoRS.Fields.Append "antalOrd", adInteger
adoRS.Fields.Append "sokvag", adVarChar, 350
adoRS.Fields.Append "filnamn", adVarChar, 100
adoRS.Open

traffar = 0
raknare = 0

For each objFile in colFiles
 raknare = raknare + 1
 If pg = 1 Or raknare > start Then
  If raknare <=50 Then
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objTextStream = objFSO.OpenTextFile(application("driver")&application("rootFolder")&"\pages\"&objFile.name, 1)
      strSida = objTextStream.ReadAll
    objTextStream.Close
    Set objTextStream = Nothing
    Set objFSO = Nothing
 
    strSida = RemoveASP(strSida)
    titel   = hamtaTitel(strSida, objFile.name)
	strSida = RemoveStyle(strSida)
    strSida = RemoveJava(strSida)
    strSida = RemoveHTML(strSida)
    call sok(strSida, sSearchString, sokResultat, antalOrd)
	   
  
    If sokResultat <> "" Then
	  traffar = traffar + 1
	  'Lägg in resultatet i recordsetet
	  adoRS.AddNew
        adoRS( "id" ) = traffar
		adoRS( "titel" ) = titel
        adoRS( "beskrivning" ) = sokResultat
        adoRS( "antalOrd" ) = antalOrd
		adoRS( "sokvag") = application("httpadress")&"pages/"&objFile.name
		adoRS( "filnamn" ) = objFile.name
	  adoRS.Update
      
    End If
  End If
 End if
Next
						
Response.write "<span class=""mallFet"">Sökresultat</span><hr size=1 noshade>"

If traffar = 0 Then
  Response.Write "<span class=""vanligtext"">Din sökning - </span><span class=""mallFet"">" & sSearchString & "</span><span class=""vanligtext""> - matchade inte något dokument.</span><br><br>" &_
    "<span class=""mallFet"">Tips:</span><br>" &_
	"<span class=""vanligtext"">- Kontrollera att alla ord är rättstavade.<br>" &_
	"- Försök med andra sökord.<br>" &_
	"- Försök med mer allmänna sökord.<br>" &_
	"- Försök med färre sökord."
Else
  Response.write "<span class=""vanligtext"">Du sökte efter:</span><span class=""vanligtextFarg""> "& sSearchString&"</span>" 
  If traffar < 50 Then
    Response.write "<br><span class=""vanligtext"">Din sökning genererade: "& traffar  &" träffar.</span>"
  Else
    Response.write "<br><span class=""vanligtext"">Eftersom din sökning genrerade mer än 50 träffar så har vi begränsat din sökning till 50 träffar.</span>"
  End if
 
End If
response.write "<br>"

adoRS.Sort = "titel DESC"

'Vilka träffar som visas
Dim startTraff, slutTraff
startTraff = 1
Sluttraff = sidStorlek
If request("pg") = "" Then
  pg = 1
Else
  pg = cINT(request("pg"))
End If

If pg <> 1 Then
  slutTraff = sluttraff * pg
  startTraff = slutTraff - sidStorlek +1
End If
If pg = (FIX((adoRS.recordcount / sidStorlek))+1) OR adoRS.recordcount  < sidStorlek Then
  slutTraff = adoRS.recordcount 
End If
						
Response.write "<br><br>" &_ 
  "<table width=""100%"" cellspacing=""0"" cellpadding=""0"">" &_ 
	 "<tr>" &_ 
		"<td bgcolor=""#E8E8E8"" align=""right"" class=""vanligtext"">Visar träffar: "&startTraff&" - "&slutTraff&"</td>" &_ 
	  "</tr>" &_
  "</table><br>" &vbcrlf &_ 

						"<table width=""100%"" cellspacing=""0"" cellpadding=""0"">" 
						 While Not oRS.EOF   AND rowCount < sidStorlek
							rowCount = rowCount + 1

							
						   response.write "<tr>" &_ 
						   "<td valign=""top"" width=""25"" class=""vanligtext"">" 
						   typ = lcase(right(adoRS("filnamn"),3))
									select case typ
										case "pdf"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_pdf.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "ppt","pps"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_powerpoint.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "psd","eps"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_psd.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "doc"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_word.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "xls"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_excel.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "fla","swf"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_flash.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "wav","wma","mp3","mp2","avi","aIf","mov","mp1","mpa","peg","mpg",".ra"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_ljud.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "zip"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_zip.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "exe","bat"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_exe.gIf' width='16' height='16' alt='' border='0' align='left'>")	
										case "css"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_css.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "gIf","png","bmp"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_gIf.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "jpg"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_jpg.gIf' width='16' height='16' alt='' border='0' align='left'>")				
										case "mdb"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_access.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "htm","tml", "asp","asa","xml","hta","htc","stm",".js","xsd","xsl","slt","spx","jsp","jst","scx","cfm","fml","php","hp3","hp4"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_html.gIf' width='16' height='16' alt='' border='0' align='left'>")
										case "txt","rtf"
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_text.gIf' width='16' height='16' alt='' border='0' align='left'>")			 
										case Else
											response.write("<img src='"&application("httpAdress")&"systembilder/filhanterare/typ_unknown.gIf' width='16' height='16' alt='' border='0' align='left'>")			 
									end select
						  response.write "</td><td valign=""top"">"
					

						  response.write "<a  class=""soklank"" href="""& adoRS("sokvag")  &""">"&adoRS("titel") &"</a><br>"
						
						  Response.write  "<span class=""vanligtext"">"& adoRS("beskrivning") &"</span><br>"	  
						  response.write "<span class=""sokvag"">"& adoRS("sokvag") &"</span><br><br>"
						  response.write "</td><tr>"
						  
						  adoRS.MoveNext
						  Wend
						  response.write "</table>"
						  
						  
						If sidStorlek > 1 Then 
						If err.number = 0 Then
						Response.write "<br><br>" &_ 
						"<table width=""100%"" cellspacing=""0"" cellpadding=""0"">" &_ 
						  "<tr>" &_ 
							"<td bgcolor=""#E8E8E8"" align=""left""><span class=""vanligtext"">Visa&nbsp;sida: </span>"
							 FOR i = 1 to adoRS.PageCount
							   If i <> cINT( pg ) Then
								 response.write "<a  href=""http://"&TRIM(request.servervariables("HTTP_HOST") & request.servervariables("SCRIPT_NAME"))&"?sokord="&sSearchString&"&pg="&i&"&slut="&sluttraff&"&start="&starttraff&"&total="&adoRS.recordcount&""">"&i&"</a>&nbsp;"
							   Else
								 response.write "<span class=""vanligtext"">"&i&"</span>&nbsp;"
							   End If 
							 NEXT
							Response.write "</td><td bgcolor=""#E8E8E8"" align=""right"" class=""vanligtext"">"
							If pg <> 1 Then
							  response.write "<a href=""http://"&TRIM(request.servervariables("HTTP_HOST") & request.servervariables("SCRIPT_NAME"))&"?sokord="&sSearchString&"&pg="&(pg-1)&"&slut="&sluttraff&"&start="&starttraff&"&total="&adoRS.recordcount&""">Föregående sida</a>&nbsp;I&nbsp;"
							Else
							  response.write "<span class=""vanligtextGra"">Föregående sida</span>&nbsp;|&nbsp;"
							End If
							If pg <> FIX((adoRS.recordcount / sidStorlek))+1 Then
							  response.write "<a href=""http://"&TRIM(request.servervariables("HTTP_HOST") & request.servervariables("SCRIPT_NAME"))&"?sokord="&sSearchString&"&pg="&(pg+1)&"&slut="&sluttraff&"&start="&starttraff&"&total="&adoRS.recordcount&""">Nästa sida</a></td>" 
							Else
							  response.write "<span class=""vanligtextGra"">Nästa sida</span>"
							End If  
						  response.write "</tr>" &_
						"</table>"
					End If
				End If

adoRS.close
set adoRS = Nothing

End if
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)