webForumDet fria alternativet

konstigt fel

ASP

19 svar · 173 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#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%>

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

Medlem sedan dec. 19998 577 inlägg
#2

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

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan dec. 19998 577 inlägg
#3

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

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan jan. 20013 341 inlägg
#4

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

men hur ska jag lösa det?

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

Medlem sedan dec. 19995 874 inlägg
#5

Update...?

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan jan. 20013 341 inlägg
#6

jag ska ju inte uppdatera

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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.

------------------
essentitia preter non sans multiplicandum

Medlem sedan jan. 20013 341 inlägg
#8

hur, kan man få ett exempel?

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

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 :(

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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

------------------
*Det tar sig sa han som hade eld i håret*

[Redigerat av PatrikB den 27 jun 2001]

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!!!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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

------------------
*Det tar sig sa han som hade eld i håret*

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..)!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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

------------------
*Det tar sig sa han som hade eld i håret*

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!!!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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

------------------
*Det tar sig sa han som hade eld i håret*

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?

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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!!!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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