Avatar billede kledal Nybegynder
18. november 2002 - 12:01 Der er 20 kommentarer og
1 løsning

hvad skal jeg gøre????

Jeg har et problem, jeg har en database, der er flere brugere der har muligheder for at ændre i denne database. Jeg skal gøre sådan at hvis to brugere ændrer i den samme tabel, samtiddig, så skal den ene ikke få lov til at ændre noget!!
Hvad skal jeg gøre??
Avatar billede tele_lucien Nybegynder
18. november 2002 - 12:11 #1
Kontakt gud@kan-alt.gud

;-)
Avatar billede bennytordrup Nybegynder
18. november 2002 - 12:40 #2
Umiddelbart inden, den ene bruger forsøger at lave en update, så start en transaktion (Begin transaction) og afslut den efter ændringen (commit transaction)
Avatar billede kledal Nybegynder
18. november 2002 - 12:42 #3
benny.tordrup > kan du forklare lidt nærmere?? :-)
Avatar billede bennytordrup Nybegynder
18. november 2002 - 12:43 #4
I SQL:

<bruger 1>

begin transaction
update EnTabel set EtFelt=NyVærdi
commit transaction
Avatar billede kledal Nybegynder
18. november 2002 - 12:46 #5
mener du sådan her :
SQL = begin transaction "update tabel set ****" commit transaction?
eller
begin transaction
SQL = "update tabel set *****"
OBjConn.Execute(SQL)
commit transaction ???
Avatar billede bennytordrup Nybegynder
18. november 2002 - 12:49 #6
objconn.begintrans
objconn.execute(sql)
objconn.committrans
Avatar billede kledal Nybegynder
18. november 2002 - 12:52 #7
altså
SQL = "update tabel set navn = 'hej'"
ObjConn.begintransaction
ObjConn.Execute(SQL)
ObjConn.committransaction

sådan ??
Avatar billede bennytordrup Nybegynder
18. november 2002 - 12:56 #8
Ja.

Du kan evt. lave fejltjek og lave on objconn.rollback, hvis der skulle ske fejl i din SQL.
Avatar billede kledal Nybegynder
18. november 2002 - 13:09 #9
hvad hvis jeg gerne vil have en speciel fejlmelding, hvis der sker fejl i min SQL?? kan det ordnes?
Avatar billede bennytordrup Nybegynder
18. november 2002 - 13:13 #10
On Error goto DefaultErrHandler

  ...
  SQL = "update tabel set navn = 'hej'"
  On Error Goto UpdateErr
  ObjConn.begintransaction
  ObjConn.Execute(SQL)
  ObjConn.committransaction
  On Error goto DefaultErrHandler

ExitSub:
  exit sub

DefaultErrHandler:
  <Standard fejl håndtering - evt Resume next>

UpdateErr:
  <Speciel fejlhåndtering - kig på Err objektets indhold>
  objconn.rollback
  resume ExitSub
Avatar billede kledal Nybegynder
18. november 2002 - 13:25 #11
Syntax error

/fg12/indsæt_i_database.asp, line 431

On Error Goto UpdateErr

det giver denne fejl!
Avatar billede kledal Nybegynder
18. november 2002 - 13:25 #12
Microsoft VBScript compilation error '800a03ea'

Syntax error

/fg12/indsæt_i_database.asp, line 431

On Error Goto UpdateErr

undskyld, sådan her ser fejlen ud
Avatar billede bennytordrup Nybegynder
18. november 2002 - 13:26 #13
Har du et label ved navn UpdateErr
Avatar billede kledal Nybegynder
18. november 2002 - 13:27 #14
On Error Goto UpdateErr
                ObjConn.begintransaction
                ObjConn.Execute(SQL)
                ObjConn.committransaction
                On Error goto DefaultErrHandler
               
                ExitSub:
                exit sub
               
                DefaultErrHandler:
                <Standard fejl håndtering>
                UpdateErr:
                <Speciel fejlhåndtering>
                objconn.rollback
                resume ExitSub

har skrevet følgende som du skrev jeg skulle
Avatar billede kledal Nybegynder
18. november 2002 - 13:34 #15
hvad mener du med label??

SQL = "UPDATE trin1 SET trin_1_status ='tidligere' WHERE id='"& strId &"' AND trin_1_version='"& varTrin_1_version &"'"
On Error Goto UpdateErr
ObjConn.begintransaction
ObjConn.Execute(SQL)
ObjConn.committransaction
On Error goto DefaultErrHandler
               
ExitSub:
exit sub
               
DefaultErrHandler:
<Standard fejl håndtering>
UpdateErr:
<Speciel fejlhåndtering>
objconn.rollback
resume ExitSub

Jeg har skrevet dette i min kode.
Som du kan se er det skrevet umiddelbart efter SQL'en, er det forkert? Skal den stå andre steder??

mvh kledal
Avatar billede bennytordrup Nybegynder
18. november 2002 - 13:38 #16
Du kan ikke bruge andet end On Error Resume Next i VBScript. Desværre
Avatar billede kledal Nybegynder
18. november 2002 - 13:40 #17
JEG KAN IKKE EVENTUELT SIGE ON ERROR msgbox "Fejl" history.back(-1) eller sådan noget??
Avatar billede bennytordrup Nybegynder
18. november 2002 - 13:42 #18
Ikke så vidt, jeg kan se
Avatar billede bennytordrup Nybegynder
18. november 2002 - 13:42 #19
Bortset fra det, så er det her ved at høre hjemme i ASP i stedet for MS SQL
Avatar billede kledal Nybegynder
18. november 2002 - 13:44 #20
ok, tak for hjælpen, så prøver jeg at få svar på det sidste der, men det virkede ihvertfald, tusind tak
Avatar billede kledal Nybegynder
18. november 2002 - 15:11 #21
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'begintransaction'.

/fg12/indsæt_i_database.asp, line 74

når jeg ligepludselig får denne fejl, hvad gør man så??
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
Computerworld tilbyder specialiserede kurser i database-management

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