Bytta precis från en DSN till en vanlig connectionstring... Fick helt plötsligt errors på en del script osv.... Skitkonstigt?
E det olika drivrutiner lr nåt?
Bytt connection
13 svar · 397 visningar · startad av Ceeron
Hur ser connection-strängarna ut?
Vilka fel får du? Berätta!
Som sagt jag körde med DSN innan och nu:
'### Öppnar databasen
Set objConnect = Server.CreateObject("ADODB.Connection")
objConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.MapPath("../private/alkisarna.mdb")
efter bytet så fick jag följade error när jag skulle kolla gästboken som funkar med dsn kopplingen
If Session("ID") <> 0 and Session("ID") = intID Then
sql="update kommentarer set last = True where last = False and anvID =" &Session("ID")
objConnect.Execute(sql),,128
End If
Microsoft JET Database Engine (0x80040E14)
Syntaxfel i UPDATE-uttryck.
/alkisarna/gb.asp, line 34
Fattar inte varför jag fick någon err på detta...
Sen fick jag något annat men det slutade...
Fattar inte varför jag fick någon err på detta...
Olika drivers/providers kan skilja sig åt vad gäller reserverade ord. Last, tex, låter inte alls som ett lämpligt namn på en kolumn. Ta som huvudregel att undvika allt som låter som programinstruktioner: first, last, next, for .. osv, så slipper du problem när du byter driver/databas.
E det olika drivrutiner lr nåt?
Ja.
If Not Session("raknad") = "ja" Then
Dim strIP, strWebb
strIP = Request.ServerVariables("REMOTE_ADDR")
strWebb = Request.ServerVariables("HTTP_USER_AGENT")
If Request.Cookies("alkisarna.com")("raknad") = "ja" Then
strIP = Request.Cookies("alkisarna.com")("raknarIP")
End If
[b]sql = "insert into raknare (IP, Tid, Webb) values ('" & strIP & "', #" & Now() & "#, '" & strWebb & "')"
objConnect.Execute(sql)[/b]
Session("raknad") = "ja"
Response.Cookies("alkisarna.com").Expires = Date + 356
Response.Cookies("alkisarna.com")("raknarIP") = strIP
Response.Cookies("alkisarna.com")("raknad") = "ja"
End If
Microsoft JET Database Engine (0x80040E57)
Fältet är för litet för de data du vill infoga. Försök att infoga eller klistra in mindre information.
/alkisarna/inc_slut.asp, line 17
Har du ställt in maxlenght i databasen?
Om du använder MySQL så sätt Webb till Text och om du använder Access så väljer du PM.
Precis som det står "Fältet är för litet för de data du vill infoga."
Kolla vad du har för maxlängd på respektive fält.
Ändrade Webb till PM och testade med 255 i storlek på textfältet... Inget funka... Varför ska allt skita sig när man bara bytt connection? det e ju samma access databas o exakt samma kod!
Det sista felmeddelandet beror inte på att du bytt anslutningstyp. Dessutom; om man är noga med sin namngivning från början, så slipper man syntaxfel för att man använt reserverade ord.
Vad har du nu för fälttyp / maxlängd inställd på de olika fälten?
Fick till det... Första gången det hände nu... Det var Webb fältet som spökade som var text... bytte till PM eller va e max man kan få utav Request.ServerVariables("HTTP_USER_AGENT")?
Bra fråga. Just http_user_agent kan man modifiera själv, så det är jag inte alls säker på hur lång den kan tänkas bli.
mvh
Om du vill slippa att byta namn på fält i databasen och liknande, så går det faktiskt att klamra reserverade ord inom [ kolumnnamn ].
Exempel:
SELECT * FROM [users] WHERE [last] = " & first & " AND [top] = 1
OveRRidE skrev:
Om du vill slippa att byta namn på fält i databasen och liknande, så går det faktiskt att klamra reserverade ord inom [ kolumnnamn ].
Exempel:
SELECT * FROM [users] WHERE [last] = " & first & " AND [top] = 1
Det går ju att göra så, men det rekommenderas inte. Bättre att ha fältnamn som inte är reserverade... lättare att undvika sql-fel då.
Och dessutom stöder inte alla databaser/miljöer klamring. SQL Server CE gör det tex inte (iaf sist jag kollade), vilket kan vara bra att veta om man så enkelt som möjligt vill kunna flytta sin kod/databasstruktur.