webForumDet fria alternativet

OLE DB fel

26 svar · 890 visningar · startad av Maggan74

Maggan74Medlem sedan okt. 200355 inlägg
#1

Hej,
Är det någon vänlig själv som kan ge mig en hint om vad det här felet betyder och vad jag ska göra för att det ska funka?

Microsoft OLE DB Provider for SQL Server (0x80040E21)
En OLE DB-åtgärd i flera steg genererade fel. Kontrollera alla OLE DB-statusvärden som finns tillgängliga. Inget arbete utfördes.

Tack.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det kan vara lite av varje.

Håller du på med kolumner av typen text/image?
Vilket miljö?
Vilken sql-sats orsakar problemet?

Maggan74Medlem sedan okt. 200355 inlägg
#3

Tack, det var precis det jag behövde för att få igång mina grå... Det vara bara ett sånt simpelt fel att jag satt fel datatyp på en av mina kolumner... Men tack iallfall! : )

Maggan74Medlem sedan okt. 200355 inlägg
#4

Men nu har jag fått samma fel igen i en annan fil och den här gången har jag inte skrivit knas i mina db-kolmuner...

Koden som den klagar på är en simpel:

objRS("Adress")=Request.ServerVariables("HTTP_REFERER")

men jag tror inte att det är där som felet ligger. Jag jobbar mot en SQL-db....
Felet som jag får är alltså:

En OLE DB-åtgärd i flera steg genererade fel. Kontrollera alla OLE DB-statusvärden som finns tillgängliga. Inget arbete utfördes.

Tips någon?

StevePMedlem sedan mars 2003772 inlägg
#5

Du kan inte ändra värdet i ett recordset som du hämtat från databasen.

Om du vill att en variabel ska innehålla referern

Så får du skriva

Variabel = Request.ServerVariables("HTTP_REFERER")
Maggan74Medlem sedan okt. 200355 inlägg
#6

Nej, jag vill inte att en variabel ska innehålla referern, jag vill lagra deni min databas så att jag senare även kan skriva ut reusltatet på en annan sida... Det märkliga är att det har funkat hur bra som hels fram till att jag ville skriva ut resultatet, det var då det började krångla.

StevePMedlem sedan mars 2003772 inlägg
#7

Jag men om du vill lagra den i din databas så bör du först lägga in referen i en variabel som du sedan stoppar in i databasen.

Variabel = Request.ServerVariables("HTTP_REFERER")

strSQL = "Insert into table (Adress) Values('" & Variabel & "')"

Då lagras den i databasen och sedan kan du skriva ut den.

Om detta ej överstämmer med vad du vill göra så kan du väl visa hela din kod?

MethodMedlem sedan apr. 2001357 inlägg
#8

maggan om jag förstår dig rätt..

varför gör du inte en UPDATE och uppdaterar fältet i databasen med HTTP_REFERER informationen och öppnar sedan databasen och presenterar informationen på den sidan som du vill visa det på?

mvh

Jonas

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#9

Maggan74 skrev:

Nej, jag vill inte att en variabel ska innehålla referern, jag vill lagra deni min databas så att jag senare även kan skriva ut reusltatet på en annan sida... Det märkliga är att det har funkat hur bra som hels fram till att jag ville skriva ut resultatet, det var då det började krångla.

Om det är denna kod som krånglar, så vill du såklart lägga in en referer i databasen eller uppdatera ett fält med en referer. Då är frågan hur ser det ut ovanför?
vill du lägga in den i fältet Adress så använd dig av objRs.AddNew om det är ett nytt och vid uppdatering objRs.Update
innan ex.

objRs.AddNew
objRS("Adress")=Request.ServerVariables("HTTP_REFERER")	
' övriga fält som skall lagras i databasen..
objRsClose

eller använda sig av en INSERT INTO sats eller en UPDATE-sats i stället för att använda SELECT-satsen för att använda recordset för att lägga in eller uppdatera ett fält.

Vill du skriva ut resultatet:

' övrig kod som skapar ett recordset...
Response.Write(objRS("Adress")) 
' bl bla...
Maggan74Medlem sedan okt. 200355 inlägg
#10

Hej Jonas, det är precis så som jag gör som du föreslår...

