lionne
Goto Top

Microsoft VBScript compilation error

Beim Ausführen des Skripts bekomme ich eine Fehlermeldung:

„Microsoft VBScript compilation error“

Kann Jemand mir sagen, was hier falsch ist?

Dim meinCount

 meinCount = oRs.Fields(0).Value 'Feld aus der Datenbank, Ergebnis von count(*)  
        
        if (meinCount = 0) then loeschDatensatz() 'ruft die Funktion loeschDatensatz()  
        else 
            protokoll logfile, "meinCount:  " & meinCount   
        end if


PS: das ist ein Teil des Programm, wo der Compiler Fehler zeigt

Danke und Gruß
Lionne

Content-Key: 173260

Url: https://administrator.de/contentid/173260

Printed on: April 16, 2024 at 14:04 o'clock

Mitglied: 60730
60730 Sep 16, 2011, updated at Oct 18, 2012 at 16:48:21 (UTC)
Goto Top
Moin,

Zitat von @lionne:
Hallo zusammen,

/Snip
\Snap
Wenn ich hier im Forum Frage stelle, versuche immer diese umzuformulieren bzw. umzubenennen, damit mein Mentor nicht draufkommt,
dass es von mir ist, falls er auch im Internet nach Informationen sucht.

Na wenns so ist, dann ist es doch klar wie Klosbrühe, du steckst mit Brammer unter einer Decke und Ihr beiden wollt uns nur heiss auf die neue Firmware machen, damit wir die Fragen besser beantworten können.

Nee nee, auf sowas fall ich nicht mehr rein, ich kaufe nur noch Rheumadecken.
PS: das ist ein Teil des Programm, wo der Compiler Fehler zeigt

Komm schon, dass das da nix halbes und schon garnix ganzes ist, dazu brauch ich nur Brain .99, eure Firmware könnt Ihr behalten.


N8
Member: bastla
bastla Sep 16, 2011 at 18:08:15 (UTC)
Goto Top
Hallo lionne!

Du solltest nicht nur eine Fehlermeldung, sondern auch eine Zeilennummer dazu erhalten ...

... aber auf jeden Fall solltest Du Dich entscheiden, ob Du ein einzeiliges oder mehrzeiliges "If" verwenden willst - also
        if meinCount = 0 then loeschDatensatz else protokoll logfile, "meinCount:  " & meinCount   
oder
        if meinCount = 0 then
             loeschDatensatz 'ruft die Funktion loeschDatensatz()  
        else 
            protokoll logfile, "meinCount:  " & meinCount   
        end if
Grüße
bastla
Member: lionne
lionne Sep 16, 2011 at 19:47:33 (UTC)
Goto Top
Hallo bastla,

vielen Dank für deine Antwort.

Gruß
Lionne
Member: lionne
lionne Sep 19, 2011 at 08:13:14 (UTC)
Goto Top
Hallo bastla,

das Problem ist immer nicht glöscht. Der Compiler zeigt Fehler: "Microsoft VBScript runtime error Type mismatch" auf Zeile 23 "if result = 0 then"

Ich verstehe nicht, was da falsch sein soll.

Danke
Lionne


 Sub ZahlDaten()

	Dim oCon, oRs, strCon, result, servername
   
	servername = "\\meinServer"     
   
    strCon = "DRIVER={Microsoft ODBC for Oracle}; SERVER="& myDb &";User Id="& myUser &";Password=" & myPWD &";"  

    Set oCon    = WScript.CreateObject("ADODB.Connection")  
    Set oRs     = WScript.CreateObject("ADODB.Recordset") 	  
   
    oCon.Open strCon	
	
	Set oRs = oCon.Execute("SELECT count(*) FROM  MyTable WHERE customername = 'TotalG' AND cast(endZeit as date) > (sysdate - 60) " )  
	
	
    'While Not oRs.EOF  
	
	oRS.movefirst 
		
	result = oRs.Fields(0).Value
		
	if result = 0 then  'compiler zeigt Fehler   
		loeschDatensatz 'ruft die Funktion loeschDatensatz()  
	else 
		protokoll logfile, "**result:  " & result   
	End if		
		
		'oRS.movenext  
	'Wend  

oCon.Close             
Set oRs = Nothing
Set oCon = Nothing

End sub
Member: bastla
bastla Sep 19, 2011 at 10:39:13 (UTC)
Goto Top
Hallo lionne!

Mach mal aus Zeile 17
If Not oRs.EOF Then
und analog dazu aus Zeile 30
End If
und platziere dazwischen noch ein passendes "Else" (für den Fall, dass kein Datensatz gefunden wurde) ...

Grüße
bastla
Member: lionne
lionne Sep 19, 2011 at 11:01:45 (UTC)
Goto Top
Hallo bastla,

ich habe eingefügt. Ich bekomme auf Zeile 23 jetzt folgende Fehlermeldung: "Syntax error".

Kann ich nicht so das count-Ergebnis in einer Variable speicher und vergleichen?

Danke und gruß
Lionne


Sub ZahlDaten()

	Dim oCon, oRs, strCon, result, servername
   
	servername = "\\meinServer"     
   
    strCon = "DRIVER={Microsoft ODBC for Oracle}; SERVER="& myDb &";User Id="& myUser &";Password=" & myPWD &";"  

    Set oCon    = WScript.CreateObject("ADODB.Connection")  
    Set oRs     = WScript.CreateObject("ADODB.Recordset") 	  
   
    oCon.Open strCon	
	
	Set oRs = oCon.Execute("SELECT count(*) FROM  MyTable WHERE customername = 'TotalG' AND cast(endZeit as date) > (sysdate - 60) " )  
	
	
    If Not oRs.EOF Then
	
		oRS.movefirst 
		
		result = oRs.Fields(0).Value
		
		if result = 0 then loeschDatensatz else protokoll logfile, "**result:  " & result End if		  
		
	End If

oCon.Close             
Set oRs = Nothing
Set oCon = Nothing

End sub
		
Member: bastla
bastla Sep 19, 2011, updated at Oct 18, 2012 at 16:48:25 (UTC)
Goto Top
Hallo lionne!

Fällt Dir auf, was an Deiner Zeile 23 anders ist als an meinem Beispiel oben?

Grüße
bastla
Member: lionne
lionne Sep 19, 2011 at 13:08:51 (UTC)
Goto Top
Hallo bastla,

ich habe geändert, trodem habe ich die gleiche Fehlermeldung. Darf man mit VBS das Ergebnis eines count nicht so lesen?

Danke und Gruß
Lionne
Member: bastla
bastla Sep 19, 2011 at 17:54:00 (UTC)
Goto Top
Hallo lionne!
ich habe geändert
Gut.
die gleiche Fehlermeldung
"Syntax error"?
Darf man mit VBS das Ergebnis eines count nicht so lesen?
"So" wäre jetzt wie?

Grüße
bastla
Member: lionne
lionne Sep 19, 2011 at 20:00:04 (UTC)
Goto Top
Hallo bastla,

Zeile 21 habe ich so geändert:

  result = CInt(oRs.Fields(0).Value)

es funktionniert.

Gruß
Lionne