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


ASP och databas, vad använda

Postades av 2004-03-29 18:15:15 - johan agorelius, i forum databaser, Tråden har 25 Kommentarer och lästs av 1692 personer

Jag skall bygga en site, med målsättning att ha fler än 500 besökare per dag
Vad bör jag använda för teknik?
Jag behärskar ASP coh acess databas, men har hört mycket skit om acess.
Kan jag anävända acess ändå om jag t.ex. läser in all data i sessioner i t.ex. global.asa?
Eller bör jag lära mig något annan databas och ifs vilken, mySQL??
Jag har även ganska ont om tid med projektet, vad är enklast kontra bäst att lära sig om nu inte access duger?

Tacksam för svar?


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-29 18:25:15 - Anna-Karin Söderberg


Access duger visst som databas, man ska inte lyssna på allt skit som folk pratar.

Dina ev 500 besökare är nog knappast inne exakt samtidigt och ställer frågor mot databasen.

//Anna-Karin


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-29 19:41:42 - Benni Svensson

Access är till och med väldigt bra i vissa läggen.
Jag kan berätta om en kamrat som hadde en databas med ca: 400 000 poster och han hadde registrerat över 40 SAMTIDA sökningar, så det behöver inte vara något problem, om du bygger upp det förståndigt.
Använd INTE global.asa och session.
Använd istället include-filer på varje sida med din databas-connection.
Öppna och stäng din databas så fort som möjligt.
Använd dig gärna av GetRows.
Än en gång, glöm inte att vara noga med att stänga dina object.

Lycka till


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-29 20:35:46 - Ola Lindfeldt

Är det mest Read-only funkar det ok med Access på en sajt med hundratals besök/dag. Har du däremot många update/delete så kommer du eventuellt att få problem om du inte väldigt noga lär dig hur man undviker problemen..

Kolla här för mer info:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k/html/adoproperties.asp



Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-29 21:55:38 - johan agorelius

Så jag skall iaf öppna och stänga databasen på varje sida?
varför är det bättre att ha det i include filer?
Och varför är det dåligt att vid start lägga in det i sessions, då behöver man ju bara öppna databasen en gång per användare ? , jag är lite rookie på det här..


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 07:45:58 - Johan Djupmarker

Förutom det som Henkoz skrev så kommer din connection vara öppen för besökaren under dennes hela besök samt (som standard) 20 minuter efter. Detta gör att du kan få väldigt många connections öppna samtidigt.

/Johan


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 08:22:51 - Johan Dahlgren

Access måste nog vara jordens mest underskattade databas!
Så fruktansvärt enkel att använda och funkar till de flesta mindre lösningar.
Och behöver man kliva upp till tex. SQL Server så är det oftast enkelt att göra.
MEN, man bör ha i åtanke att Access aldrig är byggd för att hantera många samtidiga användare så det kan uppstå problem just därför.
Men har men det i åtanke och är medveten om de problem som kan uppstå klarar man sig väldigt länge med Access.

När man kör ADO skall man alltid stänga sitt Connection-objekt så for det bara går.
Detta så något som kallas Connection-pooling skall fungera som det ska.
Det innebär att när du gör en anslutning så "cachar" systemet den anslutingen, eller så att säga lägger den till en anslutnigs-pool.
Öppnar du sedan en ny anslutning med SAMMA anslutnigsinfo. så hämtas anslutningen från poolen och inte behöver skapas på nytt.

Så det bästa/effektivaste förslaget borde vara att använda GetRows som föreslås tidigare och stänga anslutningen direkt efter.

/Johan


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 10:23:34 - johan agorelius

Varför använda include filer?
förbättrar det prestandan?


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 10:26:56 - johan agorelius

hur använder jag getRow?


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 11:53:08 - Johan Dahlgren

med www.google.com hittar du exempel på allt mellan himmel och jord.

Prova tex att söka efter GetRows asp

Där hittar du flera bra länkar direkt.


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 17:17:28 - johan agorelius

