Avatar billede frank_jensen Nybegynder
20. november 2001 - 21:06 Der er 3 kommentarer og
4 løsninger

OLEDB og Update

Jeg har følgende SQL statement :

SQL =     \"UPDATE gruppe_bruger \"
SQL = SQL & \"SET LastIP=\'\" & lastip & \"\', Counter= Counter + 1 \"
SQL = SQL & \" WHERE BrugerNr=\" & CInt(Session(\"BrugerNr\"))
BrugerDB.Execute(SQL)

Dette statement virker, hvis jeg opretter en ADO DSN less connection (strODBC = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\\webs\\xxx.dk\\db\\web.mdb\"
), men ikke med en OLEDB adgang (strODBC = \"Data Source=d:\\webs\\xxx.dk\\db\\web.mdb;Provider=Microsoft.Jet.OLEDB.4.0;\"
)

Den siger, at der er noget galt med mit statement, men hvad gør jeg galt ?

og kan det betale sig at ændre adgangen fra ADO DSN Less til OLEDB adgang ??
Avatar billede slash Nybegynder
21. november 2001 - 08:01 #1
Nu er det længe siden jeg har knoklet med Access og ASP, men kunne det være at din db er Access97 men du bruger oledb kaldet til access2000????


OLEDB kald til Access 2000:
  strConnect = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\webs\\xxx.dk\\db\\web.mdb;\"

OLEDB kald til Access 97:
  \'strConnect = \"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=d:\\webs\\xxx.dk\\db\\web.mdb;\"
Avatar billede frank_jensen Nybegynder
21. november 2001 - 08:32 #2
Det er en Access 2000 database...  og når jeg læser i den, kan jeg godt bruge en OLEDB adgang, men når jeg vil udfører ovenstående UPDATE, går det galt...

Det kører på en Win2K server...
Avatar billede orca Nybegynder
21. november 2001 - 08:43 #3
Denne linie dur ikke:
SQL = SQL & \"SET LastIP=\'\" & lastip & \"\', Counter= Counter + 1 \"

Prøv med denne istedet:
SQL = SQL & \"SET LastIP=\'\" & lastip & \"\', Counter=\" & Counter + 1

Mvh Mark
Avatar billede frank_jensen Nybegynder
21. november 2001 - 08:47 #4
Mark ->
Counter= Counter + 1 er fordi, at jeg vil have min DBMS til at lægge en til værdien i Counter...

ved at dele den op som du foreslå, bliver det tolket som en lokal variabel og ikke en addering i SQL, ikke ??
Avatar billede eagleeye Praktikant
21. november 2001 - 12:40 #5
Prøv evt a sætte () omkring udregningen, det er kun et gæt jeg har ikke lige prøvet at teste det:

SQL =    \"UPDATE gruppe_bruger \"
SQL = SQL & \"SET LastIP=\'\" & lastip & \"\', Counter= (Counter + 1) \"
SQL = SQL & \" WHERE BrugerNr=\" & CInt(Session(\"BrugerNr\"))
BrugerDB.Execute(SQL)
Avatar billede frank_jensen Nybegynder
22. december 2001 - 10:46 #6
så må vi jo lukke...

desværre hjalp ingen af svarene på mit svar, så jge brugte istedet ADO som altid :o(...

Men tak for forsøget...
Avatar billede orca Nybegynder
22. december 2001 - 14:26 #7
Mange tak for point... meget gavmildt siden vi ikke kunne hjælpe :).

Mvh Mark
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester