Hej http://support.microsoft.com/support/kb/articles/Q228/9/35.ASP?LN=EN-US&SD=gn&FR=0 Hej Hej igen Efter .open kan du också ange din connectionsträng. Det är valfritt att använda det i .connectionstring eller .open constr Använder du en DSN så anges det som: con.open "dsn","user","pw" Det lustiga är ju att det inte fungerar med con.connectionstring men nog med con.open"DSN". Det måste fungera. Prova följande: Det är då följande rad körs det hänger sig: jodå - då är det säkert så att du missat att sätta en referens till ADO 2.x i ditt VB-projekt. Detta är nämligen nästan den enda skillanden mot ASP. Sen är det också så att om man kör i VB så skall man inte skriver Server.CreateObject("ADODB.Recordset") utan endast CreateObject("ADODB.Recordset") Jag har satt referenserna: Förrästen fungerar adoconnection.connectionstring. Jag lade in <code>debug.print adoconnection.connectionstring</code> före adoconnection.Open och då stannade den på denna rad. hmm, svaret stod framför ögonen på mig. Du försöker ju ansluta till en SQL-Server (enligt connectionsträngen) men du har ju en Accessdatabas som du skall ansluta emot. Det lustiga är att jag får exakt samma connectionstring om jag använder en ado-control. Väljer jag connectionstring och bygger den så får jag en identisk connectionstring som finns i den befintliga koden i första inlägget. Inte fungerar alternativet "Use ODBC Data Source Name". Så här borde din connectionsträng se ut när du använder access: Jag tror vi ger upp nu. Fastän det står i boken att det skall gå. Vi är inte klara - du skall banne mig inte ge upp nu. Jag har skrivit en kurs som kanske hjäper dig tillbaks igen (Grundkurs ADO med VB). Intressant läsning.DSN problem
Jag försöker få kontakt med min DSN (Access) som heter test med hjälp av kodsnutten nedan, men jag får felmeddelandet:
Multiple-step OLE DB operation generated errors. Check each OLE DB
status value, if available. No work was done.
<code>
Private Sub cmdTestDSN_Click()
Dim adoconnection As ADODB.Connection
Set adoconnection = New ADODB.Connection
adoconnection.connectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=test;Mode=Share Deny None"
adoconnection.Open
If adoconnection.State = adStateOpen Then
MsgBox "Welcome to the biblio database!"
Else
MsgBox "The connection could not be made."
End If
adoconnection.Close
Set adoconnection = Nothing
End Sub
</code>
Vad kan felet bero på. Jag har angett username i min DSN till Admin och lämnat lösenordet blankt.
Jag har satt referenser till följande i mitt project:
Microsoft ActiveX Data Objects 2.6 Library
Microsoft ActiveX Data Objects Recordset 2.6 LibrarySv: DSN problem
Sv: DSN problem
Har läst artickeln men jag vet inte riktigt vad menas med "make sure all variables are properly initialized". För övrigt finns ingen lösning till problemet i artickeln vad jag kan se. Min version av Jet 4.0 (msjet40.dll) är nu 4.0.4431.1 som är en nyare version av jet än vad som nämns i artickeln. Bugfixarna borde då vara med i denna version vad jag kan förstå.
Nu har jag laddat ner Jet 4.0 SP5 för Windows Millenium Edition och försökt på alla möjliga sätt få det att fungera.
Finns det någon som vet exakt hur man skall göra för att slippa problemet så skulle jag vara mycket tacksam.
Skall ännu prova med att ladda ner Office2000 SR1 om det skulle råka ha någon inverkan.
Mvh
HolmenSv: DSN problem
Jag lade till "test" efter adoconnecton.open
alltså
<code>
adoConnection.open "test"
</code>
Måste jag alltid ha "namn på DSN" efter adoConnection.open, eller går det att ha det så som det var i koden i första innlägget (utan "test")?
Jag är lite förvånad om man måste ha DSN namnet efter open metoden eftersom coden i första inlägget är från en databasbok jag läser. Kan ju hända att tryckfelsnisse varit framme :-)
/MikaelSv: DSN problem
/PelleSv: DSN problem
Tack för ett snabt svar.
/MikaelSv: DSN problem
adoconnection.open "Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=test;Mode=Share Deny None"
Genom att kontrollera detta kan du sedan skriva:
response.write adoconnection.connectionstring
response.end
Skrivs något ut då - fungerar även detta - PelleSv: DSN problem
<code>
adoconnection.open "Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=test;Mode=Share Deny None"
</code>
Jag stoppade på raden med debuggern utan felmeddelande, men så fort jag skall fortsätta stega med F8.
Tilläggas kan att jag inte kör asp utan jag övar med ett standard EXE project enligt boken. Då fungerar väl inte response.write eller?
Det är så frustrerande när det inte fungerar som det skall, och jag är så envis att jag får ingen ro förrän problemet löst sig.
Har du några fler tips, eller skall det helt enkelt inte fungera med standard EXE project?
/MikaelSv: DSN problem
Gå via Project|References och klicka för Microsoft Data Objects 2.x Library
/PelleSv: DSN problem
Microsoft ActiveX Data Objects 2.6 Library
Microsoft ActiveX Data Objects Recordset 2.6 Library
Titta ännu på koden i första inlägget (om du har tid) och se om det är något som är fel. Min fantasi börjar ta slut.
Jag har endast ett formulär med en knapp på.
Tack för engagemanget och snabba svar.Sv: DSN problem
/MikaelSv: DSN problem
/PelleSv: DSN problem
Ado-kontrollen är "Greyed out" och fungerar inte någondera fallen.
Jag tycker också det ser ut som om den försöker connecta till en SQL-databas. DSN:en använder Access drivrutiner och pekar på en .mdb fil. DSN:en borde det inte vara något fel på??
Mera idéer????????
/MikaelSv: DSN problem
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\PROGRAM\Microsoft Visual Studio\VB98\Biblio.mdb;Persist Security Info=False"
con.open constr
Se även denna kurs:
http://www.pellesoft.nu/learn/databas/access/addrec.htm
/PelleSv: DSN problem
Tack så hemskt mycket för engagemanget.
Mvh
/MikaelSv: DSN problem
/PelleSv: DSN problem
Jag gjorde en liten djupdykning i MSDN på namnet Provider där hittade jag syntaxen för en koppling till en DSN.
Syntax with a DSN or FileDSN:
"[Provider=MSDASQL;] { DSN=name | FileDSN=filename } ; [DATABASE=database;] UID=user; PWD=password"
Med följande connectionstring fick jag det att fungera:
adoconnection.connectionString = "Provider=MSDASQL;DSN=test"
Jag provade först med att skriva allt i connectionsträngen, men sen började jag fundera på att inte måste man väl fylla i samma information en gång till, eftersom infon redan finns i DSN:en. Sist och slutligen blev strängen som ovan.
Boken(Wrox, Beginning Visual Basic 6 Database Programming) jag har läst har mest behandlat DAO och det var först i kapitlet "Universal Data Access Using ADO"(11) som den första riktigt stora missen kom.
Jag har nu beställt boken "Sams, Teach Yourself ADO 2.5 in 21 days" för att lära mig mera om ADO.
Hälsningar från Finland
/Mikael