SteveP, jag provade ditt förslag och felmeddelndet försvann (oh joy!) men det det händer inget, det enda som registreras i db är <NULL>...

StevePMedlem sedan mars 2003772 inlägg
#11

Ok men då får du inte med något värde i Variabeln.
Ibland kan Referern vara tom och då kan man inte göra så mycket åt saken.
Kolla så du lägger in rätt variabel etc.

Men om du vill lägga in något annat värde när den är tom så får du göra en kontroll.

IF Request.ServerVariables("HTTP_REFERER") = "" then Variabel = "Inget värde" Else Variabel = Request.ServerVariables("HTTP_REFERER")

strSQL = "Insert into table (Adress) Values('" & Variabel & "')"
Maggan74Medlem sedan okt. 200355 inlägg
#12

Så här ser min kod ut:

Dim objRS, datStartTime, sida, strSQL
Dim objRS, datStartTime, sida, strSQL
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "tblAnnat",objConn,adOpenKeyset,adLockOptimistic,adCmdTable
objRS.AddNew
objRS("IP")=Request.ServerVariables("HTTP_HOST")
sida = Request.ServerVariables("HTTP_REFERER")
strSQL = "Insert into tblAnnat(Adress)Values('" & sida & "')"
'objRS("Adress")=Request.ServerVariables("HTTP_REFERER")
objRS("Tid")=Request.Cookies("Tidinfo")	

objRS.Update
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Och så här ser det ut på den sida där jag vill skriva ut...

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open"tblAnnat",objConn,adOpenKeyset,adLockOptimistic,adCmdTable

Do While Not objRS.EOF
Response.Write objRS("Adress")& "<BR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
StevePMedlem sedan mars 2003772 inlägg
#13
Dim IPnr
Dim sida
Dim tidinfo

IPnr = 		Request.ServerVariables("HTTP_HOST")
sida = 		Request.ServerVariables("HTTP_REFERER")
tidinfo = 	Request.Cookies("Tidinfo")

strSQL = "Insert into tblAnnat (IP,Adress,Tid) Values('" & IPnr & "','" & sida & "','" & tidinfo & "')"

ObjConn.Execute strSQL, , 128

ObjConn.Close
Set ObjConn = Nothing
Maggan74Medlem sedan okt. 200355 inlägg
#14

Njae, det där gick inte så bra heller... Nu reggas det <NULL> både på tid, IP och adress...

StevePMedlem sedan mars 2003772 inlägg
#15

Men får du nåt värde alls ur dina Request.ServerVariables?

IP nummer får du dessutom ut genom REMOTE_HOST

IPnr = 		Request.ServerVariables("REMOTE_HOST")
sida = 		Request.ServerVariables("HTTP_REFERER")
tidinfo =		Request.Cookies("Tidinfo")

Response.write "IP:" & IPnr & "<br>Referer:" & sida & "<br>tidinfo:" & tidinfo
StevePMedlem sedan mars 2003772 inlägg
#16

Får du inte värde ur

sida = Request.ServerVariables("HTTP_REFERER")

så kan det bero på browsern/sidan, ibland är den tom.

Sen så kanske

Request.Cookies("Tidinfo")

inte heller innehåller nåt värde?

Maggan74Medlem sedan okt. 200355 inlägg
#17

IP, Adress och Tid lagrar inget värde, men Cookies("Tidinfo") är den enda som fungerar... Det här känns bara mer och mer förvirrande...

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#18

SteveP skrev:

Men får du nåt värde alls ur dina Request.ServerVariables?

IP nummer får du dessutom ut genom REMOTE_HOST

IP nummer får du genom REMOTE_ADDR!

HTTP_REFERER är den sida som jag kommer ifrån, och om jag skriver adressen direkt i adress-fältet så får jag man ingen referer, så det gäller.

Så man kan säga om referer saknas så är det en direkt träff! :OO

Maggan74Medlem sedan okt. 200355 inlägg
#19

Jo det har du ju rätt i, men jag har även provat att komma in på sidan från en annan länk men det strular.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#20

Maggan74 skrev:

Jo det har du ju rätt i, men jag har även provat att komma in på sidan från en annan länk men det strular.

Det blir fortfarande tomt eller?

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