---
title: "Inkompatibla typer: '[string: \"\"]'"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/86524-inkompatibla-typer-string"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "eddy1"
published: "2003-09-20T17:56:04.000Z"
updated: "2003-09-20T19:41:48.000Z"
replies: 24
views: 405
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/86524-inkompatibla-typer-string"
---

# Inkompatibla typer: '[string: ""]'

_Sida 1 av 2._

## #1 — eddy1, 2003-09-20T17:56Z

Vad f\*n betyder detta, kan inte fördtå felet...

Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: '\[string: ""\]'
/dev/cleardb.asp, line 58

här följer koden, jag vet att det är j\*vligt dåligt skrivet, vore kanon om någon kunde komma med förslag på förbättring av sql frågorna speciellt, typ för att räkna och sen radera db måste det ju finnas något bättre sätt....

\<%
'=========================================
'hämtar antal ur db
'=========================================
Set con = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
x = Server.MapPath("db.mdb")
Con.open "driver={Microsoft Access Driver (\*.mdb)};dbq= " &amp; x &amp; " "

SQL = "select count(nr) AS hits from test"

Rs.open SQL, Con, 2, 2

db = rs("hits")
dbcount = int(rs("hits"))

rs.close
con.close

'=========================================
'tömmer db
'=========================================
Set RS = Server.CreateObject("ADODB.Recordset")
x = Server.MapPath("db.mdb")
Con.open "driver={Microsoft Access Driver (\*.mdb)};dbq= " &amp; x &amp; " "

SQL = "Select \* from test"

Rs.open SQL, Con, 2, 2
if rs.EOF = false then
rs.delete
End if
rs.close
con.close

'=========================================
'hämtar antal ur txt fil
'=========================================
path = Server.MapPath("nruser.txt")
set fso = CreateObject("Scripting.FileSystemObject")
set infso = fso.OpenTextFile(path, 1, true)

nr = infso.ReadLine
infso.close

'=========================================
'Skriver nytt antal i txt fil
'=========================================
tot = nr + dbcount

path = Server.MapPath("nruser.txt")
set fso = CreateObject("Scripting.FileSystemObject")
set infso = fso.CreateTextFile(path, true)

infso.Writeline tot
infso.close

%\>

/mvh

Permalänk: https://www.webforum.nu/p/86524

## #2 — solbulle, 2003-09-20T18:16Z

Vilken rad är 58?

Ska det verkligen stå:

```
set infso = fso.CreateTextFile(path, true)
```

Ska du inte köra med OpenTextFile där med?

PS. använd kodtaggar.

Permalänk: https://www.webforum.nu/p/1163243

## #3 — Sebbe, 2003-09-20T18:29Z

Om jag har förstått koden rätt så är det en räknare du ska göra? I så fall kan jag inte fatta varför du ska hålla på och krångla med textfiler? Borde det inte vara lättare att bara göra allt i databasen på en gång?

```
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
strSQL = "UPDATE test SET hits = hits + 1"
objConn.Execute(strSQL)

strSQL = "SELECT hits FROM test"
Set objRS = objConn.Execute(strSQL)
Response.Write(objRS("hits") & " träffar på sidan.")

objRS.Close : Set objRS = Nothing
objConn.Close : Set objConn = Nothing
%>
```

Permalänk: https://www.webforum.nu/p/1163251

## #4 — eddy1, 2003-09-20T18:33Z

så här

Det är så att jag har en tadabas där besökare loggas och räknas men sen har jag en funktion som tömmer hela databasen men jag ska ända hålla koll på det totala antalet besökare..

så när jag tömer databsen ska antalet poster i dabasen läggas ihop med det antal som finns i txt filen för .....

Permalänk: https://www.webforum.nu/p/1163252

## #5 — Sebbe, 2003-09-20T18:44Z

Men eftersom du ändå tar bort allt i databasen direkt är det ju onödigt att ha det över huvud taget, eller? Om du ändå bara vill ha det i en textfil är det nog bättre att skippa databasen helt.

```
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 1)
intNr = CInt(objTS.ReadLine)
objTS.Close : Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 2)
objTS.WriteLine(intNr + 1)
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing

Response.Write(intNr + 1 & " besökare.")
```

Permalänk: https://www.webforum.nu/p/1163259

## #6 — eddy1, 2003-09-20T18:45Z

nää

det är så att jag har det för att kunna ta fram lite statistik med jämn mellanrum

Permalänk: https://www.webforum.nu/p/1163261

## #7 — Sebbe, 2003-09-20T18:46Z

Re: nää

> **eddy1 skrev:**
>
> det är så att jag har det för att kunna ta fram lite statistik med jämn mellanrum

Jo, men hur tänkte du komma åt statistiken när du ändå tar bort innehållet?

Permalänk: https://www.webforum.nu/p/1163262

## #8 — eddy1, 2003-09-20T18:50Z

ha ha

Jo me ibland skriver man ut stistiken för vissa ändamål och då tar man samtidigt bort den.. för att efter det bara ha efterföljande loggningar

Permalänk: https://www.webforum.nu/p/1163265

## #9 — Sebbe, 2003-09-20T18:55Z