Ok jag förstår att jag skall använda getRow
Men varför är det inte bra att läsa in datan i session objekt istället för att öppna databasen på nytt på varje sida?


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 19:26:29 - Thomas Vanhaniemi

Sessionobjekt tar upp minne på servern och med många användare samtidigt blir det mycket minne...
Dessutom, har användaren inte cookies påslagna fungerar inte sessioner...
Sista vet jag inte säkert, men har sett många som påstår det så varför kan det inte vara sant ;)

Mvh,
Thomas


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 21:59:02 - Benni Svensson

Jag har personligen fått väldigt mycket hjälp här på forumet, därför så skall ge igen, och ge dig lite matnytigt.
Först include filen:
<code>
<%

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath("(data/allt.mdb")
'
%>
</code>
Detta innebär att sett ifrån roten på webbplatsen, så finns det en mapp som heter data, och i den ligger en databas som heter allt.mdb.

Överst på asp-sidan:
<code>
<!--#include filedataconn.asp"-->
</code>
...här lägs includefilen in, som i detta fallet ligger i roten.
Sen i asp-sidan...
<code>
Dim con,rst,strSQL,arr

strSQL = "SELECT a_Id,Datum,Titel,Innehall FROM t_Arkiv Order BY Datum"
set rst= con.execute(strSQL)

If Not rst.EOF Then
arr=rst.GetRows()
rst.Close
</code>
Dimma variablerna, fixa till en SQL, och exekevera den. Därefter lägger vi recordsetet i en array (GetRows), samt stänger recordsetet.
<code>
For i = 0 TO Ubound(arr,2)

sID=arr(0,i)
sDatum=arr(1,i)
sTitel=arr(2,i)
sInnehall=arr(3,i)
</code>
..sen gäller det att ta ut variablerna ifrån arrayen.
<code>
Response.Write sID & vbCrlf
Response.Write sDatum & vbCrlf
Response.Write sTitel & vbCrlf
Response.Write sInnehall& vbCrlf
</code>
...sen kan vi skriva ut variablerna
<code>
NEXT
</code>
...och avsluta med next.
Om du är på slutet av sidan, glöm inte att stänga din connection.






Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 22:08:42 - johan agorelius

TACK så jättemycket för det utförliga svaret!
Finns det någon prestandamässig fördel att databasöppningen ligger i en includefil?


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-30 22:10:00 - johan agorelius

Borde jag inte stänga connection redan direkt efter jag kört arr=rst.GetRows() ??


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-31 07:46:40 - Johan Djupmarker

<b>Finns det någon prestandamässig fördel att databasöppningen ligger i en includefil?</b>

Nej, tvärt om, det bästa är givetvis att inte använda includefiler, men det är ganska jobbigt att underhålla som man behöver ändra connectionstring i alla sina filer.


<b>Borde jag inte stänga connection redan direkt efter jag kört arr=rst.GetRows() ??</b>

Jo, du ska sträva efter att ha din connection öppen så kort tid som möjligt.

/Johan


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-31 08:47:14 - Raderat konto

Jag uppmanar att alla som väljer att inkludera en conection inte gör som saw föreslår. Det finns ett mycket bättre sätt.

Det är kapsla öppningen i en Specifik Function:
<code>
<%
'Generella hjälp funktioner
Function OpenConnection(ConnectionString)
Dim con
Set con = Server.CreateObject("ADODB.Connection")
con.Open ConnectionString
Set OpenConnection = con
End Function

Function OpenJETConnection(DataSource)
Set OpenJETConnection = OpenConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataSource)
End Function

'Specifika deklarerade anslutningar
Function OpenMyDatabas()
Set OpenMyDatabas = OpenJETConnection(Server.MapPath("/../Database/MyDatabas.mdb"))
End Function

Function OpenNorthwind()
Set OpenNorthwind = OpenJETConnection(Server.MapPath("/../Database/Northwind.mdb"))
End Function
%>
</code>

