Avatar billede tdh1309 Juniormester
23. august 2005 - 09:51 Der er 12 kommentarer og
1 løsning

Variable uses an Automation type not supported in VBScript

Jeg eksekverer nedenstående query sql (MySQL):
select datatypes.datatypeid, datatypes.name from datatypes, dimsstations where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid=1492 ORDER BY dimsstations.DataTypeID ASC;

Jeg vil så prøve at tilgå mit result ved:
response.write DataTypesRS(0).value &" ->" & DataTypesRS(1).value&"<br>"

Og får fejlen fra overskriften.
Hvis jeg i stedet kører queryen:
select * where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid=1492 ORDER BY dimsstations.DataTypeID ASC;

Kommer der ingen fejl.

Gør jeg noget galt, eller er det bare sådan det skal være?
Avatar billede fennec Nybegynder
23. august 2005 - 09:59 #1
Jeg kan heller ikke forstå hvorfor det ikke virker med kolonnenummer, men MySQL kan være anderledes her end andre databaser.

Har du prøvet at angive kolonne navnet i stedet ???
response.write DataTypesRS("datatypeid").value &" ->" & DataTypesRS("name ").value&"<br>"
Avatar billede busschou Praktikant
23. august 2005 - 10:00 #2
jeg kan ikke forstå du benytter .value
Det gør jeg aldrig selv, men ved ikke om det gør nogen forskel
Avatar billede tdh1309 Juniormester
23. august 2005 - 10:02 #3
1. Det eksempel jeg skrev virkede virker nu faktisk heller ikke.
2) Jeg har forsøgt som du skrev, og jeg får samme fejl
Avatar billede busschou Praktikant
23. august 2005 - 10:02 #4
jeg kan som fennec heller ikke forstå det ikke virker med kolonne numre. For det burde jo ikke have noget med mysql at gøre
Så snart du har hentet dit recordset ud så ligger det vel tilgængeligt i en variable i vbscript og der er det jo normalt muligt at referere til såvel navn som nummer
Avatar billede busschou Praktikant
23. august 2005 - 10:03 #5
er det så ikke fordi du benytter .value frem for blot
response.write DataTypesRS(0) &" ->" & DataTypesRS(1)&"<br>"
Avatar billede tdh1309 Juniormester
23. august 2005 - 10:04 #6
Har lige forsøgt uden .value, det giver ingen forskel
Avatar billede busschou Praktikant
23. august 2005 - 10:06 #7
hvordan erklærer du dit recordset?
Kan vi se hele sammenhængen?
Avatar billede tdh1309 Juniormester
23. august 2005 - 10:08 #8
Håber dette er uddybende nok:

Set DataTypesRS = GetDIMSDatatypes (MyUserConn, 1492)
response.write DataTypesRS(0) &" ->" & DataTypesRS(1)&"<br>"

function GetDIMSDatatypes (cnn, intPointID)
  Dim arrUsers, strWhere, strExt, strSQL
  strExt=""
  'strSQL = "select distinct datatypes from dimsstations where pointid="&intPointID&" ORDER BY DataTypeID ASC;"
  'strSQL = "select * from datatypes, dimsstations where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid="&intPointID&" ORDER BY dimsstations.DataTypeID ASC;"
  'strSQL = "select * from datatypes, dimsstations where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid="&intPointID&";"
  'strSQL = "select datatypes.datatypeid, datatypes.name from datatypes, dimsstations where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid="&intPointID&" ORDER BY dimsstations.DataTypeID ASC;"
  strSQL = "select distinct datatypes.datatypeid as datatypeid, datatypes.name as name from datatypes, dimsstations where datatypes.datatypeid=dimsstations.datatypeid and dimsstations.pointid=1492;"
  response.write "<hr>strSQL<hr>" & strSQL & "<hr>"
  Set GetDIMSDatatypes = Nothing
  Set GetDIMSDatatypes = MakeSQL(cnn,strSQL)
End function
Avatar billede busschou Praktikant
23. august 2005 - 10:09 #9
hvad laver MakeSQL ?
Avatar billede tdh1309 Juniormester
23. august 2005 - 10:13 #10
Fører min statement af:
Function MakeSQL(cnn,SQL)

    On Error Resume Next

    'Response.Write SQL & "<BR>" & vbCrLf

    If cnn is Nothing then
        ' return nothing
        Set MakeSQL = Nothing
    Else
        Set RS = CreateObject("ADODB.RecordSet")
        If Err And errMessage="" then
            errMessage = Err.Description
            Err.Clear
        End If
        RS.Cursorlocation = 3
        RS.Open SQL, cnn
        If Err.Number = -2147467259 Then
                    Err.Clear
        End If
        if Err Then
            Response.Write "Error statement:" & SQL & "<BR>"
            Response.Write "Error description:" & Err.Description & "<BR>"
        End If
        If Err And errMessage="" Then
            errMessage = Err.Description & ".Error statement:" & SQL
            Err.Clear
            Set MakeSQL = Nothing
        Else
            Set MakeSQL = RS
        End If
    End if

End Function
Avatar billede busschou Praktikant
23. august 2005 - 10:18 #11
ok det kunne muligvis skyldes dit valg af cursorlocation, det er umiddelbart det eneste jeg kan finde på, uden være helt sikker da jeg ikke er inde i hvad cursorlocation præcist gør
Avatar billede tdh1309 Juniormester
23. august 2005 - 10:20 #12
Super tak for det.
Hvis jeg fjerner linien RS.Cursorlocation = 3 virker det umiddelbart.
Så kommer der lige et del spørgsmål, hvad gør Cursorlocation?

Nå men tak for hjælpen, kom med et svar så vi kan afregne.
Avatar billede busschou Praktikant
23. august 2005 - 10:25 #13
cursoren styrer jo hvordan der navigeres rundt i dine records
Så vidt jeg kan forstå her
http://www.w3schools.com/ado/prop_cursorlocation.asp
Så betyder location hvor den skal finde informationer om cursoren
3 så er den sat til noget med client, og det lyder underligt på mig, derfor jeg tænkte det kunne være det som gjorde det
Men mere tjek end det har jeg ikke på det .... :o/
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