BenTiC
04-19-2004, 01:42 AM
hi,
Currently I'm programming a reservation tool for a hotel. This includes a graphical layout (vbscheduler 2.0) where you can click on a kind of calendar to reserve a chamber for a day. When you click there is an entry made in the database (ms-access), now this takes about 2-3 seconds to update...
way to slow... the problem is when you click you get a label which you can resize... when you resize, the database gets updated...
so if you resize to fast, or click to fast, you get screwed up reservations...
now the question is... how to make the database update faster? Im using ado and ms-jet engine, changing the database (for example to my-sql) is not an option :s (project too far)
edit: ms-access db is on local machine
add code:
ds.AddNew
ds("v_res_id") = reservatieNr ' invullen van het reservatienummer
ds("v_i_id") = CrntData(c).ResNumber ' invullen van het item id
ds("v_i_color") = CrntData(c).dColor
ds("v_i_index") = CrntData(c).dIndex
ds("v_i_text") = CrntData(c).dText
sd = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
st = ConvToValue(Sch(Idx), CrntData(c).xStart, 1)
ds("v_vandatum") = sd + Int(st) 'opslaan van datum
ds("v_vanmoment") = st - Int(st) 'opslaan van het uur
et = ConvToValue(Sch(Idx), CrntData(c).xEnd + 1, 1)
ed = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
ds("v_totdatum") = ed + Int(et)
ds("v_totmoment") = et - Int(et)
ds("v_gevr") = 1
ds.Update
end add code
modify code
ds.MoveFirst
ds.Find "v_i_index = '" & CrntData(c).dIndex & "'"
If ds.EOF Then
MsgBox "error"
Else
ds("v_i_id") = CrntData(c).ResNumber
'ds("ItemResName") = CrntData(c).ResName
ds("v_i_color") = CrntData(c).dColor
ds("v_i_text") = CrntData(c).dText
sd = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
st = ConvToValue(Sch(Idx), CrntData(c).xStart, 1)
'sd = sd + Int(st)
ds("v_vandatum") = sd + Int(st)
ds("v_vanmoment") = st - Int(st)
sd = sd + st
CrntData(c).dIndex = Year(sd) & Month(sd) & Day(sd) & Hour(sd) & Minute(sd) & Second(sd) '& CrntData(c).ResNumber
ds("v_i_index") = CrntData(c).dIndex
ed = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
et = ConvToValue(Sch(Idx), CrntData(c).xEnd + 1, 1)
ds("v_totdatum") = ed + Int(et)
ds("v_totmoment") = et - Int(et)
ds.Update
End If
end modify code
connection:
Set cnDomein = New ADODB.connection
cnDomein.CursorLocation = adUseClient
cnDomein.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;data source=" & locatie & ";"
ds recordset:
sql = "SELECT * FROM verhuur WHERE v_totdatum >=" & sd & " and v_vandatum <=" & ed
Set ds = New ADODB.Recordset
ds.Open sql, db, adOpenDynamic, adLockOptimistic
Currently I'm programming a reservation tool for a hotel. This includes a graphical layout (vbscheduler 2.0) where you can click on a kind of calendar to reserve a chamber for a day. When you click there is an entry made in the database (ms-access), now this takes about 2-3 seconds to update...
way to slow... the problem is when you click you get a label which you can resize... when you resize, the database gets updated...
so if you resize to fast, or click to fast, you get screwed up reservations...
now the question is... how to make the database update faster? Im using ado and ms-jet engine, changing the database (for example to my-sql) is not an option :s (project too far)
edit: ms-access db is on local machine
add code:
ds.AddNew
ds("v_res_id") = reservatieNr ' invullen van het reservatienummer
ds("v_i_id") = CrntData(c).ResNumber ' invullen van het item id
ds("v_i_color") = CrntData(c).dColor
ds("v_i_index") = CrntData(c).dIndex
ds("v_i_text") = CrntData(c).dText
sd = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
st = ConvToValue(Sch(Idx), CrntData(c).xStart, 1)
ds("v_vandatum") = sd + Int(st) 'opslaan van datum
ds("v_vanmoment") = st - Int(st) 'opslaan van het uur
et = ConvToValue(Sch(Idx), CrntData(c).xEnd + 1, 1)
ed = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
ds("v_totdatum") = ed + Int(et)
ds("v_totmoment") = et - Int(et)
ds("v_gevr") = 1
ds.Update
end add code
modify code
ds.MoveFirst
ds.Find "v_i_index = '" & CrntData(c).dIndex & "'"
If ds.EOF Then
MsgBox "error"
Else
ds("v_i_id") = CrntData(c).ResNumber
'ds("ItemResName") = CrntData(c).ResName
ds("v_i_color") = CrntData(c).dColor
ds("v_i_text") = CrntData(c).dText
sd = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
st = ConvToValue(Sch(Idx), CrntData(c).xStart, 1)
'sd = sd + Int(st)
ds("v_vandatum") = sd + Int(st)
ds("v_vanmoment") = st - Int(st)
sd = sd + st
CrntData(c).dIndex = Year(sd) & Month(sd) & Day(sd) & Hour(sd) & Minute(sd) & Second(sd) '& CrntData(c).ResNumber
ds("v_i_index") = CrntData(c).dIndex
ed = ConvToValue(Sch(Idx), CrntData(c).yGrpNum, 0)
et = ConvToValue(Sch(Idx), CrntData(c).xEnd + 1, 1)
ds("v_totdatum") = ed + Int(et)
ds("v_totmoment") = et - Int(et)
ds.Update
End If
end modify code
connection:
Set cnDomein = New ADODB.connection
cnDomein.CursorLocation = adUseClient
cnDomein.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;data source=" & locatie & ";"
ds recordset:
sql = "SELECT * FROM verhuur WHERE v_totdatum >=" & sd & " and v_vandatum <=" & ed
Set ds = New ADODB.Recordset
ds.Open sql, db, adOpenDynamic, adLockOptimistic