Denna implementering har många fördelar. Några av dem är:
* Är inte beroende av deklarerade variabler
* Öppnar bara anslutningar när det anropas

Exempel Sida:
<code>
<%@ Language=VBScript %><%Option Explicit: Response.Buffer = True%><!--include file="MinaAnslutningar.asp" --><%

Dim con
Dim rst
Dim strSQL

strSQL = "SELECT a_Id, Datum, Titel, Innehall FROM t_Arkiv ORDER BY Datum"

Set con = OpenMyDatabas()

Set Rst = con.Execute(strSQL)

If Rst.EOF Then
Else
Response.Write Rst.GetString()
End If

Rst.Close

Set Rst.ActiveConnection = Nothing
Set Rst = Nothing

con.Close
Set con = Nothing

Response.End
</code>
Detta exempel retunerar resultatet som en tab-separerad textfil.

Jag uppmanar alla som läser denna tråden att sprida informationen vidare. För att på så sätt höja kvaliteten på program strukturen i ASP sidor.


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-31 08:47:24 - Andreas Hillqvist

Jag uppmanar att alla som väljer att inkludera en conection inte gör som saw föreslår. Det finns ett mycket bättre sätt.

Det är kapsla öppningen i en Specifik Function:
<code>
<%
'**
'* Generic Help Functions
'**
Function OpenConnection(ConnectionString)
Dim con
Set con = Server.CreateObject("ADODB.Connection")
con.Open ConnectionString
Set OpenConnection = con
End Function

Function OpenJETConnection(DataSource)
Set OpenJETConnection = OpenConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataSource)
End Function

'**
'* Exampels of server connections
'**
'Correct and/or best way of opening a connection in ASP
Function OpenNorthwind()
Set OpenNorthwind = OpenJETConnection("C:\Program\Microsoft Visual Studio\VB98\NWIND.MDB")
End Function


'Correct and most common way of opening a connection in ASP
Function OpenMyDatabas()
Set OpenMyDatabas = OpenJETConnection(Server.MapPath("./MyDatabas.mdb"))
End Function
%>
</code>

Denna implementering har många fördelar. Några av dem är:
* Är inte beroende av deklarerade variabler
* Öppnar bara anslutningar när det anropas

Exempel Sida:
<code>
<%@ Language=VBScript %><%
Option Explicit

Response.Buffer = True

%>
<!--#include file="MyConnections.asp" -->
<%

Dim con
Dim rst
Dim strSQL

strSQL = "SELECT Orders.* FROM Orders"

Set con = OpenNorthwind()

Set Rst = con.Execute(strSQL)

If Rst.EOF Then
Else
Response.Write Rst.GetString()
End If

Rst.Close

Set Rst.ActiveConnection = Nothing
Set Rst = Nothing

con.Close
Set con = Nothing

Response.End
%>
</code>
Detta exempel retunerar resultatet som en tab-separerad textfil.

Jag uppmanar alla som läser denna tråden att sprida informationen vidare. För att på så sätt höja kvaliteten på program strukturen i ASP sidor.




Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-31 09:50:30 - johan agorelius

Ok,
Vad betyder:

Rst.GetString()

och

Option Explicit
Response.Buffer = True


Svara

Sv: ASP och databas, vad använda

Postades av 2004-03-31 15:08:34 - Andreas Hillqvist

-----------------------------------------
Option Explicit
-----------------------------------------
Lägger man innan koden om man vill att VB skall kräva deklaration av variabler. Med Option Explicit undviker man buggar som beror på felstavat variabelnamn. Stavar man fel på variabelnamnet kommer då sidan att klaga på at variabeln inte är deklarerad.

Exempel på ett exempel på ett fel som Option Explicit "uptäcker":
<code>
Option Explicit

Dim FirstName
'FirstNamn är en odeklarerad variabel. Det skall vara FirstName!
FirstNamn = Trim(Request.Form("FirstName"))

If Len(FirstName) Then
'OK
Else
'Not ok
End If
</code>

Om man inte använt Option Explicit, skulle inget fel rapporterats när koden körs.

