Toon posts:

[ASP]error op tijdstip?

Pagina: 1
Acties:

Verwijderd

Topicstarter
[Probleem is ondertussen opgelost, ik heb 3 velden voor telefoonnummers op type number staan waardoor ik de grotere telefoonnummers niet kon opslaan... maar goed ik maak er even text van en het is opgelost]

Hallo allemaal,

Ik ben een website aan het ontwikkelen voor een bedrijf en naar mijn idee al een aardig eind gevorderd. Nu heb ik echter een inschrijf pagina voor persoonsgegevens waarvan ik zeker weet dat de code goed is aangezien ik deze al minstens 30 keer doorgespit heb. De pagina werkte toen ik het af had ook gewoon maar om iets over 1 's nachts gaf ie ineens de volgende error:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/functions.asp, line 337

functions.asp line 337:
dbConn.Execute(sSQL)

de hele functie:
function dbquery(sSQL)
Dim dbConn
Set dbConn = Server.CreateObject("ADODB.Connection")
dbConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\DB\db.mdb"))
dbConn.Execute(sSQL)
dbConn.close
end function

De query laat ik maar even achterwege aangezien het hier onmogelijk aan kan liggen tenzij de date() functie op de betreffende tijdstippen een ongeldige waarde retourneert.

Ik had niks gewijzigd dus ik vond het al vreemd maar toen ben ik dus de code gaan doorkijken, en ik kon niks vinden. Een vriend van mij die er nog wel meer verstand van heeft dan ik heeft dit ook nogmaals gedaan maar kon ook niks vinden.

Je zou zeggen dat het aan de query ligt maar aangezien ik deze uitgebreid getest heb in acces en ook na het invullen van het formulier nog eens op het scherm tover om hem te checken(en ja in alle velden staan waardes), kan ik toch wel vaststellen dat de code MOET kloppen. Ook begint de pagina om een uur of 2 smiddags weer te werken terwijl ik dus niks verander. Het ligt niet aan mijn iis want die heb ik ook al duizend keer gerestart zonder resultaat behalve gister om 2 uur smiddags, maar ik vraag me af of het toen echt aan het restarten van de server lag.

Ik ook zitten denken aan het feit dat ik de engelse office xp geinstalleerd heb met de nederlands talenpack van word 2000 maar het lijkt me sterk dat het hieraan ligt.(ik gebuik dus acces van office xp voor mijn database). Maar als het daar aan kan liggen danhoor ik het graag.

Volgens mij heb ik dus alles wel zo'n beetje gehad maar kan maar niet vinden waar het aan ligt. Mocht iemand het weten, ik hoor het graag. Alvast bedankt voor jullie reacties

[ Voor 6% gewijzigd door Verwijderd op 07-05-2004 14:19 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat doe je met data in je query... Die mis ik dus :)

Waarschijnlijk krijg je een bepaalde datum formaat terug waar je db / asp niet verder mee kan.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
het ligt dus waarschijnlijk wel aan je query....

waarschijnlijk returnt je date() een waarde die niet in de database veld past, kijk eens of de lcid's gelijk zijn...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Topicstarter
Dit is de query

"INSERT INTO tblAanbieders VALUES (" & session("aanbiederid") & ",'" & user & "',0,Date(),'" & wachtwoord & "','" & voornaam & "','" & achternaam & "','" & voorletters & "'," & ptel & "," & pfax & "," & mobiel & ",'" & plaats & "','" & postcode & "','" & straat & "'," & huisnr & ",'" & toevoeging & "','" & email & "','" & gdatum & "','" & gplaats & "','0', '0', 0, 0)"

ik heb em nog even op de pagina gezet dus als je het wil bekijken ga dan naar
http://213.93.61.152/inschrijvenv.asp
en dan moet je even een fout maken ergens anders krijg je meteen een error page. Het zou dus ook heel misschien kunnen zijn dat het weer werkt maja dan werkt ie vannacht weer niet dus ik wil het toch even opgelost hebben.

Verwijderd

Topicstarter
Die lcid zou het inderdaad wel eens aan kunnen liggen, ik heb hier nog nooit naar gekeken maar ik ga eens kijken of ik dit kan toepassen

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
wat voor type veld is het veld in de database? en wat returned date() voor tijd?

