views:

20

answers:

1

i want to consult about something i do.

my website has 3 languages. Hebrew (main), english and russian. i am using a database having a table with the fields: ID, fieldName, 1, 2, 3. where 1 2 3 are the languages.

upon entering the website language 1 (hebrew) is chosen automaticly until you choose another. and saved as a session("currentLanguage").

i wrote a function langstirng whice recieves a field name and prints the value acording to the language in session("currentLanguage"):

Dim languageStrings
Set languageStrings = Server.CreateObject("ADODB.Recordset")
languageStrings.ActiveConnection = MM_KerenDB_STRING
languageStrings.Source = "SELECT fieldName,"&current_Language&"FROM Multilangual"
languageStrings.CursorType = 0
languageStrings.CursorLocation = 2
languageStrings.LockType = 1
languageStrings.Open()

sub langstring(fieldName)
    do while NOT(languageStrings.EOF)
        if (languageStrings.fields.item("fieldName").value = fieldName) then
            exit do
        else
            languageStrings.movenext
        end if
    loop

if (languageStrings.EOF) then
    response.Write("***"&fieldName&"***")
else
    response.Write(languageStrings.fields.item(currentLanguage+1).value)
end if
    languageStrings.movefirst
end sub

and i use it like so: <div>langstring("header")</div>.

i find it stupid that i keep sending the query to the server on any and every page. since the multilangual table does not change "THAT" often i want to somehow save the recordset for the current browsing.

I am looking help for THIS solution, Please.

A: 

If they don't change very often, why not just dump the strings to an .asp file?

This file can be rewritten whenever you have made changes in the database.

Another option would be to cache the strings in memory using something like Caprock.Dictionary

thomask