Men FirstName kommer var tom oavsett vad Request.Form("FirstName") innehåller.

Detta är för att vb kommer att tokla FirstNamn som en variabel av typen Variant. Detta är ett tidigt arv från vb för att låta programerarna "slippa" deklarera sina variabler. Vilket i sig är en hemsk "funktion".

Det skulle krävas mycket noggran kontroll av koden innan man upptäcker att man stavat fel till FirstName där värdet tilldelas till variabeln.

Om man använt Option Explicit kommer inte koden gå at köra eftersom variabeln FirstNamn inte är deklarerad.


-----------------------------------------
Response.Buffer = True
-----------------------------------------
Om man i ASP använder Response.Buffer = False:
* Response.Write skickar data till klient
* Response.Flush implementeras ej
* Response.Clear implementeras ej
* Response.End avbryter exekvering av sidan

Om man istället använder Response.Buffer = True:
* Response.Write skriver till en buffert istället för att skicka data till klient
* Response.Flush skickas data i buffert till klient och tömmer buffert
* Response.Clear tömmer buffert på data utan att skicka till klient.
* Response.End skickas data i buffert och avbryter därefter exekvering av sidan



-----------------------------------------
ADODB.Recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
-----------------------------------------
GetString() är en metod på ADODB.Recordset objektet vilket slås samman antalet angivna poster(NumRows) från aktuell position i recordsetet.

Om det saknas aktuell post kommer ett fel att upstå. Det är därför bäst att först kontrollera att recordsetet inte befinner sig BOF eller EOF. Om recordsetet nyss öppnats räcker det att kontrolera att det inte befinner sig EOF.

StringFormat är reserverad för framtiden. Kan utelämnas eller anges till konstanten
adClipString(vilket motsvarar av värdet 2).

NumRows anger hur många poster som skall behandlas av medlemen. Kan utelämnas och då kommer resterande poster att behandlas.

Kolumnseparator(ColumnDelimiter) anger en sträng som skall separera kolumner/fält. Kan utelämnas och då används tab-tecknet. Tab-tecknet motsvarars av vb konstant vbTab.

Radseparatorn(RowDelimiter) anger en sträng som skall separera poster. Kan utelämnas kommer poster att separeras genom radbrytning. radbrytning representeras av en två tecken lång sträng bestående av "carrier return"-tecknet("carrier return"-tecknet motsvarars av vb konstanten vbCr) tillsamans med "line feed"-tecknet("line feed"-tecknet motsvarars av vb konstanten vbLf). "carrier return"-tecknet tillsamans med "line feed"-tecknet motsvarars av vb konstanten vbCrLf.

När funktionen körs:
* Nullvärden ersätts med strängen angiven i parametern NullExpr.
* Värden i poster slåss sammans till en sträng separerade med angiven kolumnseparator(ColumnDelimiter).
* Strängarna som representerar varje post slås samman separerade med angiven radseparatorn(RowDelimiter).

Detta innebär att dessa två uttryck retunerar identisk sträng:
<code>
rs.Open "SELECT * FROM Orders", con
If NOT rs.EOF Then
Response.Write rs.GetString()
End If
rs.Close
</code>
Och:
<code>
rs.Open "SELECT * FROM Orders", con
If NOT rs.EOF Then
Response.Write rs.GetString(2, -1, vbTab, vbCrLf, vbNullString)
End If
rs.Close
</code>


Svara

Sv: ASP och databas, vad använda

Postades av 2004-04-01 00:47:26 - Pelle Johansson

Ett komplement till egenskaperna för Response.Buffer = False. Du kan inte använda Response.Redirect om buffer är satt till false. Dock som du skriver, ett mycket uttömmande svar, bra jobbat.


Svara

Sv: ASP och databas, vad använda

Postades av 2004-04-01 09:01:53 - Andreas Hillqvist

Man kan Response.Redirect(). Dock förutsätter det att ingen text har skrivits ut.

