Just nu i M3-nätverket
Gå till innehåll

Variabler från dll-fil till asp-sidor


PokPytt

Rekommendera Poster

Jag tänker skapa en dll-fil som innehåller en databaskoppling. Det funkar bra, men...

Hur får jag variablerna som jag sätter att följa med till asp-filen?

Länk till kommentar
Dela på andra webbplatser

Så här gör jag för att hämta värden från en DLL. Samma sätt som man hanterar en normal funktion.

 

resultat = kalle(10, 10)

Function kalle(tal1 as integer, tal2 as integer)
   summa=tal1+tal2
   kalle=summa
End Fuction

 

(I och med att man ger namnet på funktionen ett värde så returneras det.)

 

Antar att det var det du ville veta?

 

/Mn

Slartibartfast: Is that your robot? Marvin: No. I'm mine.

 

 

[inlägget ändrat 2002-08-27 13:32:14 av ZanY]

Länk till kommentar
Dela på andra webbplatser

Nja, jag utryckte mig nog lite dåligt.

 

Jag visar koden istället:

 

VB:

Public Function DBConn()

Dim objDB As New ADODB.Connection

 

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

objDB.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\db.mdb;PWD=polka"

 

End Function

 

Denna ska sen vara databaskopplingen som ligger i en subrutin i asp-filen:

Dim objDB

Sub Conn()

Set objDB = Server.CreateObject("QM.DBCO")

objDB = objDB.DBConn

End Sub

 

När jag sen ska öppna databasen och hämta data så får jag felet "Object required: ''"

 

conn

Set RS = objDB.Execute("SELECT id FROM users")

 

Är jag helt ute o cyklar eller?

mvh

/Mange

 

Länk till kommentar
Dela på andra webbplatser

Det är just det som är grejen att jag ska krångla till det....

=)

 

Databasen är lösenordskyddad, och har jag kopplingen i asp så måste jag ange lösenordet där öppet.

Har jag en dll, så kan jag dölja lösenordet.

 

/Mange

 

Länk till kommentar
Dela på andra webbplatser

Om inte ZanY svar var vad du hade tänkt dig, vet jag inte vad du letar efter...

 

Så här hade jag skrivit det..

 

VB:
Public Function DBConn() as variant
Dim objDB As New ADODB.Connection

Set objDB = Server.CreateObject("ADODB.Connection")
objDB.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\db.mdb;PWD=polka"
DBConn = objDB
End Function

 

Dim oConn

Call Conn()
Set RS = oConn.Execute("SELECT id FROM users")

funciton Conn()
Dim objDB
Set objDB = Server.CreateObject("QM.DBCO")
set oConn = objDB.DBConn
End function

 

Tycker dock att det verkar korkat att lösa det på detta sätt. Om du nu är rädd om ditt lösenord så lägg endast connectionstring i DLL och hämta den istället för objektet.

 

Gör så här istället:

 

VB:

public function connectionString() as variant
connectionString = "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\db.mdb;PWD=polka"
end function

 

ASP:

Dim oConn
Dim oConnString

set oConn = server.createObject("ADODB.Connection")
set oConnString = server.createobject("QM.DBCO")
oConn.open = oConnString.connectionString

set oRs = oConn.execute("SELECT id FROM users")

 

 

Sedan vem försöker du skydda ditt lösenord ifrån, om det är besökaren så spelar det ingen roll eftersom han/hon aldrig (om det ät buggfritt) kan se ASP-koden, alltså kan han/hon inte se din connectionstring.

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

[inlägget ändrat 2002-08-28 11:09:10 av Magnus Gladh]

Länk till kommentar
Dela på andra webbplatser

så måste jag ange lösenordet där öppet.

 

Det problemet har alla som utvecklar. Gör istället så man inte kan komma åt ASP-sidorna direkt.

 

Länk till kommentar
Dela på andra webbplatser

 

eftersom han/hon aldrig (om det ät buggfritt) kan se ASP-koden, alltså kan han/hon inte se din connectionstring

 

Precis. Dessutom så är det "en barnlek" att få lösenordet ur din DLL, eller ur databasen om man får tag i någon av dem. Det är viktigare att skydda databasen från "direkt nedladdning".

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Funderade på att lägga endast lösenordet i DLL:en, men det är bättre med hela connectionstringen.

 

Det funkar som jag vill ha det nu...

Tack för hjälpen!

 

/Mange

 

PS. det är inte besökarna jag skyddar lösenordet ifrån, det är systemadministratören så det inte går göra ändringar i databasen.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

 

Har han tillgång till .mdb-filen eller .dll-filen så kan han "lätt" få tag i lösenordet. (eller bara använda DLL-filen som dina .asp-sidor och göra vad han vill :)

 

Varför ska du behöva försöka skydda dig från systemadministratören?

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

det är systemadministratören så det inte går göra ändringar i databasen

 

Låter ju märkligt att sysadmin inte ska ha lösenordet... men det är inte mitt problem.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...