Jag försöker att göra sak med GetRows, men jag får inte till det som jag har tänkt. Jag föreslår att du läser språkhantering på ett annat sätt. Men jag har inget konkret exempel som demonstrera hur jag tycker man skall lösa det. Hej Andreas. Det är inte det jag menar. Varför ladda språk information på sidan genom en databas. Ger sämmre prestanda. Du skall ha tack för dina synpunkter, de är inte alls ointressanta, men nu följer jag det mål som jag har hållt på med ett bra tag, nämeligen att göra en lösning med databasdriven multi language.Problem med GetRows
Detta fungerar;
<code>
If Not rst.EOF Then
arr=rst.GetRows()
rst.Close
Connection.Close
MULTILANGUAGE_1 =arr(3,0)
MULTILANGUAGE_2 =arr(3,1)
MULTILANGUAGE_3 =arr(3,2)
MULTILANGUAGE_4 =arr(3,3)
MULTILANGUAGE_5 =arr(3,4)
end if
</code>
...dvs att jag skall enbart plocka ut ifrån fält 3(så kanske man inte skall säga, men ni vet...).
Denna kod har jag tänkt att den skall autogenereras via en app i C#, och jag hadde tänkt någonting i still med:
<code>
J=1
For i = 0 TO Ubound(arr,2)
MULTILANGUAGE_ & J =arr(3,i)
j = j +1
Next
</code>
...men jag får fel när jag försöker att kontaktera "MULTILANGUAGE_" med "J".
Några bra tips?Sv: Problem med GetRows
Därör får jag föreslå att du löser det på följande sätt:
<code>
Dim ub
Dim MultiLanguage
ub = Ubound(arr, 2)
ReDim MultiLanguage(0 To ub)
For i = 0 To ub
MultiLanguage(i) = arr(3, i)
Next
</code>
Men det känns onödig att göra om en array. Även om det är så att en endimensionel är snabbare än en tvådimensionell array.
Berätta gärna hur du har laggt upp det med datastruktur och övrig kod.Sv: Problem med GetRows
Jo det finns ett annat sätt, och det är att i C# hårdkoda allt dvs att räkna hur många poster den sidan har, och sedan generera de koderna, då blir det snarlikt min första.
Varför jag ville testa detta, är att det blir mindre och kompaktare kod.
Jag får nu två fel, när jag använder din kod(ett fel är ifrån mitt script).
<code>
ReDim MultiLanguage_(0 To ub)
"Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/Hemsidor/HTML_TEST/Stadgar.asp, line 27, column 23
ReDim MultiLanguage_(0 To ub)"
'det andra är
Inkompatibla typer: 'MultiLanguage_'
</code>
Går det att göra detta snyggt, eller blir jag tvungen att göra det i C#?Sv: Problem med GetRows
Men du har nästan rätt.
Jag föreslår att man skapar en Template för sidan. I denna anger man XML tagar för språkresurser. Det kan vara bra att använda ett namespace för all lätt särskilja dessa tagar.
T. Ex.
<code>
<H1><lng:text id="456">Hej och välkommen!</lng:text></H1>
</code>
Man skapar sedan helt enkelt översatta kopier av källkoden när man publicerar den till servern. Detta ger en sida för varje språk. Enklast är att sedan lägga dem i skillda root kataloger.
T.Ex.
www.DinDNSDoman.se/se/
www.DinDNSDoman.se/se/news/
www.DinDNSDoman.se/se/events/
www.DinDNSDoman.se/dk/
www.DinDNSDoman.se/dk/news/
www.DinDNSDoman.se/dk/events/
www.DinDNSDoman.se/no/
www.DinDNSDoman.se/no/news/
www.DinDNSDoman.se/no/events/
www.DinDNSDoman.se/fi/
www.DinDNSDoman.se/fi/news/
www.DinDNSDoman.se/fi/events/
www.DinDNSDoman.se/en/
www.DinDNSDoman.se/en/news/
www.DinDNSDoman.se/en/events/
Detta sätt gör det enkelt att utveckla. Ingen kod eller avlusning av Response för språk. Bättre prestanda. JAg ser bara fördelar med detta tillväga gångs sätt.
Om ni, utvecklare som besöker pellseoft, finner detta tillvägagångssätt intressant. Kan jag skriva en artikel om det.
Implementering kanske leder till att ert arbete blir lätare och enklare. Men alla metoder har en inkörströskel. ;o)
Med vänliga hälsningar - Andreas HillqvistSv: Problem med GetRows
Där har jag ersatt all text till en variabel t ex <% = MULTILANGUAGE_1 %> osv.
Jag tänkte sedan att använda GetRow, för att få ner dessa variabler enligt försöket ovan.
Lyckas inte detta, så får jag låta C# generera kod enl första försöket.
Tack i allafall Andreas för synpunkter och förslag.