konstigt fel

ASP

19 svar · 207 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Trådstart#1

Fick det här felet:
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

If Session("language")="SV" Then
SQL="Select * From Language"
Set RS=Conn.Execute(SQL)
Do Until RS.EOF
RS("Word")=""& RS("SV") &""
RS.MoveNext
Loop
RS.Close
Set RS=Nothing
End If

rad det blir fel på:
RS("Word")=""& RS("SV") &""

Försöker få det att funka som:
login="Logga in"

så att jag kan kalla på det senare i dokumentet med <%=login%>

Medlem sedan dec. 19998 577 inlägg
#2

Eftersom du har ett readonly recordset så kan du inte uppdatera detta...

Medlem sedan dec. 19998 577 inlägg
#3

Och vad menar du med detta?: ""& RS("SV") &""

Medlem sedan jan. 20013 341 inlägg
#4

typo ;)
RS("Word")=RS("SV")

men hur ska jag lösa det?

Medlem sedan dec. 19995 874 inlägg
#5

Update...?

Medlem sedan jan. 20013 341 inlägg
#6

jag ska ju inte uppdatera

Medlem sedan dec. 200012 464 inlägg
#7

Du vill alltså dynamiskt skapa variabler? Det går inte.

Du får nog använda en array eller ett dictionary.

Medlem sedan jan. 20013 341 inlägg
#8

hur, kan man få ett exempel?

Medlem sedan juni 200032 967 inlägg
#9

man kan söka. :)

man behöver inte gå långt tillbaka i tiden för att hitta detta: http://cgi.webforum.nu/wf/Forum11/HTML/004966.html

Medlem sedan jan. 20013 341 inlägg
#10

Min tanke var att ha:

If Session("language")="SV" Then
login="Logga in"
Username="Användarnamn:"
Password="Lösenord:"
End If

men det blir många rader för allt innehåll(alla långa texter lägger jag i DB)+ att det är på 4 språk!
Någon som har ett bättre förslag? Vet inte hur man ska lösa det med arrays :(

Medlem sedan mars 20002 836 inlägg
#11

typ detta som jag snackade om i ett annat inlägg:

<%
strSprak = Session("language")

Select Case strSprak
	Case "EN"
		login="Log in"
		Username="Username"
		Password="Password:"

	Case "Annat Sprak"
		login="Logga in"
		Username="Användarnamn:"
		Password="Lösenord:"

	Case Else
	'## -- default språk, SV --
		login="Logga in"
		Username="Användarnamn:"
		Password="Lösenord:"
End Select
%>

Och även för längre fraser.
Spara detta i en inkludfil och inkludera på varje sida, klart bättre än att gå och fråga DB för varje sida.

Finns ett typexempel på detta: SnitzForum2000

Vet, nu kommer många att gå i taket, men, det är inte speciellt effektivt eller snyggt kodat och EJ självförklarande.

Men ett bra exempel på hur man INTE ska göra :o

cya,
PatrikB

Medlem sedan jan. 20013 341 inlägg
#12

problemet är att det blir MYCKET text!
Så här har jag gjort i en include:

<% If Request.QueryString("language")<>"" Then
If Request.QueryString("language")="SV" Then
Session("language")="SV"
ElseIf Request.QueryString("language")="EN" Then
Session("language")="EN"
ElseIf Request.QueryString("language")="DK" Then
Session("language")="DK"
ElseIf Request.QueryString("language")="NO" Then
Session("language")="NO"
End IF
Else
If Session("language")="" Then
Session("language")="EN"
Else
Session("language")=Session("language")
End If
End If

If Session("language")="SV" Then
login="Logga in"
Username="Användarnamn:"
Password="Lösenord:"

'bilder och bildtexter
altlogin="Logga in till ditt konto"
piclogin1="pics/login1sv.gif"
piclogin2="pics/login2sv.gif"
altreg="Bli medlem"
picreg1="pics/reg1sv.gif"
picreg2="pics/reg2sv.gif"
altcontads="Läs annonser!"
piccontads1="pics/cont1sv.gif"
piccontads2="pics/cont2sv.gif"
altinfo="Information"
picinfo1="pics/info1sv.gif"
picinfo2="pics/info2sv.gif"
altback="Tillbaka"
picback1="pics/back1sv.gif"
picback2="pics/back2sv.gif"
End If

också fortsätter jag med varje språk!!!

Medlem sedan mars 20002 836 inlägg
#13

Ta bort alla If satser och kör Select Case istället som är mer effektivt än if satser.

En annan sak man kan göra är att lägga varje språk i en egen mapp och sedan ha alla dessa variabler endast en ggn i en inkludfil som tex heter languages.asp sedan är det bara att ändra just denna fil för varje katalog/språk

cya,
PatrikB

Medlem sedan jan. 20013 341 inlägg
#14

Det måste ju gå att göra detta genom att lägga in allt i en db, enklare att administrera! Include filen skulle bli många rader annars(är redan uppe i 113 st och har bara börjat, kommer att sluta på några tusen..)!

Medlem sedan mars 20002 836 inlägg
#15

Några tusen för varje språk eller alla fyra tillsammans?

Kör du på en IIS 5 skulle jag läsa in på detta sätt:

<%
strSprak = Session("language")

Select Case strSprak
Case "EN"
Server.Execute("engelska.asp")
Case "TY"
Server.Execute("tyska.asp")
Case Else
'## -- default språk --
Server.Execute("svenska.asp")
End Select
%>

cya,
PatrikB

Medlem sedan jan. 20013 341 inlägg
#16

Tack patrik, men det är inget bra sätt att lösa mitt problem!
Att administrera det, skulle bli en månads arbete bara att försöka hitta i dom filerna!!!

Medlem sedan mars 20002 836 inlägg
#17

Varför det?

Bara att använda sig av FileSystemObject och redigera de filerna.
Kan göras med formulär precis som när du administrerar en databas fält och tabeller.

cya,
PatrikB

Medlem sedan jan. 20013 341 inlägg
#18

det går iofs, men om inte annat för att lära sig :e Skulle va bekvämt att ha det i en DB dessutom!
Jag vet att det går i JSP och PHP, är det en miss av Microsoft?

Medlem sedan jan. 20013 341 inlägg
#19

Kan någon hjälpa mig med det här?
Har ett företag som KRÄVER att få ha det i DB, så att dom kan uppdatera enkelt själva, och slipper sitta och leta igenom flera tusen rader kod!!!

Medlem sedan jan. 20013 341 inlägg
#20

LÖST DET :e

<%
If Session("language")="SV" Then
SQL="Select * From Language"
Set sprk=Conn.Execute(SQL)
Set sprak = CreateObject("Scripting.Dictionary")
Do Until sprk.EOF
sprak.Add ""& sprk("Word") &"", ""& sprk("SV") &"" 
sprk.MoveNext
Loop
sprk.Close
Set sprk=Nothing
%>

osså kalla på det:
<%=sprak.Item("Password") %>

I databasen har jag:
Word = det ord man vill använda i <%=sprak.Item("Password") %>
SV = Word översatt till svenska
EN = Word översatt till engelska
osv för varje språk

Har en session som heter "language" som innehåller valda språket, två bokstäver för varje språk, t ex SV för svenska

Har även en LangID som primärnyckel i tablen!

Hoppas att det här kan hjälpa nån annan!

257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)