ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
5598
5598
EMPFEHLEN
-
16.05.02 13:52 #1Quentin Tutorials.de Gastzugang
hi!
bin gerade dabei eine activex-dll mit visual basic zu erstellen. leider gibt es häufig punkte an denen ich stecken bleibe. so einen punkt habe ich jetzt wieder erreicht. ;((
das projekt nennt sich "PPMTEST", das klassenmodul heißt "CONTENT".
beispiel ausgabedatei:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
dim mycontent set myCONTENT = Server.CreateObject("PPMDDDAK.CONTENT") mycontent.testing myCONTENT.ConnectToDB myCONTENT.ExecuteQuery "select * from myusers" Do While Not myCONTENT.EOF myContent.WriteField("UserName") & "<br>" myCONTENT.Movenext Loop myCONTENT.CloseRS myCONTENT.DisconnectFromDB set mycontent=nothing
der fehler den ich hierbei bekomme:
zeile 6: myContent.ExecuteQuery "select * from myusers"PPMDDDAK-Fehler '800a000d'
Type mismatch
/ppmTest.asp, Zeile 6
also habe ich mich damit beschäftigt ein paar testausgaben zu machen um zu sehen welche werte vorhanden sind.
die sql abfrage wird korrekt übergeben. hier der ganze code der dll:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
Public objResponse As ASPTypeLibrary.Response Public objApplication As ASPTypeLibrary.Application Public objSession As ASPTypeLibrary.Session Public rs As New ADODB.Recordset Public strConnectionString As String Public cn As New ADODB.Connection Public Sub OnStartPage(sc As ScriptingContext) Set objResponse = sc.Response Set objApplication = sc.Application Set objSession = sc.Session End Sub Public Sub ConnectToDB() strConnectionString = objApplication("CONNSTRING") cn.ConnectionString = strConnectionString cn.Open End Sub Public Sub DisconnectFromDB() cn.Close Set rs = Nothing Set cn = Nothing End Sub Public Sub WriteField(fname As String) objResponse.Write rs.Fields(fname) End Sub Public Sub CloseRS() rs.Close End Sub Public Sub ExecuteQuery(ByVal strSQLString As String) Dim cmd As New ADODB.Command cmd.ActiveConnection = cn cmd.CommandText = strSQLString cmd.CommandType = adCmdText Set rs = cmd.Execute Do While Not rs.EOF For Each Field In rs.Fields objResponse.Write rs(Field.Name) Next rs.MoveNext Loop CloseRS End Sub Public Sub testing() objResponse.Write "hell-O" rsIsOpen = False objResponse.Write "<br>rsisopen = " & rsIsOpen & "<br><br>" objResponse.Write "<br>" & objApplication("CONNSTRING") & "<br><br>" End Sub
die microsoft active data object library 2.5, sowie die asp type library wurde dem projekt korrekt hinzugefügt. die methode TESTING erledigt die ausgaben korrekt und auch der zugriff auf die application-variable hat funktioniert.
dann habe ich versucht herauszufinden in welcher zeile der executequery methode der fehler
auftritt indem ich testausgaben gemacht habe:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Public Sub ExecuteQuery(ByVal strSQLString As String) objResponse.write "1<br>" Dim cmd As New ADODB.Command objResponse.write "2<br>" cmd.ActiveConnection = cn objResponse.write "3<br>" cmd.CommandText = strSQLString objResponse.write "4<br>" cmd.CommandType = adCmdText objResponse.write "5<br>" Set rs = cmd.Execute objResponse.write "6<br>" Do While Not rs.EOF objResponse.write "7<br>" For Each Field In rs.Fields objResponse.write "8<br>" objResponse.Write rs(Field.Name) objResponse.write "9<br>" Next objResponse.write "10<br>" rs.MoveNext objResponse.write "11<br>" Loop objResponse.write "12<br>" CloseRS objResponse.write "13<br>" End Sub
für testzwecke ist das vertretbar. die ausgabe kam bis zu "5<br>" das heißt doch, das der fehler bei dieser zeile aufgetreten ist: set rs = cmd.Execute, oder?
aber was passt da nicht? ich habe das projekt zuvor als exe getestet und da ist dieser fehler nicht aufgetreten. nachdem ich den code in eine dll übernommen habe fing das problem
mit dem "TYPE MISMATCH" an. doch was passt an dieser zeile nicht? ich habe schon oft queries oder stored procedures aufgerufen mit dieser zeile - in ASP dateien wohlgemerkt. woran liegt
das problem innerhalb der dll wenn es doch mit exe funktioniert hat?
liegt es an der deklaration des recordsets oder anderer variablen?
wie gesagt, als exe-projekt lief die sache einwandfrei
ich hoffe jemand kann mir helfen, die sache ist für mich persönlich ziemlich dringend
1024 dank im voraus
quentin
UPDATE
unter windows xp mit dem iis funktioniert die dll einwandfrei, unter windows nt (4... mit option pack) kommen die fehler, habe vergessen das zu erwähnen, bzw erst jetzt rausgefunden das es unter iis auf xp läuft ;((
-
Also warum das mit den verschiedenen Systemen funktioniert, weiß ich nicht... Evtl. ne fehlende Komponente oder andere Fehlerroutinen...
Aber müsstest du nit sowas wie
set rs = myCommand.execute "sqlString"
schreiben?
Denn in asp ist das ja sonst nicht vorhanden als Collection.
Aber naja, daran liegts wohl nicht...
Leider weiß ich da auch nicht weiter, trotz ner 1MB dll die hier rumliegt...
Hast du das schon mal unter nem 2000er System ausprobiert?
Denn evtl. ists wirklich nur ne Routine, die von NT nicht unterstützt wird...
-
16.05.02 17:17 #3Quentin Tutorials.de Gastzugang
naja meine einzige vermutung ist es das das visual basic zu neu ist und es daher zu problemen mit dem "alten" nt kommt... ich versuch mal ein visual basic 4 aufzutreiben und auszuprobieren ob das alles funktioniert, aber es sieht nicht gut aus ;((
-
21.05.02 12:08 #4Quentin Tutorials.de Gastzugang
wens interessiert: das thema hat sich vor 5 minuten erledigt, ich musste lediglich statt der active data objects 2.5 die active data objects 2.0 einbinden und das ding lief auch unter NT
Ähnliche Themen
-
WebServices - Type mismatch
Von MrCastle im Forum Java GrundlagenAntworten: 1Letzter Beitrag: 21.08.09, 09:38 -
Data type mismatch
Von NeMeSiS1987 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 10.04.07, 16:53 -
type mismatch ->utf8-string
Von Tailor im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 11.09.06, 11:07 -
ASP - runtime error '800a000d' - Type mismatch
Von The Motrix im Forum ASPAntworten: 3Letzter Beitrag: 22.02.05, 13:44 -
Data type mismatch in criteria expression
Von eugster im Forum ASPAntworten: 1Letzter Beitrag: 18.05.04, 21:38





Login





