webForumDet fria alternativet

Problem med datakälla

13 svar · 314 visningar · startad av cobraeyes

cobraeyesMedlem sedan apr. 2000139 inlägg
#1

Får följande felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Drivrutinens SQLSetConnectAttr misslyckades.
/forum/Fsupp_3.asp, line 34

Till denna kod:

	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Suppo"
	Set Cmd = Server.Createobject("ADODB.Command")
	Cmd.ActiveConnection = Conn

Vad gör jag för fel???

MVH/

------------------
.:cobraeyes:.

[Redigerat av cobraeyes den 26 sep 2000]

emissionMedlem sedan dec. 19996 721 inlägg
#2

Hej!

Jag flyttar frågan till ASP, eftersom den inte är SQL-relaterad.

mvh
emission

cobraeyesMedlem sedan apr. 2000139 inlägg
#3

Hallå... *echo*
Kan någon vara snäll och hjälpa mig?

...han slet sitt hår...

------------------
.:cobraeyes:.

[Redigerat av cobraeyes den 26 sep 2000]

emissionMedlem sedan dec. 19996 721 inlägg
#4

Skum pryl, men det verkar som om conn aldrig initieras korrekt. Fungerar den annars?

Tänk på att vissa ADO-fel är icke-fatala, och detta kan mycket väl vara ett rent informationsmeddelande.

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

[Redigerat av emission den 26 sep 2000]

cobraeyesMedlem sedan apr. 2000139 inlägg
#5

Nope, jag vet inte om jag har gjort rätt med databas källan.
Har gjort en som heter "Suppo" (Microsoft Access Driver) i "Datakällor (ODBC)" i mappen Administrationsverktyg.
Kan man inte göra kopplingen DSN lös?

Här är hela koden (med risk för att verka tjatig :e ):

<!-- #include file="Adovbs.inc" -->
<%
id=Request.Querystring("iid")
oldname = Request.Querystring("amne")
upd=Request.Form("dummy")
If Len(upd) > 0 Then
	If Len(oldname) > 0 Then
		samne=oldname
	Else
		samne=Request.Form("Amne")
	End If
	snamn=Request.Form("Namn")
	spost=Request.Form("Epost")
	sinlagg=Request.Form("Inlagg")
End If
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inlägg i diskussionen</title>
</head>

<body bgcolor="#FFFFFF">
<p>&nbsp;</p>
<FORM Method="POST" action="Fsupp_3.asp?iid=<%=id%>&Amne=<%Server.URLEncode(oldname)%>" name="Test">
<p>
<a href="Fsupp_1.asp">Tillbaka till forumet</a>
<br>

<%
If Len(upd) > 0 Then
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Suppo"
	Set Cmd = Server.Createobject("ADODB.Command")
	Cmd.ActiveConnection = Conn
	ssql = "Insert Into Supp1 (did, amne, orig, namn, epost, inlagg, "
	ssql =ssql & "datum) values (?,?,?,?,?,?,?)"
	Response.Write ssql & "<br>"
	Cmd.CommandText = ssql
	Cmd.CommandType = adCmdText
	Response.Write "id = "& id & "<br>"
	If Len(id) < 1 Then id= "0"
	Set prm = Cmd.CreateParameter (,adUnsignedInt ,,,clnt(id))
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar,,Len(samne),samne)
	cmd.Parameters.Append prm
	If Len(oldname) > 0 Then
		Sorig = False
	Else
		Sorig = True
	End If
	Set prm = Cmd.CreateParameter (,adBoolean ,,,cBool(Sorig))
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(samne),snamn)
	Cmd.Parameters.Append prm
	If NOT (Len(sepost) > 0) Then sepost = "ingen adress"
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sepost),sepost)
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sinlagg),sinlagg)
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adDBDate ,,,date)
	Cmd.Parameters.Append prm
	Conn.BeginsTrans
		If Len(oldname) > 0 Then
			supdate = "Update Supp1 Set Antal = Antal + 1, senaste = #" & date
			supdate = supdate &  "#Where IID = " & id
			Response.Write supdate & "<br>"
			Conn.Execute supdate
		End If
		Response.Write "Params:"
		For z = 0 To Cmd.Parameters.Count -1
			Respone.Write Cmd.Parameters.Item(z).Value & " "
		Next
		Response.Write "<br>"
		Cmd.Execute
	Conn.CommitTrans
	Response.Write "Saved!"
Else %>
	<p>Ämne:
	<%
	If Len(oldname) > 0 Then
		Response.Write oldname
		%>
		<Input Type="hidden" Name="Amne" size="20" Value=<%=oldname%>></p>
	<%Else%>
		<Input Type="text" Name="Amne" Size="20"></p>
	<%End If%>
	<p>Namn: <Input Type="text" Name="Namn" Size="20">
	Epost: <Input Type="text" Name="Epost" Size="20"></p>
	<p>Inlägg: <Textarea rows="4" Name="Inlagg" Cols="40"></Textarea></p>
	<Input Type="hidden" Name="dummy" Size="20"></p>
<p><Input Type="Button" value="Skicka" Name="B1" onClick="B1_OnClick(); return false;">
<Input Type="Reset" Value="Återställ" Name="reset">
</p>
</form>
<% End If %>

</body>
</html>

<SCRIPT LANGUAGE="JavaScript">
function B1_OnClick(){
	var nam=document.Test.Namn.value;
	var inl=document.Test.Inlagg.value;
	var amn=document.Test.Amne.value;

	if((nam.length!=0) && (inl.length!=0)&& (amn.length!=0)){
		document.Test.dummy.value = "xxx";
		document.Test.submit();
	}else{
		alert("Du glömde att fylla i Namn, Inlägg eller Ämne");
	}
}
</SCRIPT>