Re: ha ha

> **eddy1 skrev:**
>
> Jo me ibland skriver man ut stistiken för vissa ändamål och då tar man samtidigt bort den.. för att efter det bara ha efterföljande loggningar

Då tycker jag nog att det skulle vara smartare att kolla med en WHERE-sats vilka poster du vill hämta.

Permalänk: https://www.webforum.nu/p/1163269

## #10 — eddy1, 2003-09-20T18:59Z

a

okey jag kan hålla med dig att det kanske inte någon bra lösning, för för tillfället har jag tänkt mig, databsen får inte bli för stor heller......

Permalänk: https://www.webforum.nu/p/1163274

## #11 — Sebbe, 2003-09-20T18:59Z

Men för att återgå till problemet: vilken är rad 58?

Permalänk: https://www.webforum.nu/p/1163276

## #12 — eddy1, 2003-09-20T19:03Z

men

hur ska koden se ut för på enklast och effektivast sätt räkna antal i databs för att sedan ta bort det???

hur kan jag få det skumma felet jag inte blir av med

Permalänk: https://www.webforum.nu/p/1163280

## #13 — eddy1, 2003-09-20T19:04Z

oj

'=========================================
								'Skriver nytt antal i txt fil
								'=========================================
rad 58  	tot = nr + dbcount
	
	response.write tot
	path = Server.MapPath("nruser.txt")
	set fso = CreateObject("Scripting.FileSystemObject")
	set infso = fso.CreateTextFile(path, true)

Permalänk: https://www.webforum.nu/p/1163283

## #14 — Sebbe, 2003-09-20T19:09Z

Nu kanske det går bättre då?

```
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
strSQL = "SELECT COUNT(*) FROM test"
Set objRS = objConn.Execute(strSQL)
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

If objRS(0) = 0 Then
  Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 1)
  intUsers = CInt(objTS.ReadLine)
  objTS.Close : Set objTS = Nothing
Else
  intUsers = objRS(0)
  strSQL = "DELETE FROM test"
  objConn.Execute(strSQL)
End If

Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 2)
objTS.WriteLine(intUsers + 1)
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing

objRS.Close : Set objRS = Nothing
objConn.Close : Set objConn = Nothing

Response.Write(intUsers + 1 & " besökare.")
%>
```

Permalänk: https://www.webforum.nu/p/1163284

## #15 — Nexus86, 2003-09-20T19:11Z

```
nr = infso.ReadLine
```

Känns som om det står något mer på raden än bara siffror. Kör en Response.Write på den.

Permalänk: https://www.webforum.nu/p/1163285

## #16 — eddy1, 2003-09-20T19:21Z

fattar inte riktigt

vad menas objRS(0) varför en nolla inom paranteserna,?

Permalänk: https://www.webforum.nu/p/1163287

## #17 — Sebbe, 2003-09-20T19:25Z

Re: fattar inte riktigt

> **eddy1 skrev:**
>
> vad menas objRS(0) varför en nolla inom paranteserna,?

0:an är ordningsnummret i SQL-frågan, alltså COUNT(\*) i det här fallet. :)

Permalänk: https://www.webforum.nu/p/1163290

## #18 — eddy1, 2003-09-20T19:25Z

Set objRS = objConn.Execute(strSQL)

måste man inte stänga objektet objConn innan men exekvera en sql sats eller är jag helt borta..

Else
  intUsers = objRS(0)
  strSQL = "DELETE FROM test"
  objConn.Execute(strSQL)
End If

efter denna sats heter den då objRS(1) eller

Permalänk: https://www.webforum.nu/p/1163291

## #19 — Sebbe, 2003-09-20T19:26Z

> **eddy1 skrev:**
>
> Set objRS = objConn.Execute(strSQL)
> 
> måste man inte stänga objektet objConn innan men exekvera en sql sats eller är jag helt borta..
> 
> 
> Else
>   intUsers = objRS(0)
>   strSQL = "DELETE FROM test"
>   objConn.Execute(strSQL)
> End If

Nope, det behövs inte. :)

Permalänk: https://www.webforum.nu/p/1163293

## #20 — eddy1, 2003-09-20T19:34Z

ändrade

lite i koden men då sket det sig med en gång, varför kan jag inte använda EOF

\<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
strSQL = "SELECT COUNT(\*) FROM test"
Set objRS = objConn.Execute(strSQL)
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

if not objRS(0).EOF = true then 
  intUsers = objRS(0)
  strSQL = "DELETE FROM test"
  objConn.Execute(strSQL)

  
  
  Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 1)
  intUserss = CInt(objTS.ReadLine)
  objTS.Close : Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("nruser.txt"), 2)
objTS.WriteLine(intUsers + intUsers)
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing

objRS.Close : Set objRS = Nothing
objConn.Close : Set objConn = Nothing
end if

Response.Write(intUsers + intUsers)
%\>

Permalänk: https://www.webforum.nu/p/1163294

---

Tråden på webben: https://www.webforum.nu/amne/asp/86524-inkompatibla-typer-string  
Nästa sida: https://www.webforum.nu/amne/asp/86524-inkompatibla-typer-string/page2.md
