[asp & udl] Hoe maakt je een connectie met ASP

Pagina: 1
Acties:
  • 512 views sinds 30-01-2008
  • Reageer

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Tweakers,

Ik ben nu al een paar dagen op zoek naar een oplossing voor een connectie met een ACCESS2000 DB in ASP met wachtwoord.
Nou ben ik al een paar keer de term UDL tegengekomen, en heb ookal wat dingen geprobeerd.
Ik heb nu maar even voor het testen alles in 1 directory gezet (natuurlijk komt de database op internet ergens anders te staan).

Dus in de directory staan connectie.udl, index.asp, database.mdb

Mijn vragen zijn nu;
* wat en hoe moet ik die UDL file instellen (natuurlijk dubbelklikken), welke driver etc etc
* wat moet ik aan m`n string veranderen?

momenteel ziet die er zo uit;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim strCon 
Dim objCon
Dim accessDB
Dim strSQL
Dim objRec

accessDB = server.mappath("database.mdb")

strCon = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
strCon = strCon & accessDB & ";"

Set objCon = Server.CreateObject ("ADODB.Connection")

Set objRec = Server.CreateObject("ADODB.Recordset")

objCon.Open strCon

' De SQL query om de gegevens uit de database te halen.
SQL = "SELECT * FROM klanten;"

' Plaats de gegevens van de SQL Query in de recordset objRec.
set objRec = objCon.execute(SQL)


En wat moet ik met m`n global.asa doen?

Plz help! :D

[ Voor 7% gewijzigd door Predje op 13-01-2005 15:23 ]


  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Check http://www.connectionstrings.com/

Daar staat onder andere:
code:
1
"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="


Je kan ook een System DSN maken in je ODBC sources. Daar kan je dan je wachtwoord in opgeven. Die DSN kan je dan ook heel simpel gebruiken in je connection string.

