/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Bestem database felt
Fra : Rasmus Nielsen


Dato : 23-01-01 16:01

Hej,

Hvordan tager jeg noget tekst fra et helt bestem felt, som eks. fra tabllen
sprog, kolonne dansk, side start?

Tabllen sprog, såden ca.:

side ! dansk ! engelsk
----------------------------
start ! her er startsiden ! here is the start page
osv.

Er der i øvrigt en smart opbygning, hvis man har en side, der skal laves i
to sprog?

Venlig hilsen, Rasmus Nielsen.




 
 
Ghashûl (23-01-2001)
Kommentar
Fra : Ghashûl


Dato : 23-01-01 16:56

On Tue, 23 Jan 2001 16:00:45 +0100, "Rasmus Nielsen"
<rasmusn@rasmusn.dk> wrote:

>Hej,
>
>Hvordan tager jeg noget tekst fra et helt bestem felt, som eks. fra tabllen
>sprog, kolonne dansk, side start?
>
>Tabllen sprog, såden ca.:
>
>side ! dansk ! engelsk
>----------------------------
>start ! her er startsiden ! here is the start page
>osv.
>
>Er der i øvrigt en smart opbygning, hvis man har en side, der skal laves i
>to sprog?
>
>Venlig hilsen, Rasmus Nielsen.
>
>

SELECT "dansk eller engelsk" FROM sprog WHERE side = 'start'

Sådan noget lign. vil jeg skyde på.

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629

We ain't done till this battle has been fought and won
The victory, how sweet it be, is already ours
Holding the stars, is the man that carries my scars
Always the same, I wear his name with no shame
Here in this Battle Cry, we will never die
-P.O.D. - Tribal

Rasmus Nielsen (23-01-2001)
Kommentar
Fra : Rasmus Nielsen


Dato : 23-01-01 17:51

> SELECT "dansk eller engelsk" FROM sprog WHERE side = 'start'

Nu har jeg flg. men får fejl: "Typerne passer ikke sammen: 'RS'"

<%
sprog = Request.QueryString("sprog")

If sprog=dansk then
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
";DefaultDir=" & Server.MapPath("administration") & ";Driver={Microsoft
Access Driver (*.mdb)}"
SQL = "select dansk FROM sprog WHERE side = startside"
set RS = conn.execute( SQL )
End If

If sprog=svensk then
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
";DefaultDir=" & Server.MapPath("administration") & ";Driver={Microsoft
Access Driver (*.mdb)}"
SQL = "select svensk FROM sprog WHERE side = startside"
set RS = conn.execute( SQL )
End If

Response.Write ("" & rs("side") & "")
%>

Venlig hilsen, Rasmus Nielsen.



Lauritz Jensen (23-01-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 23-01-01 20:39

Rasmus Nielsen wrote:
>
> > SELECT "dansk eller engelsk" FROM sprog WHERE side = 'start'
>
> Nu har jeg flg. men får fejl: "Typerne passer ikke sammen: 'RS'"

Så ville det jo være rart, hvis du angav linien, hvor denne fejl opstår.

> If sprog=dansk then

Er du sikker på at du ikke mener:
If sprog="dansk" then
(Altså at sprog er den variabel du lige har sat og at den skal være lig
teksten "dansk")

> set conn = server.createobject("ADODB.connection")
> conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
> ";DefaultDir=" & Server.MapPath("administration") & ";Driver={Microsoft
> Access Driver (*.mdb)}"

Der er ingen grund til at have koden til at åbne databasen stående to
gange. Det er jo samme database ligegyldigt hvilket sprog du bruger.

> SQL = "select dansk FROM sprog WHERE side = startside"

Kunne du ikke, i stedet for at have sql-sætningen to gange, lave den
dynamisk?
Din datamodel er vist heller ikke helt i vinkel. Når du tilføjer et nyt
sprog kræver det jo at du tilføjer et nyt felt til tabellen. Hvad med at
udnormaliserer sproget?

Hele koden kunne se sådan ud:

<%
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
";Driver={Microsoft Access Driver (*.mdb)}"
set rs = server.createobject("ADODB.Recordset")

Response.Write GetText("dansk", "forsiden")

set rs = Nothing
conn.Close
set conn = Nothing

Function GetText(sprog, side)
Dim sql
sql = ""
sql = sql & "SELECT value "
sql = sql & "FROM strings "
sql = sql & "WHERE sprog='"&Replace(sprog, "''", "'")&"' "
sql = sql & "AND side='"&Replace(side, "''", "'")&"' "
rs.open sql, conn
If Not rs.eof Then GetText = rs(0)
rs.close
End Function

