Toon posts:

SQL-vraag uitvoeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
IN ASP; voor de wijsneuzen <% %> ?!


Het onderstaande script krijg ik niet aan het werk; Deze is verwerkt in de pagina die komt na het invoer-formulier.

Heb reeds aantal dingen geprobeerd maar omdat ik nieuw ben weet ik nog niet wat hoe en iets moet dus jah.!

Deze werkt alleen niet, en het probleem licht hier (even opgepikt uit het volledige script):
<!-- De SQL-vraag uitvoeren -->
<% Set Opvraag= Verbinding.Execute (SQLvraag) %>

------------------------

Kan iemand mij helpen?


<!-- Meegezonden data van formulier plaatsen i.h. geheugen.
database= beheer.mdb
tabel= klanten
-->
<%
Vbedrijfsnaam= Request.Form( "bedrijfsnaam")
Vaanhef=Request.Form( "aanhef" )
Vnaam= Request.Form( "naam" )
Vadresnr= Request.Form ( "adresnr" )
Vpostcode= Request.Form ( "postcode" )
Vwoonplaats = Request.Form ( "woonplaats" )
Vtelefoonnummer = Request.Form ( "telefoonnummer" )
Vverkoper = Request.Form ( "verkoper" )
%>

<!-- Connect with db -->
<%
Dim cnDB 'Als ADODB.Connection
Set cnDB = Server.CreateObject("ADODB.Connection")
cnDB.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("beheer.mdb")
cnDB.Open
%>

<!-- Een SQL vraag maken -->
<% SQLvraag = "INSERT INTO klanten ( bedrijfsnaam, aanhef, naam, adresnr, postcode, woonplaats, telefoonnummer, verkoper ) VALUES ( '" & Vbedrijfsnaam & "', '" & Vaanhef & "', '" & Vnaam & "', '" & Vadresnr & "', '" & Vpostcode & "', '" & Vwoonplaats & "', '" & Vtelefoonnummer & "', '" & Vverkoper & "')" %>

<!-- De SQL-vraag uitvoeren -->
<% Set Opvraag= Verbinding.Execute (SQLvraag) %>

<!-- De verbinding sluiten -->
<%
Verbinding.Close
Set Verbinding = Nothing
%>

[ Voor 22% gewijzigd door Verwijderd op 02-05-2003 23:39 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En wij mogen raden wat er niet werkt?

Wat bedoel je nu? Welke foutmelding krijg je? Wat is de bedoeling? Waar gaat het fout?

Aangezien je nieuw bent: Welkom in Programming en Webscripting, ook wel PW genoemd. Ik zie ook dat dit een van je eerste vragen is.

Om het geheel een beetje te stroomlijnen, en er voor te zorgen dat de vragen voor iedereen duidelijk zijn en je een goed antwoord c.q. hint kan krijgen, hebben ze hier een stappenplan ontwikkeld hoe je een goede post kan maken. :)

Kan je misschien je post aanvullen met de info uit P&W Beleid - stappenplan ?


Kan je verder ook code tags gebruiken?
[code=asp][/code]

Dat verduidelijkt de boel enorm. :)

[ Voor 148% gewijzigd door gorgi_19 op 02-05-2003 23:38 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Het enige waar ik achter ben, is dat het ASP is, en er iets fout gaat. Meer weet ik niet; ik weet niet eens wat er fout gaat. Het enige wat ik kan doen is je een debughandleiding geven voor ASP-problemen. :) 't is nog in beta-staat, maar het moet je in ieder geval wel een stuk verder helpen om het probleem boven water te krijgen. :)
4.0 Debuggen

Het debuggen van een asp-applicatie wordt door veel mensen als lastig ervaren, terwijl dit helemaal niet zo hoeft te zijn. Om een probleem op te lossen, is het van belang om er achter te komen wat er fout gaat. Om achter een fout te komen, hanteer ik altijd het volgende stappenplan:

1. Controleer op Norton Antivirus.
Zet Script Blocking uit; deze zorgt er voor dat een pagina’s niet meer laden. Zie hiervoor ook http://service1.symantec....6a16006afce6?OpenDocument

2. Controleer of een simpele pagina het wel doet.
Een goed voorbeeld voor VBScript is:
ASP:
1
2
3
<%
Response.Write "Hello world"
%>

Als je dit niet op je scherm krijgt, dan heb je geen probleem met je code, maar zit er iets anders fout. Een mogelijke fout kan bijvoorbeeld de Script Blocking van Norton Antivirus zijn.

3. Zorg dat je de foutmelding ziet.
Standaard staat Internet Explorer zo ingesteld, dat je alleen ‘vriendelijke foutmeldingen’ ziet, dus zonder errors en code, terwijl je dit nu net wel wil zien. Je kan deze optie uitzetten door:

Tools > Internet Options > Advanced > Show Friendly http Errors uitvinken (staat onder het kopje ‘browsing’)


4. Comment eventuele “On Error Resume Next”
Dit statement zorgt er voor dat fouten genegeerd worden, terwijl je ze juist wel wilt zien.
Plaats er daarom een single quote voor (zodat het als commentaar en niet als statement wordt gezien) of haal het tijdens het debuggen weg. Immers, de fouten moeten nu juist te voorschijn komen.

Normaal:
ASP:
1
2
3
Option Explicit
Dim strQuery 
strQuery = "Select * FROM tabelnaam"

‘Debugmodus’:
ASP:
1
2
3
' Option Explicit
Dim strQuery 
strQuery = "Select * FROM tabelnaam"


5. Zorg dat je de ‘foute’ variabele op het scherm krijgt
PHP kent error reporting, ASP.Net heeft het Tracing object; asp heeft niets van dit alles.
Wil je debuggen, dan zul je het op de handmatige wijze moeten doen door middel van Response.Write:
ASP:
1
2
3
4
5
Dim strSQL
strSQL = "Er gaat iets fout in dit SQL statement"

Response.Write strSQL       ' Zet het statement op je scherm
Response.End            ' Eindig de uitvoering van je script.


6. Tik de foutmelding, eventueel gedeelten daarvan, in op Google.
Je bent niet de eerste met de fout! Zorg er wel voor dat je de engelse foutmelding intikt. Google is een enorm snelle bron om oplossingen te vinden, met voorbeeldcode.
Krijg je geen foutmelding, controleer dan je code op oneindige loops.

[ Voor 42% gewijzigd door gorgi_19 op 02-05-2003 23:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Misschien is dit iets duidelijker: (de foutmelding)

Runtime-fout Microsoft VBScript fout '800a01a8'

Object vereist: ''

/peug/klant_info.asp, regel 30


----- De fout zou zitten in het onderstaande:

<!-- De SQL-vraag uitvoeren -->
<% Set Opvraag= Verbinding.Execute (SQLvraag) %>

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Waarom wil je de resultwaarde van een insert statement in 'iets' stoppen? Imho niet nodig.

Om op de foutmelding in te gaan:
Daarnaast geeft het al gelijk aan: "iets". Je hebt "iets" niet gedefinieerd (object required); wat is het? Recordset? Adodb connection? iets anders?.

Echter, je wilt dit "iets" (lees: Verbinding) wel gebruiken.

[ Voor 34% gewijzigd door gorgi_19 op 03-05-2003 10:21 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Je maakt een connection object aan met de naam cnDB. Gebruik deze in plaats van de niet bestaande Verbinding.

Tips (in willekeurige volgorde):
  • Gebruik "Option Explicit"
  • Bij queries die geen (nuttig) resultaat teruggeven is het niet echt zinvol om deze in een recordset te stoppen, dus gewoon cnDB.Execute(SQL) is voldoende
  • Zet je commentaar in de ASP code in plaats van html remarks te gebruiken, deze komen terug in de source en dat ziet er zo knullig uit (imho).

Today's subliminal thought is:

Pagina: 1