Hoppas verkligen att någon vänlig person kan hjälpa mig...håller på att bli tokig. Har skrivit av det direkt från boken "Active Server Pages 3.0 & databaser på Internet".

MVH/

------------------
.:cobraeyes:.

cobraeyesMedlem sedan apr. 2000139 inlägg
#6

Snälla någon... x(
Sitter och pillar med detta, men det vill inte fungera!

MVH/

------------------
.:cobraeyes:.

OlleBoopMedlem sedan feb. 20001 861 inlägg
#7

Hej.
Självklart kan du göra kopplingen DSN-lös.
Exempelvis:
connect.Open "driver={Microsoft Access Driver (*.mdb)};;DBQ=C:\bautadasar\endatabaskanske.mdb;"
Med reservation för skrivfel & inkompetens... = )
/Adam

cobraeyesMedlem sedan apr. 2000139 inlägg
#8

Tror att jag fått databaskopplingen att fungera men nu får jag ett nytt felmeddelande som jag inte lyckats lösa.

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Operationen måste använda en fråga som kan uppdateras.
/forum/Fsupp_3.asp, line 78

Line 78 är "Cmd.Excecute", i föjande sammanhang:

If Len(upd) > 0 Then
	Dim Conn
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "driver={Microsoft Access Driver (*.mdb)};;DBQ=C:\Inetpub\wwwroot\forum\Support.mdb;"
	 
	Set Cmd = Server.Createobject("ADODB.Command")
	Cmd.ActiveConnection = Conn
	ssql = "Insert Into Supp1 (did, amne, orig, namn, epost, inlagg, "
	ssql =ssql & "datum) values (?,?,?,?,?,?,?)"
	Response.Write ssql & "<br>"
	Cmd.CommandText = ssql
	Cmd.CommandType = adCmdText
	Response.Write "id = "& id & "<br>"
	If Len(id) < 1 Then id= "0"
	Set prm = Cmd.CreateParameter (,adUnsignedInt ,,,cInt(id))
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar,,Len(samne),samne)
	cmd.Parameters.Append prm
	If Len(oldname) > 0 Then
		Sorig = False
	Else
		Sorig = True
	End If
	Set prm = Cmd.CreateParameter (,adBoolean ,,,cBool(Sorig))
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(snamn),snamn)
	Cmd.Parameters.Append prm
	If NOT (Len(sepost) > 0) Then sepost = "ingen adress"
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sepost),sepost)
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sinlagg),sinlagg)
	Cmd.Parameters.Append prm
	Set prm = Cmd.CreateParameter (,adDBDate ,,,date)
	Cmd.Parameters.Append prm
	Conn.BeginTrans
		If Len(oldname) > 0 Then
			supdate = "Update Supp1 Set Antal = Antal + 1, senaste = #" & date
			supdate = supdate &  "#Where IID = " & id
			Response.Write supdate & "<br>"
			Conn.Execute supdate
		End If
		Response.Write "Params:"
		For z = 0 To Cmd.Parameters.Count -1
			Response.Write Cmd.Parameters.Item(z).Value & " "
		Next
		Response.Write "<br>"
		Cmd.Execute
	Conn.CommitTrans
	Response.Write "Saved!"

Alltså Cmd.Execute ligger nästan längs ner i koden.

Vad beror detta på?

MVH/

------------------
.:cobraeyes:.

@ndersMedlem sedan juni 200032 969 inlägg
#9

du måste ge mappen som databasen ligger i rätt rättigheter.

du måste sätta rxwd för alla som skriver i databasen.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
where do you want to go to die?</A>

cobraeyesMedlem sedan apr. 2000139 inlägg
#10

Tackar! Men nu uppstod nya problem! :e

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
/forum/fsupp_2.asp, line 20
=Server.URLEncode

Ur följande kod:

<a href="Fsupp_3.asp?iid=<%=Server.HTMLEncode (RS.Fields("IID").Value)%>&Amne=<%=Server.URLEncode
(RS.Fields("Amne").Value)%>">
Diskutera</a>

Konstigt!?
Vad beror det på?

MVH/

------------------
.:cobraeyes:.

@ndersMedlem sedan juni 200032 969 inlägg
#11

du får inte ha en radbrytning efter server.urlencode.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
where do you want to go to die?</A>

cobraeyesMedlem sedan apr. 2000139 inlägg
#12

Tackar! :e
Då fortsätter vi...
Vad beror detta på?

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
/forum/fsupp_2.asp, line 21
=Server.HTMLEncode

Koden ser ut så här:

<a href="Fsupp_3.asp?iid=<%=Server.HTMLEncode(RS.Fields("IID").Value)%>&Amne=<%=Server.URLEncode(RS.Fields("Amne").Value)%>">
Diskutera</a>

Känner mig grymt grön ljust nu! :e

------------------
.:cobraeyes:.

cobraeyesMedlem sedan apr. 2000139 inlägg
#13

Är det någon som vet vad ovanstående problem beror på?

MVH/

------------------
.:cobraeyes:.

ZandrisMedlem sedan feb. 200160 inlägg
#14

Får följande felmeddelande:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x718 Thread 0x7e8 DBC 0x629100c Jet'.
/gullrics/conn.asp, line 10

Koden ser ut så här:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=C:\Inetpub\wwwroot\gullrics\databas\gullrics.mdb"

Vad gör jag för fel?

Har provat en massa olika typer av kopplingar till databasen. Men ingen fungerar. Är det något fel på filen gullrics.mdb tror ni?

Lycklig för svar, annars olycklig :-(

MVH Zandris

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)