%>

(I stedet for at hente alle teksterne ud af databasen, burde man nok
smide dem i application-objektet, ellers bliver det vist dyrt)

--
Lauritz

Rasmus Nielsen (24-01-2001)
Kommentar
Fra : Rasmus Nielsen


Dato : 24-01-01 07:26

Flg. giver syntaksfejl i linie 5:

<%
sprog = Request.QueryString("sprog")

set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
";Driver={Microsoft Access Driver (*.mdb)}"
set rs = server.createobject("ADODB.Recordset")

Response.Write GetText("" & sprog & "", "startside")

set rs = Nothing
conn.Close
set conn = Nothing

Function GetText(sprog, side)
Dim sql
sql = ""
sql = sql & "SELECT value "
sql = sql & "FROM strings "
sql = sql & "WHERE sprog='"&Replace(sprog, "''", "'")&"' "
sql = sql & "AND side='"&Replace(side, "''", "'")&"' "
rs.open sql, conn
If Not rs.eof Then GetText = rs(0)
rs.close
End Function
%>

Venlig hilsen, Rasmus Nielsen.



Lauritz Jensen (24-01-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 24-01-01 07:47

Rasmus Nielsen wrote:
>
> Flg. giver syntaksfejl i linie 5:

Dette er een linie (den er blot blevet knækket af min newsreader)
> conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
> ";Driver={Microsoft Access Driver (*.mdb)}"

--
Lauritz

Rasmus Nielsen (24-01-2001)
Kommentar
Fra : Rasmus Nielsen


Dato : 24-01-01 13:36

> > conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
> > ";Driver={Microsoft Access Driver (*.mdb)}"

Nu får jeg istedet fejl i linie 21:

Microsoft Jet-databasemotoren kan ikke finde inputtabellen eller
forespørgslen "strings". Kontroller, at den findes, og at navnet er stavet
korrekt.


Venlig hilsen, Rasmus Nielsen.



Lauritz Jensen (24-01-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 24-01-01 16:33

Rasmus Nielsen wrote:
>
> > > conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
> > > ";Driver={Microsoft Access Driver (*.mdb)}"
>
> Nu får jeg istedet fejl i linie 21:
>
> Microsoft Jet-databasemotoren kan ikke finde inputtabellen eller
> forespørgslen "strings". Kontroller, at den findes, og at navnet er stavet
> korrekt.

Netop, koden var jo et eksempel på hvordan jeg ville have gjort (her
burde nok indsættes en discliamer :). Du har sikkert ikke en tabel som
hedder "strings", med de rigtige kolonner (tre kolonner, som hedder
"side", "sprog" og "value").
Du kunne lave funktionen om til at virker med din tabel:
Function GetText(sprog, side)
Dim sql
If Not (sprog="dansk") And _
Not (sprog="svensk") And _
Not (sprog="engelsk") _
Not (sprog="perl") Then sprog="dansk"
sql = ""
sql = sql & "SELECT " & sprog & " "
sql = sql & "FROM sprog "
sql = sql & "WHERE side='"&Replace(side, "''", "'")&"' "
rs.open sql, conn
If Not rs.eof Then GetText = rs(0)
rs.close
End Function

--
Lauritz

Betina Young Anderse~ (23-01-2001)
Kommentar
Fra : Betina Young Anderse~


Dato : 23-01-01 20:55

In article <94kcvh$aq5$1@news.inet.tele.dk>, rasmusn@rasmusn.dk says...
> > SELECT "dansk eller engelsk" FROM sprog WHERE side = 'start'
>
> Nu har jeg flg. men får fejl: "Typerne passer ikke sammen: 'RS'"
>
> <%
> sprog = Request.QueryString("sprog")
>
> If sprog=dansk then
> set conn = server.createobject("ADODB.connection")
> conn.Open "DBQ=" & Server.MapPath("administration\side.mdb") &
> ";DefaultDir=" & Server.MapPath("administration") & ";Driver={Microsoft
> Access Driver (*.mdb)}"
> SQL = "select dansk FROM sprog WHERE side = startside"
Prøv at rette dette til: SQL = "select dansk FROM sprog WHERE side =
'startside'"

mvh Betina

Søg
Reklame
Statistik
Spørgsmål : 177511
Tips : 31968
Nyheder : 719565
Indlæg : 6408596
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste