/ 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
INSERT INTO flere tabeller
Fra : Christian R. Anderse~


Dato : 20-08-07 22:26

Hej!
Jeg har en database med p.t. to tabeller, h.h.v. Participants og
ArrivalDetails. Jeg har lavet en relation mellem de to databaser,
således at ParticipantsID fra første tabel går med i den anden
tabel.

Fra en en form skal jeg have skrevet brugernes input ned i
databasen.

Jeg har lavet flg. kode, som dog melder fejl om manglende ";" i
den SQL-sætningen.

Kan nogen hjælpe med med problemet? Pft.

<%
'Dim variabler
Dim objConn
Dim strFirstname, strFamilyname, strArrivalDate, strArrivalMonth

'Database forbindelse
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.Mappath("../../../database/database.mdb")

'SQL
strSQL = "Insert into Participants (Firstname, Familyname)
values('" & Request.Form("Firstname") & "', '" &
Request.Form("Familyname") & "')"
Set objRs = objConn.Execute(strSQL)
strSQL = "Insert into ArrivalDetails (ArrivalDate, ArrivalMonth)
values('" & Request.Form("ArrivalDate") & "', '" &
Request.Form("ArrivalMonth") & "') INNER JOIN ArrivalDetails ON
Participants.ParticipantID=ArrivalDetails.ParticipantID"
Set objRs = objConn.Execute(strSQL)
%>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Finn Elmgaard (21-08-2007)
Kommentar
Fra : Finn Elmgaard


Dato : 21-08-07 20:00

"Christian R. Andersen" <cra@mail.dk> wrote in message
news:46ca06f9$0$90269$14726298@news.sunsite.dk...
> Hej!
> Jeg har en database med p.t. to tabeller, h.h.v. Participants og
> ArrivalDetails. Jeg har lavet en relation mellem de to databaser,
> således at ParticipantsID fra første tabel går med i den anden
> tabel.
>
> Fra en en form skal jeg have skrevet brugernes input ned i
> databasen.
>
> Jeg har lavet flg. kode, som dog melder fejl om manglende ";" i
> den SQL-sætningen.
>>
> <%
> 'SQL
> strSQL = "Insert into Participants (Firstname, Familyname)
> values('" & Request.Form("Firstname") & "', '" &
> Request.Form("Familyname") & "')"
> Set objRs = objConn.Execute(strSQL)
> strSQL = "Insert into ArrivalDetails (ArrivalDate, ArrivalMonth)
> values('" & Request.Form("ArrivalDate") & "', '" &
> Request.Form("ArrivalMonth") & "') INNER JOIN ArrivalDetails ON
> Participants.ParticipantID=ArrivalDetails.ParticipantID"
> Set objRs = objConn.Execute(strSQL)
> %>
>

Først vil jeg foreslå, at du lægger dine request.forms over i variabler og
anvender disse variabler i dine strSQL. Det giver et meget bedre overblik.

M.h.t. selve problemet ved jeg ikke, om jeg helt har forstået det rigtigt.
Umiddelbart ser det ud som om der til hver Navn (participant) hører én og
kun én ArrivalDate, altså en 1-1 relation. Så ud fra dette alene er der
ingen grund til at anvende 2 tabeller. Men OK, du har måske flere tabeller,
der også relaterer til Navn eller andre begrundelser, vi ikke kan se.

Jeg har aldrig set INNER JOIN anvendt på denne måde du bruger den, så jeg
kan ikke sige om det er muligt. Jeg ville i stedet løse det som følger.
Jeg antager, at du har autonummerering af dit ParticipantID. Når du har
indsat i Participant-tabellen kan du hente det netop genererede
ParticipantID og anvende dette i din næste strSQL, hvor du indsætter dette
sammen med ArrivalDate og- Month. Så har du dine keys.

Så kan du anvende joins, når du skal hente og præsentere data.

Jeg ved godt, som det tidligere er blevet fremhævet her i gruppen, at denne
metode ikke er helt sikker, idet man teoretisk set kan få fat i et forkert
ID, hvis der vælter store mængder nye poster ind lige oven i hinanden. Så
hvis det er din situation, kan du overveje en anden løsning.

Og så til sidst lige det gode gamle råd: Udskriv din strSQL ved fejlfinding.

mvh
Finn




Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409080
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste