Avatar billede agerled Nybegynder
03. maj 2004 - 10:38 Der er 19 kommentarer og
1 løsning

min function kan ikke opdatere DB

jeg bruger disse functions til at åbne,forespørge og lukke min db.

Mit problem er at jeg ikke kan skrive til databasen. Jeg får denne fejl:

ADODB.Recordset error '800a0cb3'

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

/hitrate_savedata.asp, line 81

...Hvad kan jeg gøre?

<%
dim ConnXal1

Function Xal1Conn()

    DSNXAL1 = "dsn=xxx;uid=xxxx;pwd=xxxx;"
    Set ConnXal1 = Server.CreateObject("ADODB.Connection")
    ConnXal1.Open DSNXAL1

End Function

Function Xal1(sRSSource)

    Xal1Conn()
   
    strSQL = sRSSource
   
    Set Xal1 = ConnXal1.Execute(strSQL)

End Function

Sub CloseXal1()
    ConnXal1.Close
    Set ConnXal1 = Nothing
End Sub
%>
Avatar billede and_ Nybegynder
03. maj 2004 - 10:40 #1
prøv dette

    DSNXAL1 = "dsn=xxx;uid=xxxx;pwd=xxxx;"
    Set ConnXal1 = Server.CreateObject("ADODB.Connection")
    ConnXal1.Open DSNXAL1, 1, 3
Avatar billede agerled Nybegynder
03. maj 2004 - 10:43 #2
så får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'

[Oracle][ODBC][Ora]ORA-01017: ugyldigt brugernavn/adgangskode; logon afvist

/OracleConnXal1.asp, line 9
Avatar billede and_ Nybegynder
03. maj 2004 - 10:46 #3
jeg står af på oracle databaser ;)
beklager :)
Avatar billede agerled Nybegynder
03. maj 2004 - 10:49 #4
bare i orden... eller andre der har forslag?
Avatar billede lundsgaard Nybegynder
03. maj 2004 - 11:35 #5
Hej,
Jeh går ud fra at du har testet dit brugerid/password må netop denne database fra en alminde lige sqlplus client, Ellers vil det være et godt tidpunkt at gøre det på nu. Hvis du har prøvet mange gange at logge på uden succes kan din db bruger nemlig blive låst.
Avatar billede agerled Nybegynder
03. maj 2004 - 11:40 #6
jo det kunne godt være det der er problemet. kigger lige på det..
Avatar billede pnielsen Nybegynder
03. maj 2004 - 12:18 #7
ORA-01017: ugyldigt brugernavn/adgangskode er jo ret sigende.

Sørg for at den bruger du benytter har adgang til databasen - og at du kan logge ind med det username/password med f.eks. sqlplus.
Avatar billede agerled Nybegynder
03. maj 2004 - 12:27 #8
mit login bliver afvist når jeg vil skrive til databasen, men når jeg kun skal læse fra den virker det fint. Hvad kan det være..???
Avatar billede bimbambusse Nybegynder
03. maj 2004 - 12:35 #9
Jeg antager at det ikke er et objekt/tabel du selv ejer ??
Log da ind som brugeren der ejer objektet og grant update og insert til din bruger
Avatar billede agerled Nybegynder
03. maj 2004 - 12:46 #10
Jeg har før kunne srive til databasen og jeg kan stadig manuelt indsætte rækker i enterprise manageren.

Før brugte jeg denne kode:

<%

dim oracleconnobj, oraclerstobj

Function OpenoracleConn()

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

oracleConnObj.Open "dsn=xxx;uid=xxx;pwd=xxx;"



End Function

Function Openoracle(sRSSource)
   
        OpenoracleConn()
   
    Set oracleRstObj = Server.CreateObject("ADODB.Recordset")
    oracleRstObj.Open sRSSource, oracleConnObj, 1,&H0002
    RSCounter = oracleRstObj.RecordCount
    Set Openoracle = oracleRstObj
   
    Set oracleRstObj = Nothing
   
End Function

Sub CloseoracleConn()
    oracleConnObj.Close
End Sub

%>

... med ovenstående kode kunne jeg bare ikke lave distinct og sum forespørgsler til oracle, så jeg ville prøve en anden måde. Jeg lavede den så om til koden nedenfor. Med den nye kode kan jeg sagtens lave distinct og sum forespørgsler, men nu kan jeg bare ikke skrive til DB'en

den ny kode:

<%
dim ConnXal1

Function Xal1Conn()

 
    DSNXAL1 = "dsn=xxx;uid=xxx;pwd=xxx;"
    Set ConnXal1 = Server.CreateObject("ADODB.Connection")
    ConnXal1.Open DSNXAL1, 1,&H0002

End Function

Function Xal1(sRSSource)

    Xal1Conn()
   
    strSQL = sRSSource
   
    Set Xal1 = ConnXal1.Execute(strSQL)

End Function

Sub CloseXal1()
    ConnXal1.Close
    Set ConnXal1 = Nothing
End Sub
%>
Avatar billede agerled Nybegynder
03. maj 2004 - 12:49 #11
jeg prøver at indsætte en ny række således:

set rs = xal1("select * from users")
rs.addnew()
rs("navn") = "test"
rs.update()
set rs = nothing

og så er det jeg får fejlen..
Avatar billede olet Nybegynder
06. maj 2004 - 12:29 #12
Generelt savner jeg at du Dim'er dine variable med en tilhørende type, men det er jo en smagssag. Men jeg vil anbefale dig at ændre din Xal1 function til dette:


Public Function Xal1(ByVal SQLQuery As String, oRecordset As ADODB.Recordset)                            As Boolean

    Xal1 = False
    On Error Goto Leave

    Set oRecordset = New ADODB.Recordset
    Set oRecordset.ActiveConnection = ConnXal1
    oRecordset.CursorLocation = adUseClient
    oRecordset.CursorType = adOpenStatic
    oRecordset.LockType = adLockOptimistic
   
    oRecordset.open SQLQuery
    'disconnect the recordset
    Set oRecordset.ActiveConnection = Nothing
   
    Xal1 = True

Leave:

End Function
Avatar billede olet Nybegynder
06. maj 2004 - 12:30 #13
Og så kalde med:

Xal(rs, "select * from users")
Avatar billede agerled Nybegynder
10. maj 2004 - 12:46 #14
olet -->>


jeg får denne fejl når jeg afprøver din function...??

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/test4.asp, line 15

Public Function Xal2(ByVal SQLQuery As String, oRecordset As ADODB.Recordset)
------------------------------------^
Avatar billede olet Nybegynder
10. maj 2004 - 13:24 #15
sorry, mit eksempel er VB, du skal lige tilrette til VB Script
Avatar billede agerled Nybegynder
10. maj 2004 - 17:36 #16
hvordan gør jeg det?
Avatar billede olet Nybegynder
10. maj 2004 - 20:25 #17
Jeg begynder at se en vis tendens her. Du bør nok lige standse op og læse lidt omkring ASP, VBS og ADO, inden du går videre. Ikke ment negativt, men jeg tror at du har brug for lidt mere basisviden. En gylden regel her på Eksperten er vel formentlig at man FORSØGER at komme videre selv og ikke bare spørger løs ....
Avatar billede and_ Nybegynder
19. maj 2004 - 15:08 #18
lukketid?
Avatar billede and_ Nybegynder
19. januar 2005 - 11:01 #19
så må det da være lukketid...!
Avatar billede agerled Nybegynder
20. januar 2005 - 07:30 #20
ja..
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