T.ex. följande kod bör funger:
<code>
<%@ Language=VBScript %><%
Option Explicit

Response.Buffer = False
Response.Redirect("Redirect.html")

%>
</code>
Medans följande kod inte:
<code>
<%@ Language=VBScript %><%
Option Explicit

Response.Buffer = False
Response.Write ""
Response.Redirect("Redirect.html")
%>
</code>

För att förstå varför det är såhär bör man känna till Hypertext Transfer Protocol(HTTP) . Specifikationen för HTTP finner du på: ftp://ftp.isi.edu/in-notes/rfc2616.txt

Låt oss nu gå in på vad Response.Redirect() gör för något. vilket är att skicka statusen 307(Temporary Redirect) till klienten.

Alltså ett anrop för HTTP novicer och/eller "dummies"(Om ni inte tycker man bör kalla folk som använder Response.Redirect() för dummies. Låt mig då försvara mig med att jag anser att slaviskt bör följa det standarder som berör ämnet. Finns mer elaka saker man kan kalla dem för en "dockor".).

Låt oss kort beskriva hur ett HTP svar ser ut:
Status-Line - Status Code and Reason Phrase
Header Fields

Request och Response kan dessutom innehålla Entity, vilket i asp iprincip är resulterande html sida.

HTTP stödjer bar en status i ett svar. Det är nu mycket lätt att förstå i vilka fall det inte är tillåtet att anropa Response.ReDirect.

Dessa är om man skickat några Header Fields och/eller påbörjat en Entity.

Nu gäller det att sätta sig in i hur ASP skickar sitt svar. Kort kan man säga att man inte bör på något sätt ändrat informationen för någon egenskap i Response objektet. Specielt inte Response.Write eller Response.AddHeader().

Ni kanske frågar var för följande sida inte fungerar:
<code>
<%@ Language=VBScript %><%
Option Explicit

Response.Buffer = False
%>
Nu ska vi se om jag kan göra en ReDirect
<%
Response.Redirect("Redirect.html")
%>
</code>
Man kan tro att den inte anropar Response objektet. Men det stämmer inte. ASP översätter sidan till vb kod. Vilket innebär att det Script motorn tolkar är följande kod:
<code>
Option Explicit

Response.Buffer = False
Response.Write vbCrLf & "Nu ska vi se om jag kan göra en ReDirect" & vbCrLF
Response.Redirect("Redirect.html")
</code>

Jag hoppas att inga oklarheter kvarstår vad det gäller Response.ReDirect och varför jag anser att man inte bör använda den utan legitima själ. På samma sätt som USA borde haft Legitima skäl för att starta krig mot Irak. Inte hitta på något för att starta krig, avsätta saddam och plundra landet. Vilket i princip är de det gjort.


Svara

Sv: ASP och databas, vad använda

Postades av 2004-04-01 10:45:27 - johan agorelius

Här fick jag många uttämmande svar! tackar!
När vi ändå är på gång har jag två frågor till:

När skall man använda RS.Open och vad gör den?

och vad innebär:
Connection.Mode = 3


Svara

Sv: ASP och databas, vad använda

Postades av 2004-04-01 21:17:06 - Andreas Hillqvist

Det är fråger som saknar större djup. Du kan själv sök svar på det i ADO dokumentationen på msdn: http://msdn.microsoft.com/library/en-us/ado270/htm/adostartpage1.asp

Du får inte bli bortskämd och inte ställa lätta fråger vilket svaret du kan finna själv.

JAg har valt att ge mycket utförliga svar tidigare för att utbilda alla, Det är inte många som känner till tekniken bakom Respons.Redirect, http, kapslar öppningsanrop av dconnections i funktioner, osv.

JAg tog tillfälet i akt att i detta inläg besvara det.


Svara

Sv: ASP och databas, vad använda

Postades av 2004-04-03 10:32:47 - johan agorelius

Jag förtår inte riktigt vad

Set Rst.ActiveConnection = Nothing

är för något?


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 790
27 960
271 761
5 824
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