[ Voor 80% gewijzigd door Equator op 13-01-2005 15:28 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
ja maar is via een UDL bestand niet safer?
Omdat je dan het wachtwoord niet in je code hebt staan. (kun je met asp niet zijn maar toch)

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

True, UDL (is universal datalayer dacht ik :?)
Daarin kan je ongetwijfeld ook een wachtwoord in kwijt. Zo ook met een DSN.

Connectionstring voor een udl:
code:
1
"File Name=c:\myDataLink.udl;"
Staat ook op http://www.connectionstrings.com/

[ Voor 8% gewijzigd door Equator op 13-01-2005 15:39 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
ja ok daar staat hoe ik de UDL kan aanroepen.
Maar ik moet ook weten hoe ik hem maak, via global.asa aanroepen, en hoe m`n connectie er dan uitziet.
Sorry dat ik zoveel vraag.. maar ik kan hier en op google niet vinden wat ik zoek. athans niet duidelijk.
Is er niemand die dit ooit heeft gedaan? Dus connectie gemaakt met access2000, asp en UDL?

  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
Eenvoudigeste manier is nieuw bestand aan te maken, hernoemen naar .udl en dubbelklikken, properties instellen en klaar.
Wat je nu precies wilt in die global.asa weet ik niet, maar de aanroep zoals die is gegeven lijkt me verder ok.
Greetz.

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Ashtaroth schreef op donderdag 13 januari 2005 @ 20:28:
Eenvoudigeste manier is nieuw bestand aan te maken, hernoemen naar .udl en dubbelklikken, properties instellen en klaar.
Wat je nu precies wilt in die global.asa weet ik niet, maar de aanroep zoals die is gegeven lijkt me verder ok.
Greetz.
Mja hoe je een UDL file maakt weet ik ondertussen wel.
Maar ik kreeg hem niet werkend :S

kun je een Microsoft Jet 4.0 OLE DB Provider gebruiken voor een Access97 DB? (moet 2000DB zijn maar heb hier momenteel alleen ff 97)
Ik gebruik namelijk de Microsoft Jet 4.0 OLE DB Provider
Ik wijs de juiste DB aan
username is gewoon admin, omdat ik die in acces geen kan opgeven
pw is natuurlijk het goede PW
allow saving password staan aangevinkt
Maar als ik dan doe; test connection krijg ik de volgenden melding:

test connection failed because of an error in initailizing provider. Kan de toepassing niet starten. Het gegevensbestand van de werkgroep ontbreekt of is exclusief geopend door een andere gebruiker.

HELPP! :(

  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
Verwijs je de in de Jet OLEDB:System database property wel naar de juiste .mdw file?

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Ik heb net even een udl gemaakt, en verwezen naar een databeestje op mijn p: schijf.

Als provider hebt ik de default staan: Microsoft OLE DB Provider for ODBC Drivers
Als Data Source Name "MS Access DataBase"
Initial Catalog P:\db1.mdb en dat werkt prima. Ik heb dan wel Access XP geinstalleerd staan op mijn windows 2000 station.

Maar met een beetje up2date versie van MDAC (2.8 is uit meen ik) hoef je geen access runtime geinstalleerd te hebben om de database via ODBC te openen.

deze udl kan je dan weer openen in notepad:
code:
1
2
3
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog=p:\db1.mdb

[ Voor 20% gewijzigd door Equator op 14-01-2005 11:31 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
mhh ik dacht dat je ook in je connectie string een UDL bestand kon aanwijzen.

Maar ik krijg de volgende foutmelding;

code:
1
2
3
4
Soort fout:
Runtimefout Microsoft VBScript (0x800A01B0)
Kan een bestandsnaam of klassennaam niet vinden tijdens een automatiseringsbewerking
/index.asp, line 19


udl bestand;
code:
1
2
3
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Data Source=MS Access 97 Database;Initial Catalog=database.mdb


asp bestand
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
<%

Dim strCon 
Dim objCon
Dim accessDB
Dim strSQL
Dim objRec

'URL naar database, makkelijk te veranderen. 12:24 27-8-2004 wesley
accessDB = server.mappath("database.mdb")


strCon = "File Name=connection.udl;"

Set objCon = Server.CreateObject ("ADODB.Connection")

Set objRec = Server.CreateObject("ADODB.Recordset")

objCon.Open strCon

' De SQL query om de gegevens uit de database te halen.
SQL = "SELECT * FROM klanten;"

' Plaats de gegevens van de SQL Query in de recordset objRec.
set objRec = objCon.execute(SQL)

Do While Not objRec.EOF


' Ga naar het volgende record om de waarden in een nieuwe rij te laten zien.
objRec.MoveNext
Loop

objRec.Close
Set objRec = Nothing
objCon.close
set objCon = Nothing 

%>


Wat doe ik verkeerd? 8)7

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
kick^^

  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
vlgs mij moet je het gehele pad in de variabele strCon zetten, bijv.:
"File Name=C:\Test\connection.udl;"

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Ashtaroth schreef op zaterdag 15 januari 2005 @ 23:22:
vlgs mij moet je het gehele pad in de variabele strCon zetten, bijv.:
"File Name=C:\Test\connection.udl;"
code:
1
2
3
4
5
strCon = "File Name=C:\nieuwconnectie\root\connection.udl;"

Set objCon = Server.CreateObject ("ADODB.Connection")

Set objRec = Server.CreateObject("ADODB.Recordset")


Dit lijkt niets uit te maken..

[ Voor 30% gewijzigd door Predje op 17-01-2005 17:04 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
En waar staat die database van je? In dezelfde folder als de .udl file?

Het lijkt erop dat hij je mdb file niet kan vinden.

edit:

Ook zie ik je pwd niet terug in je udl file, maar mogelijk is dit om veiligheidsredenen ;)

[ Voor 31% gewijzigd door bigbeng op 17-01-2005 17:26 ]


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Predje schreef op donderdag 13 januari 2005 @ 15:31:
ja maar is via een UDL bestand niet safer?
Omdat je dan het wachtwoord niet in je code hebt staan. (kun je met asp niet zijn maar toch)
Je kunt ook je ASP coderen. Geen 100% waterdichte methode, maar lijkt me voor de meeste gevallen wel afdoende. Tenzij het een database met gevoelige gegevens betreft natuurlijk, maar dan neem ik aan dat je ook geen access gebruikt.

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

IN je UDL staat toch al een verwijzing naar je Access Database. Dan hoef je deze toch niet nog een ker in je ASP code te proppen.
code:
1
2
3
strCon = "File Name=C:\nieuwconnectie\root\connection.udl;"
Set objCon = Server.CreateObject ("ADODB.Connection")
objCon.Open(strCon)

Dat zou volgens mij al voldoende moeten zijn.

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

CyberJ schreef op dinsdag 18 januari 2005 @ 07:59:
IN je UDL staat toch al een verwijzing naar je Access Database. Dan hoef je deze toch niet nog een ker in je ASP code te proppen.
code:
1
2
3
strCon = "File Name=C:\nieuwconnectie\root\connection.udl;"
Set objCon = Server.CreateObject ("ADODB.Connection")
objCon.Open(strCon)

Dat zou volgens mij al voldoende moeten zijn.
ik bedoel ook ipv

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Het werk gewoon echt niet! 8)7

dit staat in m`n UDL file
code:
1
2
3
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Password="";Persist Security Info=True;Data Source=MS Access 97 Database;Mode=Read;Initial Catalog=C:\nieuwconnectie\root\database.mdb


dit staat in m`n ASP code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
Dim strCon 
Dim objCon
Dim strSQL
Dim objRec

strCon = "File Name=C:\nieuwconnectie\root\connection.udl;"
Set objCon = Server.CreateObject ("ADODB.Connection")
objCon.Open(strCon)

Set objRec = Server.CreateObject("ADODB.Recordset")

' De SQL query om de gegevens uit de database te halen.
SQL = "SELECT * FROM klanten;"

' Plaats de gegevens van de SQL Query in de recordset objRec.
set objRec = objCon.execute(SQL)
%>


en dit is de melding
code:
1
2
3
4
Soort fout:
Runtimefout Microsoft VBScript (0x800A01B0)
Kan een bestandsnaam of klassennaam niet vinden tijdens een automatiseringsbewerking
/index.asp, line 11


ik word er gek van! :(

[ Voor 6% gewijzigd door Predje op 18-01-2005 09:42 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-05 17:45
Mag die server maarzo bij dat bestand komen dan?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
farlane schreef op dinsdag 18 januari 2005 @ 10:56:
Mag die server maarzo bij dat bestand komen dan?
Het is gewoon lokaal voor te testen he..
Draai gewoon WinXP pro met IIS.
Waar zou ik dan eventueel naar moeten kijken in IIS?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Of de IUSR_... of Everyone tenminste read rechten heeft op de folder en het bestand.

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Op regel 4 dimensioneer je strSQL en die gebruik je verder nergens meer.
Bovendien hoef je op regel 17 niet opnieuw je recordset te setten.

Wanneer je bovenaan je code "Option Explicit" plaatst, dan wordt je gewezen op al je fouten.. En dat is voor het debuggen wel eens erg makkelijk.

Dit heeft overigens niets met je foutmelding hierboven te maken. Waarschijnlijk heeft de ananymous user geen rechten in die directory, zoals ook al opgemerkt door bigbeng

[ Voor 25% gewijzigd door Equator op 19-01-2005 07:51 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
gvd! :(
Nou ik ik alles rechten goed gezet en option explicit aangezet.
Maar ik maak nu gebruik van een website dus kan ik niet zo makkelijk het exacte path opgeven dus los ik dit maar op met Server.Mappath.

Hier gaan we weer;
foutmelding
code:
1
2
3
4
5
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/wesley/test/index.asp, line 12


code
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
<%
Option Explicit

Dim strCon 
Dim objCon
Dim objRec
Dim file

file = Server.Mappath("File Name=connection.udl;")
strCon = file
Set objCon = Server.CreateObject ("ADODB.Connection")
objCon.Open(strCon)

Set objRec = Server.CreateObject("ADODB.Recordset")

' De SQL query om de gegevens uit de database te halen.
SQL = "SELECT * FROM klanten;"

' Plaats de gegevens van de SQL Query in de recordset objRec.
objRec = objCon.execute(SQL)

Do While Not objRec.EOF


' Ga naar het volgende record om de waarden in een nieuwe rij te laten zien.
objRec.MoveNext
Loop

objRec.Close
Set objRec = Nothing
objCon.close
set objCon = Nothing 

%>


....

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Als je de database en het udl bestand in je webroot dir zet:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
Option Explicit
Dim oCon, oRst, klant

Set oCon = Server.CreateObject("ADODB.Connection")
Set oRst = Server.CreateObject("ADODB.Recordset")

oCon.Open("File Name=connection.udl;")
strSQL = "SELECT * FROM klanten"
oRst = oCon.Execute(strSQL)

Do While Not oRst.EOF
    klant = oRst("klant")
    Response.Write klant & "<br>"
    ' Ga naar het volgende record om de waarden in een nieuwe rij te laten zien.
    oRst.MoveNext
Loop

Set oRst = Nothing
oCon.close()
set oCon = Nothing 

%>

"klant" is hierin de naam van de kolom.

Dit zou gewoon moeten werken..
Dus je udl bestand in dezelfde dir als je asp file.

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
thx voor je reactie..
IK BEN ECTH ZO`N NOOB :'( 8)7 |:(

nu heb ik weer deze melding
code:
1
2
3
4
5
Microsoft VBScript runtime  error '800a01b0'

File name or class name not found during Automation operation

/wesley/test/index.asp, line 8

ik dacht dat die het UDL bestand niet kon vinden, maar dit staat ECHT in dezelfde DIR EN heeft de juiste naam

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Hmm, maak er eens dit van:
Visual Basic:
1
oCon.Open("File Name=C:\pad\naar\connection.udl;") 


En dan echt het pad ernaar toe, niet met mappath oid.

[ Voor 5% gewijzigd door Equator op 19-01-2005 12:15 ]


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
CyberJ schreef op woensdag 19 januari 2005 @ 12:15:
Hmm, maak er eens dit van:
Visual Basic:
1
oCon.Open("File Name=C:\pad\naar\connection.udl;") 


En dan echt het pad ernaar toe, niet met mappath oid.
ook niet

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
Option Explicit
Dim oCon, oRst, klant

Set oCon = Server.CreateObject("ADODB.Connection")
Set oRst = Server.CreateObject("ADODB.Recordset")

oCon.Open("File Name=E:\Inetpub\wwwroot\moosdijk\html\wesley\test\connection.udl;")
strSQL = "SELECT * FROM klanten"
oRst = oCon.Execute(strSQL)

Do While Not oRst.EOF
    klant = oRst("klant")
    Response.Write klant & "<br>"
    ' Ga naar het volgende record om de waarden in een nieuwe rij te laten zien.
    oRst.MoveNext
Loop

Set oRst = Nothing
oCon.close()
set oCon = Nothing

%>


melding
code:
1
2
3
4
5
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/wesley/test/index.asp, line 8

Hoe kan dat toch?

  • Equator
  • Registratie: April 2001
  • Laatst online: 12:02

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Uh, waarop draait je webservice :?

Dit werkt (met enige aanpassingen ) nl. wel bij mij lokaal, maar op een windows 2000 server hier inpandig niet. Waarschijnlijk een MDAC iets.. Access DB is een Access2002 DB.

Welke versie van MDAC draait je webserver :?

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
CyberJ schreef op woensdag 19 januari 2005 @ 13:29:
Uh, waarop draait je webservice :?

Dit werkt (met enige aanpassingen ) nl. wel bij mij lokaal, maar op een windows 2000 server hier inpandig niet. Waarschijnlijk een MDAC iets.. Access DB is een Access2002 DB.

Welke versie van MDAC draait je webserver :?
mhhh. ik weet toevallig wel dat de website ook window 2000 server draait.
Maar dan zou het toch nogsteeds lokaal moeten werken in WinXP met IIS?
Maarja ECHT BEDANKT voor je hulp.. maar ik geef het op :X :? 8)7 dit kost al teveel tijd.
Pagina: 1