NateDizzle
asked on
Simultaneous Crystal Report Generation - how to distribute and generate dynamic crystal reports while multiple users are logged on.
Hi all, I'm a co-op student working in Toronto and I've taken over the old co-op student's web app project.
The app gathers a bunch of data through layers of pages and what not, then, once data entry is complete the user can print a report summarizing and charting the info. The current system works fine - when only ONE user is trying to print a report - but when a user tries to print the same report while another report is being generated it will error or the report will be mixed data.
I'm trying to figure out the best way to isolate the users sessions so this doesn't happen. Additionally, the user will need to be provided raw Access files (the database is oledb) of their data as well....this part I need to write from scratch.
What's the best method to solve this dilemma?
I was thinking of creating a folder per user whlie they are logged in and keeping all their session files in that, kinda like a shopping cart...but I have never tried something like this, and there must be a tried and tested method that you guys can enlighten me with. The site traffic will not be very large so the memory is not a huge issue, but a robust scalable solution is preferable.
Thanks guys.
The app gathers a bunch of data through layers of pages and what not, then, once data entry is complete the user can print a report summarizing and charting the info. The current system works fine - when only ONE user is trying to print a report - but when a user tries to print the same report while another report is being generated it will error or the report will be mixed data.
I'm trying to figure out the best way to isolate the users sessions so this doesn't happen. Additionally, the user will need to be provided raw Access files (the database is oledb) of their data as well....this part I need to write from scratch.
What's the best method to solve this dilemma?
I was thinking of creating a folder per user whlie they are logged in and keeping all their session files in that, kinda like a shopping cart...but I have never tried something like this, and there must be a tried and tested method that you guys can enlighten me with. The site traffic will not be very large so the memory is not a huge issue, but a robust scalable solution is preferable.
Thanks guys.
this is a function to create a .mdb on the fly for you:
Public Function CreateAccessDatabase( _
ByVal DatabaseFullPath As String) As Boolean
Dim bAns As Boolean
Dim cat As New ADOX.Catalog()
Try
'Make sure the folder
'provided in the path exists. If file name w/o path
'is specified, the database will be created in your
'application folder.
Dim sCreateString As String
sCreateString = _
"Provider=Microsoft.Jet.OL EDB.4.0;Da ta Source=" & _
DatabaseFullPath
cat.Create(sCreateString)
bAns = True
Catch Excep As System.Runtime.InteropServ ices.COMEx ception
bAns = False
'do whatever else you need to do here, log,
'msgbox etc.
Finally
cat = Nothing
End Try
Return bAns
End Function
'DEMO
' If CreateAccessDatabase("F:\t est.mdb") = True Then
' MsgBox("Database Created")
' Else
' MsgBox("Database Creation Failed")
' End If
Public Function CreateAccessDatabase( _
ByVal DatabaseFullPath As String) As Boolean
Dim bAns As Boolean
Dim cat As New ADOX.Catalog()
Try
'Make sure the folder
'provided in the path exists. If file name w/o path
'is specified, the database will be created in your
'application folder.
Dim sCreateString As String
sCreateString = _
"Provider=Microsoft.Jet.OL
DatabaseFullPath
cat.Create(sCreateString)
bAns = True
Catch Excep As System.Runtime.InteropServ
bAns = False
'do whatever else you need to do here, log,
'msgbox etc.
Finally
cat = Nothing
End Try
Return bAns
End Function
'DEMO
' If CreateAccessDatabase("F:\t
' MsgBox("Database Created")
' Else
' MsgBox("Database Creation Failed")
' End If
ASKER
Aeros Saga:
The users need unique, filtered databases. i.e. a standard query will grab the data that they need and then put it into the newly created database file for them.
Do you have any good links for accomplishing the user authentication bit? As of right now the authentication is strictly a database check of the username and password. Authentication is set to "windows" but anonymous access is still checked. I can log on as many times as I want from a number of different machines under the same login.
The users need unique, filtered databases. i.e. a standard query will grab the data that they need and then put it into the newly created database file for them.
Do you have any good links for accomplishing the user authentication bit? As of right now the authentication is strictly a database check of the username and password. Authentication is set to "windows" but anonymous access is still checked. I can log on as many times as I want from a number of different machines under the same login.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
The users need unique, filtered databases. i.e. a standard query will grab the data that they need and then put it into the newly created database file for them.
No they don't they need a correctly setup real RDMS such as sql server. Not the hacked access approach that you so unfortunately inherited.
No they don't they need a correctly setup real RDMS such as sql server. Not the hacked access approach that you so unfortunately inherited.
ASKER
Tell me about it. Thanks for the links that you provided.
Your very welcome
Aeros
Aeros
1) if the crystal reports are getting mixed up then theres a problem with that routine
2) If you correctly authenticate your user, this should help
3) When they download the .mdb do they get the whole site, or does each user have his/her own .mdb
basically if you correct the existing design problems all should be well, but I would rethink the download.mdb bit.
I know your gonna have about a billion other questions, so I'll leave it at this for now and wait for your rebuttle.
Aeros