Avatar billede mallemukken Nybegynder
02. maj 2003 - 13:10 Der er 10 kommentarer og
1 løsning

ADO locktype = read only

Hej alle

Jeg har et problem med locktypen på et recordset.

jeg connecter op til en oracle database med følgende kode:

NewCnn.ConnectionString = "Provider=MSDAORA.1;Password=??;User ID=??;Data Source=xalclient;Persist Security Info=True"
NewCnn.Open
str = "SELECT ContaktsID, Navn, Navn2, Tlf, PostAdresse3, Top, LeftOf FROM VVIContakts"

NewRs.Open str, NewCnn, adOpenDynamic, adLockOptimistic, adCmdText

når jeg checker locktypen for recordsettet efter det er
åbnet står det til Read-Only.

Connectionen står til Read/write, og jeg har checket i ODBC
opsætningen at den ikke er sat til Read-only

er der nogle der har en ide, hvori det kan ligge.
Avatar billede medions Nybegynder
02. maj 2003 - 14:01 #1
NewRs.Open str, NewCnn, 1, 2

Prøv lige sådan!

//>Rune
Avatar billede mallemukken Nybegynder
02. maj 2003 - 14:11 #2
Desværre blive locktypen igen sat til 1 (readonly) når recordsettet
er åbnet
Avatar billede mortrr Praktikant
02. maj 2003 - 14:18 #3
Prøv at sætte
NewCnn.Mode=3
Før du åbner.

Men det kan jo også være det login du bruger er readonly.
Avatar billede mallemukken Nybegynder
02. maj 2003 - 14:29 #4
Det har jeg også prøvet ,, når jeg checker værdien
af newcnn.mode efter at connectionen er åbnet er den også = 3.
Avatar billede venne Nybegynder
02. maj 2003 - 15:04 #5
Jeg kan huske fra en fjern fortid at der kunne være problemer hvis man ikke har tabellens primary key med i recordsettet - har du det?
Avatar billede mortrr Praktikant
02. maj 2003 - 15:11 #6
Har lige lavet en test her, og den er faktisk altid readonly når jeg bruger MSDAORA. "Sjovt".
Jeg tror jeg har været gennem alle muligheder, men man får ikke lov at ændre data direkte i et recordset via MS-Oracle provider.
Så hvis du vil ændre data er du tvunget til at gøre det gennem update sætninger. Det er normalt også at foretrække.

Jeg har evt mulighed for at lave en test med Oracle Objects.
?
Avatar billede mallemukken Nybegynder
03. maj 2003 - 10:35 #7
til venne,,, ja jeg har primary key med i recordsettet.

til mortrr,,,.. "Sjovt" -- ja ikke, jeg er ikke rigtig med i hvad for en test
du vil lave med Oracle Objects ??. Men alt der kan afhjælpe dette problem ville
være en god ting.. Jeg kan godt Update med en SQL-sætning, men da jeg snart skal igang med en større opgave, som skal have snablen ned i Oracle, ville det være rarest at bruge ADO.
Avatar billede mortrr Praktikant
03. maj 2003 - 13:59 #8
"Oracle Objects" er Oracles version af ADO. (og nu bliver jeg helt i tvivl om det nu også er det de selv kalder det).
Den minder meget om ADO i opbygning, så det er nærmest kun åbning af connection og recordset der skal laves om.

Mht ADO, så vil det være at foretrække med sql-sætninger. Der er lidt mere besværligt i nogen tilfælde, men hvis man vænner sig til det, går det lige så hurtigt at kode.
Avatar billede venne Nybegynder
05. maj 2003 - 09:42 #9
Her fandt jeg noget hos MS:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoledbp/html/msdn_ole4orcl.asp

Der står en masse om Oracle-provideren, bla at den ikke tilbyder et opdaterbart recordset. Men under 'Getting an Updatable Rowset' står der at man bare skal ændre CursorLocation til adUseClient, så bliver det ordnet af client cursor engine.

/venne
Avatar billede mallemukken Nybegynder
05. maj 2003 - 10:01 #10
venne

Det funker bare, jeg har lige testet det og det virker bare fint.

hvis du opretter det som "Svar" kan jeg give dig point.
Jeg kan ikke se at jeg kan give dig dem på anden måde.

mallemukken
Avatar billede venne Nybegynder
05. maj 2003 - 10:06 #11
Det er altid rart at kunne hjælpe...
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