Update 09-05-2006

Met de update naar versie 8.0.2 wordt het de hackers moeilijker gemaakt in te breken in  een database (SQL injection). De code achter een aantal Server Behaviors werd hiervoor aangepast.
Volgende Server Behaviors reageren nu anders:

  • Recordset with a filter
  • Insert Record server behavior
  • Update Record server behavior
  • Delete Record server behavior
  • Log In User
  • Check New User
  • Master Detail Page Set
  • Record Insertion Form Wizard
  • Record Update Form Wizard
  • Values for the second parameter of the CreateParameter method

Deze wijzigingen hebben tot gevolg dat u een aantal oefeningen in het handboek zal moeten aanpassen.

Type van een variabele in een recordset (Recordset in Advanced Mode).

Een variabele binnen een recordset kende voorheen 2 waardes (Default Value en Runtime Value). Vanaf versie 8.0.2 moet u aan een variabele 4 eigenschappen toekennen:

  • Name.
  • Type. Kies hier Numeric voor getallen (bijvoorbeeld id's) of Text (voor tekst strings). De types Boolean en Date worden in onze toepassingen niet gebruikt.
  • Value: dit is de Default Value uit vorige versies.
  • Runtime Value.

Een variabele verwerken in een recordset (Recordset in Advanced Mode).

Omdat u het type van de variabele vanaf nu meegeeft in de declaratie, mag u het type niet meer in de query verwerken.
In de meeste toepassingen (bijvoorbeeld met een zoekfunctie) werd een STRING als volgt verwerkt in de query (zie hst 12.6):

  • WHERE titel LIKE '%MMColParam%'

Wordt:

  • WHERE titel LIKE %MMColParam%
    (Dus zonder apostrof rond %MMColParam%.)

Een voorbeeld

Variabelen herbruiken (Recordset in Advanced Mode).

Ook nieuw is dat een variabele binnen een query maar eenmaal mag gebruikt worden. Voor bepaalde query's zal u dus extra variabelen moeten aanmaken (zie bijvoorbeeld hst 12.7).

  • WHERE titel LIKE '%MMColParam%' OR isbn LIKE '%MMColParam%'

Wordt:

  • WHERE titel LIKE %MMColParam% OR isbn LIKE %var2%
    (Ook hier zonder apostrofs.)

Geef de variabele var2 net dezelfde eigenschappen als de variabele MMColParam.

Een voorbeeld

Commands: Insert, Update en Delete.

Net zoals bij een recordset moet u bij een command twee extra eigenschappen aan een variabele toekennen, namelijk Type en Size. De eigenschappen Type en Size kan u aflezen uit het Databases palet of uit het Bindings palet.

Als voorbeeld het Delete Command uit hst 12.10.2.

Fouten in 8.0.2

Naast de toch wel belangrijke nieuwigheden in versie 8.0.2 zijn er spijtig genoeg ook enkele foutjes ingeslopen.

Insert/Update datumvelden in Access (fout in versie 8.0.2).

Een datumveld zet u best in het formaat jjjj-mm-dd als u deze aan een database wil toevoegen of aanpassen (zie hst 13.5).
Als u echter een OLE DB connectiestring gebruikt  (de aanbevolen connectie), dan worden sommige data foutief in de database geplaatst (maand en dag worden omgewisseld).
Dit kan u oplossen door de OLE DB connectiestring te vervangen door een ODBC connectiestring.

Update en Delete Server Behavior op één pagina (fout in versie 8.0.2).

Beide Server Behaviors genereren een fout indien ze SAMEN op één pagina voorkomen. (De variabele MM_editRedirectUrl wordt tweemaal gedimensioneerd.)
Dit kan u makkelijk oplossen door in de broncode één van deze definities in commentaar te zetten.

  • 'Dim MM_editRedirectUrl
    (Apostrof voor Dim plaatsen.)
MM_XSLTransform error:
"http://rss.adobe.com/www/support/recent/recent_dw.xml" is not a valid XML document.
reason: XML document must have a top level element.
error code: -1072896680
file position: 0
line: 0
character position: 0