Avatar billede lifeweb Nybegynder
10. maj 2008 - 10:46 Der er 9 kommentarer og
1 løsning

Logge sql-brug

Hej

Jeg har et script der hedder db.asp includet på alle mine sider, for at skabe forbindelse til min mssql-database:

<%
Set base = Server.CreateObject("ADODB.Connection")
base.Open "Provider=SQLOLEDB.1;Server=xx.udbyder.dk;database=xx;uid=xx;pwd=xx;network=DBMSSOCN"
%>

Jeg vil rigtig gerne logge alle sql's der bliver sendt ind mod servere via base.execute.

kan jeg lægge et "lag" henover, så jeg fortsat kan skrive base.execute - men at dette så skriver en log, og derefter udfører sql'en

jeg har utrolig mange scripts der bruger db.asp (5000+), så vil helst ændre i db.asp istedet for alle scriptsene.

jeg glæder mig til hurtigt response
Avatar billede nielle Nybegynder
10. maj 2008 - 13:27 #1
Lav en funktion til formålet:

Function BaseExecute(sql)
    ' Her logger du din sql-kommando
    ' Det er ikke helt klart hvordan du vil logge?

    BaseExecute = Base.Execute(sql)
End Function

Lav så allde de kald du ville til Base.Execute via denne.
Avatar billede lifeweb Nybegynder
10. maj 2008 - 15:09 #2
nielle: det kunne jeg såmænd også sagtens, men det betyder at jeg skal omprogrammere alle mine systemer - og det ville jeg være meget ked af...
kan man på base.execute-eventen knytte en function eller lign?
Avatar billede nielle Nybegynder
10. maj 2008 - 20:35 #3
Hvis det er en MS SQL database ... og du har fuld adgang til serveres, så har MS SQL allerede et modul til formålet. Det kan du s¨å bare bruge.

Hvis ikke ... nej, så har du ikke andre muligheder end at lave din kode om.
Avatar billede nielle Nybegynder
10. maj 2008 - 20:35 #4
MS SQL Server database
Avatar billede lifeweb Nybegynder
18. maj 2008 - 23:34 #5
jeg har prøvet at bruge din function - men uden held

hvis jeg eksempelvis gerne vil læse den ind i et recordset...

set rs = baseexecute(sql)

det virker ikk
Avatar billede nielle Nybegynder
19. maj 2008 - 06:19 #6
Hvordan ser resten af koden ud?
Avatar billede lifeweb Nybegynder
19. maj 2008 - 08:57 #7
function baseexecute(sql)
baseexecute = base.execute(sql)
end function
Avatar billede nielle Nybegynder
20. maj 2008 - 06:56 #8
Det er da ikke resten af koden. Det er bare min kode listet een gang til.

Du må dels kave noget kode hvor du forbinder til din database, og du må dels have noget kode hvor du forsøger at bruge funktionen i en større sammenhæng.
Avatar billede lifeweb Nybegynder
20. maj 2008 - 07:06 #9
det er ret standard det hele

Set base = Server.CreateObject("ADODB.Connection")
base.Open "Provider=SQLOLEDB.1;Server=xx;database=u;uid=u;pwd=x;network=DBMSSOCN"

og så skriver jeg eksemelvis

set rs = base.execute(Sql)
while not rs.eof
response.write rs("felt")
rs.movenext
wend


så ville jeg gerne kunne skrive
set rs = baseexecute(Sql)
while not rs.eof
response.write rs("felt")
rs.movenext
wend

istedet
Avatar billede lifeweb Nybegynder
21. maj 2008 - 15:40 #10
jeg fortsætter i et nyt spørgsmål:
http://www.eksperten.dk/spm/832245
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester