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