en schrijf je query eens naar het scherm.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Topicstarter
de datum staat in de database op Date/Time, zonder verdere properties gezet. De query staat als het goed is op het scherm en wat date() voor waarde returned ga ik nu bekijken.

Verwijderd

Topicstarter
Als ik de datum via een sql query in acces met date() in een losse tabel invoer met een kolom van type Date/Time dan krijg ik gewoon als datum: 7-5-2004,
Ik vrees dus dat het hier toch echt niet aan kan liggen

[ Voor 12% gewijzigd door Verwijderd op 07-05-2004 13:39 ]


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
is het access?

zet je date eens tussen # ...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Topicstarter
nope # is het niet en het is wel acces(geeft een foutmelding van de query), maar ondertussen doet ie het wel weer tijdstip 13:46 en ik heb dus helemaal niks veranderd........................ Echt te vaag gewoon ik snap maar niet waar het aan ligt
correctie: hij werkt weer niet meer. :'(

[ Voor 9% gewijzigd door Verwijderd op 07-05-2004 13:49 ]


Verwijderd

heeft het met de server te maken? Engelse/US manier van datum lezen en Europese manier. (het omdraaien van de dag en maand)

Verwijderd

Topicstarter
denk het niet want in acces geeft ie dus gewoon als date() de normale datum van vandaag: 7-5-2004

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
de error zegt:

Data type mismatch in criteria expression

dus probeer je iets in een veld te stoppen wat er niet in kan (bijv een string in een int of een string in een dateveld)

dus print je query naar het scherm en probeer te repliceren waar het fout ging...

(bijv een mail scriptje maken dat de query mailt als er een error op treed. (oid)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 07 mei 2004 @ 13:51:
denk het niet want in acces geeft ie dus gewoon als date() de normale datum van vandaag: 7-5-2004
Als je die query output naar je scherm en dan handmatig toevoegt werkt het dan wel :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
de query staat op het scherm, als je bij postcode ff hhhhhh invult en bij de rest goeie zooi dan krijg je een query die wel klopt met de database maar die niet mag vanwege de onjuiste invoer door de asp code, hij voert em dan dus niet uit maar je krijgt wel een query die moet kloppen in database.

Verwijderd

Ik den kdat het enige dat je hier kunt doen om te debuggen is om netjes errorhandling in te bouwen, en als het fout gaat dan het uit gevoerde SQL-statement in een bestand te laten loggen ( dus met alle variabelen al ingevuld ). Dan krijg je in ieder geval een overaicht van waar het fout zit.

Verwijderd

Topicstarter
Ik heb de query in acces geprobeerd en het valt me op dat het de ene keer wel werkt en de andere keer niet, op de een of andere manier worden 2 telefoon opslag velden niet gezet

Verwijderd

Topicstarter
en volgens mij snap ik wat het probleem is, de velden hebben als type number en deze hebben niet voldoende cappaciteit om de wat grotere telefoonnummers op te slaan :P , stupid foutje, maja natuurlijk wel van geleerd...

Verwijderd

Verwijderd schreef op 07 mei 2004 @ 14:04:
Ik heb de query in acces geprobeerd en het valt me op dat het de ene keer wel werkt en de andere keer niet, op de een of andere manier worden 2 telefoon opslag velden niet gezet
Laat van iedere soort ( goed en fout ) er eens eentje zien, misschien dat we dan kunnen helpen.

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 19-05 14:10
Ik heb ook regelmatig het probleem van de TS.

Sindsdien laat ik eerst de datum veranderen door onderstaande functie en sindsdien NOOIT meer problemen gehad.

De functie is:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function MediumDate(str)
    Dim aDay
    Dim aMonth
    Dim aYear

    aDay = Day(str)
    aMonth = MonthName(Month(str),True)

    IF aMonth = "mrt" THEN
        aMonth = "mar"
    END IF
    IF aMonth = "mei" THEN
        aMonth = "may"
    END IF
    IF aMonth = "okt" THEN
        aMonth = "oct"
    END IF

    aYear = Year(str)

    MediumDate = aDay & "-" & aMonth & "-" & aYear
End Function


Als je het op een engelse server gebruikt kun je de - vervangen door een / en de aDay en aMonth omdraaien!

Hoop dat je er wat aan hebt :)

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


Verwijderd

Topicstarter
thx, die ga ik zeker gebruiken, je weet maar nooit waar het goed voor is. :)
Pagina: 1