Avatar billede jaguaren Nybegynder
09. maj 2006 - 11:47 Der er 8 kommentarer og
1 løsning

database opdateres ikke til tiden

Access, ASP
Efter jeg har kørt en INSERT INTO øsnker jeg at lave en SELECT query på den samme side, men der er tydeligvis et lag der gør at SELECT statement'et opfatter databasen som ikke opdateret.

Jeg går udfra, at dette skyldes, at der kun foretages et kald til serveren på load - eller hvad?
Avatar billede keysersoze Guru
09. maj 2006 - 11:57 #1
som udgangspunkt er det intet problem at inserte og selecte på samme side og få alt (også den insertede post) ud. Problemet må ligge et andet sted - kan du evt give lidt kode?
Avatar billede jaguaren Nybegynder
09. maj 2006 - 12:02 #2
Ok, tak.

<%

set objUE1 = Server.CreateObject("ADODB.Recordset")
objUE1.ActiveConnection = conn
sql = "INSERT INTO temp_UE2AIDREL ( AID, Id, Name ) SELECT T_UE2_AID_REL.AID, T_SubEmne2.Id, T_SubEmne2.Name FROM T_SubEmne2 LEFT JOIN T_UE2_AID_REL ON T_SubEmne2.Id=T_UE2_AID_REL.UE2 WHERE T_UE2_AID_REL.AID= " & request.form("art") & ""
'objUE1.open sql

set objUE3 = Server.CreateObject("ADODB.Recordset")
objUE3.ActiveConnection = conn
sql = "INSERT INTO temp_UE2noAIDREL ( Aid, Id, Name ) SELECT 0, T_SubEmne2.Id, T_SubEmne2.Name FROM T_SubEmne2 LEFT JOIN temp_UE2AIDREL ON T_SubEmne2.Id=temp_UE2AIDREL.Id WHERE (((temp_UE2AIDREL.Id) Is Null))"
'objUE3.open sql


set objUeAidRelRs = Server.CreateObject("ADODB.Recordset")
objUeAidRelRs.ActiveConnection = conn
sql = "select * from temp_UE2AIDREL union select * from temp_UE2noAIDREL ORDER BY id"
objUeAidRelRs.Open sql

do while not objUeAidRelRs.eof
        response.write objUeAidRelRs.fields.item("id").value & " " & objUeAidRelRs.fields.item("name").value & "<br>"
objUeAidRelRs.movenext
loop
%>
Avatar billede jaguaren Nybegynder
09. maj 2006 - 12:04 #3
NOTE: Hvis jeg kommenterer INSERT-statements ud (som ovenfor) og laver istedet laver INSERT'en direkte i databasen - virker det.
Avatar billede erikjacobsen Ekspert
09. maj 2006 - 12:21 #4
Du skal vel udføre din sql-sætninger. Lav
    'objUE1.open sql
om til
    objUE1.open sql
Avatar billede jaguaren Nybegynder
09. maj 2006 - 12:24 #5
ja, ja. DEt var en fejl, at jeg kopierede den udkommenterede kode, men det virker ikke selvom, udkommenteringen fjernes.
Avatar billede erikjacobsen Ekspert
09. maj 2006 - 12:34 #6
Ok, men nu er der ikke nogen grund til at oprette et recordset, når der ikke returneres noget fra sql sætningen. Du kan nøjes med

sql = "INSERT INTO temp_UE2AIDREL ( AID, Id, Name ) SELECT T_UE2_AID_REL.AID, T_SubEmne2.Id, T_SubEmne2.Name FROM T_SubEmne2 LEFT JOIN T_UE2_AID_REL ON T_SubEmne2.Id=T_UE2_AID_REL.UE2 WHERE T_UE2_AID_REL.AID= " & request.form("art") & ""
conn.Execute sql
Avatar billede jaguaren Nybegynder
09. maj 2006 - 13:16 #7
Tak for det - det hjalp under alle omstændigheder på hastigheden.

Jeg har 'løst' problemet ved at redirect'e, så får DB'en åbenbart den tid den skal bruge.
Avatar billede erikjacobsen Ekspert
09. maj 2006 - 13:26 #8
Det lyder ikke som en holdbar løsning, at indsætte en tilfældig forsinkelse. Hvilket databasesystem bruger du?
Avatar billede jaguaren Nybegynder
23. januar 2007 - 12:12 #9
jeg lukker
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