03. januar 2007 - 14:13Der er
5 kommentarer og 1 løsning
Problemer med INSERT INTO
På en side skal brugeren indsætte et selvvalgt antal sætninger. Først vælges hvormange sætninger man vil indtaste, hvorefter der genereres et dertil afpasset antal tekstfelter. Efter at disse tekstfelter er udfyldt skal teksterne indsættes i en database. Jeg har prøvet at stykke et script sammen der tager højde for det ikke på forhånd fastsatte antal felter. Men jeg får fejlmeddelelsel: En sætning var ventet (udfor linien med INSERT INTO). <% If (CStr(Request("MM_insert")) = "frm_insert") Then If (Not MM_abortEdit) Then ' execute the insert Dim MM_editCmd 'Dim intCount, numFields Set MM_editCmd = Server.CreateObject ("ADODB.Command") MM_editCmd.ActiveConnection = MM_connDiktat_STRING MM_editCmd.CommandText = "INSERT INTO tblDiktat (diktat_navn, diktat_beskrivelse, diktat_type" intCount=1 do while intCount<=numFields &", opg"&intCount&", vis_ord"&intCount&", rigtigt_ord"&intCount intCount=intCount+1 loop &", forfatter) VALUES (?, ?, ?"&_ intCount=1 do while intCount<=numFields&_ ", ?"&_ intCount=intCount+1 loop&_ ", ?)" '
ps. jeg ved godt at der mangler forskellige variablers værdier, men de kommer andensteds Kan nogen mon gennemskue hvad jeg skal gøre her?? /Ole
Ja, du kan ikke sammensætte strenge på den måde i VBScript. Du skal nok vælge at gemme den genererede SQL-sætning i en midlertidig streng og så tildele den CommandText når den er genereret færdig. Noget i stil med dette:
' execute the insert Dim MM_editCmd 'Dim intCount, numFields Set MM_editCmd = Server.CreateObject ("ADODB.Command") MM_editCmd.ActiveConnection = MM_connDiktat_STRING sql = "INSERT INTO tblDiktat (diktat_navn, diktat_beskrivelse, diktat_type"
Jeg har flyttet den linie med CommandText ned i bunden af koden. Det er egentlig blot et spørgsmål om hvordan du samler din SQL-sætning... prøv evt. den kode jeg har vist overnfor.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.