Parametrized query op Access

Pagina: 1
Acties:

  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 19:33
Ik probeer een web-applicatie in elkaar te zetten. Hiervoor wil ik de queries binnen Access houden (iedereen heeft denk ik wel eens met access zitten spelen, en Access kan zelf queries uitvoeren). Dit heeft als voordeel dat al mijn queries centraal opgeslagen zijn, en als er een query niet klopt, dan kan ik deze vrij snel terug vinden.

Nu wil ik de parameters eerst ophalen met het adodb.command-object. Dit kan met

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub ExecuteQueryParams(strQuery, arrParams)
  Set cnnSQL = Server.CreateObject("ADODB.Connection")
  Set cmdSQL = Server.CreateObject("ADODB.Command")

  cnnSQL.open Application("datapath")       'Staat in global.asa
  cmdSQL.CommandText = strQuery
  cmdSQL.NamedParameters = True
  cmdSQL.Parameters.Refresh

  For i = 1 to Ubound(arrParams)
    Response.Write arrParams(i) & "<br>"
    cmdSQL.Parameters(i).Value = arrParams(i)
  Next


Nu wil het script de cmdSQL.Parameters.Refresh niet uitvoeren. Iemand enig idee waar ik dit moet zoeken?

Ik heb GoT, Google, Devguru, W3Schools, MSDN, etc al afgestruind, maar de oplossingen die zij hebben werken niet.

[ Voor 6% gewijzigd door HansMij op 24-04-2003 20:23 ]


Verwijderd

Je hebt in je queries wel '?' (zonder quotes) staan op de plaatsen waar de param's moeten komen?
Verder heb je een geldige connectionstring? (datapath alleen lijkt me niet echt voldoende)

  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 19:33
De connectionstring klopt wel, Ik kan met de aloude queries (tekst typen en naar cmdSQL pompen) wel data ophalen. De database wordt dus wel gevonden. Dat ? komt me onbekend voor, waar moet die precies komen, en waar is die precies voor?

Verwijderd

Ik dacht dat je in Access queries vraagtekens kon gebruiken op de plaatsen waar je parameters wou, maar dat weet ik niet zeker...

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Verwijderd schreef op 24 april 2003 @ 21:54:
Ik dacht dat je in Access queries vraagtekens kon gebruiken op de plaatsen waar je parameters wou, maar dat weet ik niet zeker...
Of je hiermee via ADO je parameters boven tafel krijgt weet ik niet, maar je kunt met @parameter in je query parameters aangeven:
code:
1
SELECT x, y FROM z WHERE x = @waarde;

(Niet met een vraagteken dus :) )

  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 19:33
De query werkt opzich wel, ik krijg alleen een syntax error op mijn parameters.

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Vrijdagmiddag, dus even spelen:

Wat ik mis in jouw code is:
code:
1
2
cmdSQL.ActiveConnection = cnnSQL
cmdSQL.CommandType = adCmdStoredProc (o.i.d.)


Ik heb hetzelfde eens geprobeerd in een ASP-pagina met een query in Access en een stored procedure in een MS SQL database. In Access krijg ik bij Parameters.Count altijd 0 als waarde :|
Bij MS SQL krijg ik wel de parameters, inclusief een paramater "RETURN_VALUE".

Kortom, ik kan je niet echt helpen geloof ik. Tenzij MS SQL een alternatief is :)
Pagina: 1