Avatar billede s0mmer Nybegynder
05. februar 2009 - 11:11 Der er 15 kommentarer og
1 løsning

Fejl i command

Hej eksperter,

Følgende simple kode:
    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=SQLOLEDB;Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;"
    strSQL = "SELECT * FROM aMenu"

    set cmd = Server.CreateObject("ADODB.Command")
    set cmd.ActiveConnection = Conn
    cmd.CommandType = adCmdText
    cmd.CommandText = strSQL
    Set rs = cmd.Execute()
   
    Do until rs.eof
        Response.write("test")
    rs.movenext
    Loop
   
    rs.close
    Conn.close
    set rs = nothing
    set Conn = nothing

Giver fejl:
ADODB.Command error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

Og ja jeg har meta header for ADO
Avatar billede s0mmer Nybegynder
05. februar 2009 - 11:25 #1
Løste selv. Erstattede asCmdText med 1
Avatar billede softspot Forsker
05. februar 2009 - 11:38 #2
Jamen, så manger METADATA-elementet da...(?)
Avatar billede s0mmer Nybegynder
06. februar 2009 - 10:54 #3
softspot > Kan du forklare?
Avatar billede softspot Forsker
06. februar 2009 - 11:01 #4
Fordi konstanten adCmdText er defineret i det typelibrary som METADATA-elementet refererer til og hvis det hjælper at udskifte adCmdText med 1, så er det fordi adCmdText ikke findes og dermed konkluderer jeg at METADATA-elementet ikke er kendt på den side, hvor fejlen opstår. Det er altså, i mine øjne, symptombehandling at udskifte konstanten adCmdText med 1, da der åbenbart er noget andet galt (som måske kan få konsekvenser andre steder i systemet). Derfor er det bedre at løse kilden til problemet, end at løse de problemer som det egentlige problem forårsager :-)

Det var jo klart som blæk...! :D
Avatar billede s0mmer Nybegynder
06. februar 2009 - 11:13 #5
softspot > Ja, så snart man lige forstår hvad der menes. Helt konkret mener du ikke at meta-tag'et er inkluderet på siden? Jeg har desværre ikke adgang til koden her, men jeg tjekker lige op på det i næste uge, så vender jeg lige tilbage :)
Avatar billede softspot Forsker
06. februar 2009 - 12:48 #6
Ja, enten på siden eller i global.asa (som jeg beskriver i min artikel om parameterisering med ASP og ADO: http://www.eksperten.dk/guide/1250).

Hvis du har inkluderet den i global.asa og det stadig ikke fungerer, skal du have undersøgt om den side der ikke fungerer evt. ligger i en "virtual application". I så fald vil den måske ikke være omfattet af den global.asa, som ligger i roden og derfor skulle have sin egen global.asa med tilhørende METADATA-element.
Avatar billede s0mmer Nybegynder
18. februar 2009 - 15:57 #7
softspot > i roden finder jeg global asa og tilføjer:
<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4"  -->

det jeg arbejder på ligger i /v2/ mappe. Og tilføjelse af meta-tagget ændrer ikke spor.

Skal der også en global.asa i /v2/ mappen?
Avatar billede softspot Forsker
18. februar 2009 - 16:22 #8
Det kommer an på om v2 definerer en ny application (en Virtual Application som f.eks. kan sættes op i IIS-management for en given mappe under et rodsite). Hvis den gør det, så skal der ligge en ny global.asa i mappen "v2", som indeholer METADATA-elementet, men ellers bør (må?) der ikke ligge en global.asa andre steder end i roden af et site (eller Virtual App).

Noget kunne dog tyde på, at du har gang i en Virtual App, hvis de ændringer du laver i global.asa ikke slå igennem på dine sider. Alternativt er din webserver ikke sat op til at genstarte applikationen når der ændres i global.asa og ændrigner vil derfor ikke slå igennem før applikationen startes (i dette tilfælde vil jeg tro man skal genstarte sitet igen i IIS-management).
Avatar billede s0mmer Nybegynder
18. februar 2009 - 16:33 #9
men.. hvis meta-tagget ligger øverst i dokumentet jeg arbejdet i.. så burde det jo ikke være nødvendigt at den ligger i global.asa?
Avatar billede s0mmer Nybegynder
18. februar 2009 - 16:34 #10
... fordi jeg oplever nogle problemer efter at bare have ændret til 1 og jeg forstår det simpelthen ikke. Meta-tagget er i alle dokumenter.
Avatar billede softspot Forsker
18. februar 2009 - 16:54 #11
Hmm... alternativet er at komponenten der er installeret på serveren ikke kan identificeres med det GUID dit METADATA-element peger på, eller at der ikke er installeret MDAC i den nødvendige version. Det ville dog være FOR mystisk, hvis dette var tilfældet (med mindre dit site ligger på en Apache Server med Chili!ASP - der er jeg ikke sikker på at det fungerer på samme måde)...

Men hvis det fungerer for andre sites på samme server eller det aktuelle site har fungeret tidligere på samme server - ja, så er jeg lidt blank i fht. hvad årsagen til problemet kan være...
Avatar billede softspot Forsker
18. februar 2009 - 16:58 #12
Når du placerer METADATA-elementet i global.asa, ligger det så således i fht. script-elementet:

<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4"  -->
<script language="vbscript" runat="server">

</script>
Avatar billede s0mmer Nybegynder
18. februar 2009 - 17:12 #13
softspot > Ja jeg prøvede både at ligge den oven- og nedenunder script tagget.

Men for at været helt konkret:
<%
'Meta-header for ADO/Command object
<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4"  -->
'===========================================================
'Get title of site ***SKAL OPDATERES***
Function getSiteTitle
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=SQLOLEDB;Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxxx;"
    strSQL = "SELECT * FROM gInfo"

    Set cmd = Server.CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = Conn
    cmd.CommandType = asCmdText
    cmd.CommandText = strSQL
    Set rs = cmd.Execute()
   
    Response.Write(rs("info"))
   
    rs.close
    Conn.close
    Set rs = Nothing
    Set Conn = Nothing
End Function

'===========================================================
%>

Når jeg caller den funktion får jeg bare fejl:
ADODB.Command error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/v2/include/dbConnect.asp, line 13

Og dette burde ikke give fejl, ikke sandt? Du skal nok få points i en anden tråd.
Avatar billede softspot Forsker
18. februar 2009 - 17:23 #14
Prøv lige dette i stedet (METADATA-elementet SKAL ligge udenfor scriptsektionen):

<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4"  -->
<%
'===========================================================
'Get title of site ***SKAL OPDATERES***
Function getSiteTitle
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=SQLOLEDB;Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxxx;"
    strSQL = "SELECT * FROM gInfo"

    Set cmd = Server.CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = Conn
    cmd.CommandType = asCmdText
    cmd.CommandText = strSQL
    Set rs = cmd.Execute()
   
    Response.Write(rs("info"))
   
    rs.close
    Conn.close
    Set rs = Nothing
    Set Conn = Nothing
End Function

'===========================================================
%>
Avatar billede s0mmer Nybegynder
20. februar 2009 - 01:45 #15
softspot > well jeg skylder dig vist nogle points :) meta-tagget var inde fra <%...
Avatar billede softspot Forsker
20. februar 2009 - 13:01 #16
Ingen årsag - gem dem til et andet spørgsmål (det ser ud til at du har nok af dem ;-))
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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