webForumDet fria alternativet
Logga in / Bli medlem

konkatinera...

ASP

6 svar · 819 visningar · startad av Zandris

Medlem sedan feb. 200160 inlägg
Trådstart#1

Hur konkatinerar man in ett värde i ett tabellnamn?

Har gjort så här:

val = Request.QueryString("val")

SQL = "SELECT * FROM kommentar_"&val&" WHERE objekt_id = "&id&";"

När jagskriver ut SQL-satsen är värdet riktigt:
Response.Write(SQL)
SELECT * FROM kommentar_allergi WHERE objekt_id = 1;

Värdet jag skickar med Querystringen är i detta fall "allergi"

Jag får felmeddelandet:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/handikappguiden/gbg/info_tillganglighet.asp, line 9

MVH Zandra

Medlem sedan juni 200032 967 inlägg
#2

Är objekt_id av typen text?

I så fall ska du ha apostrofer runt värdet.

SQL = "SELECT * FROM kommentar_"&val&" WHERE objekt_id = '"&id&"';"

Fast det bör nog vara ett tal.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#3

OT:

Varför har du byggt upp datamodellen på det sättet? Det är bättre att ha en gemensam tabell med en extra kolumn istället.

Medlem sedan feb. 200160 inlägg
#4

Anders:

Du menar väl att SQL-satsen ska skrivas så här:
SQL = "SELECT * FROM kommentar_"&val&" WHERE objekt_id = "&id&";"

Då är ju id:et ett tal...

LarsG

Jag har byggt upp tabellen på det viset eftersom kommentar_allergi innehåller en massa olika kolumner... typ Rubrik, Ingress, Kommentar m.m.

Eftersom tabellen kommer att bli väldigt stor (typ kanske 100 000 poster) så vill jag inte slå ihop alla de olika tabellerna (kommentar_syn, kommentar_kognitiv m.m) för då hamnar jag på 1 000 000 poster i stället.

Förstår du vad jag menar?

MVH Zandra

Medlem sedan juni 200032 967 inlägg
#5

Om objekt_id är av typen tal så borde din SQL-fråga stämma alldeles utmärkt.

Dock tyder felmeddelandet på att objekt_id inte är av typen tal, utan förmodligen av texttyp. Kan det stämma?

Mvh,

Medlem sedan feb. 200160 inlägg
#6

Alltså... Ibland står det still i huvudet ;-)
Arbetar för mycket själv ;-)

Tack Anders!

Stirrade mig blind på "&val&"

LarsG:
Vill gärna höra vad du tycker om mitt svar på din fråga.

Det här med databasdesign är inte det lättaste alltid. Det är lätt att stirra sig blind på det med ;-)

Ha en trevlig helg!

MVHZandra

Medlem sedan dec. 200012 464 inlägg
#7

Jo jag förstår vad du menar. Jag tycker ändå att det är fel.
Om du kodar på det viset så förutsätter du att tabellerna har samma struktur och då kan det lika gärna vara en tabell.
1 miljon poster är inte mycket om du har vettiga index.

Nåja, tillbaka till problemet...

som @anders säger problemet har inte med tabellnamnet att göra utan det är något med datatyper.

369 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
118 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)