|
Access is a bad production database because it is so open. Can you use SQL Express or some other for the back end?
Note when you use a password on Access you open a new set of problems.
|
|
|
|
|
If it's not possible to use SQL Server as others have suggested, you can always encrypt data that's being written into the DB, where the encryption library will be in your application. But it's not fool proof, and it'll mightily slow down all data access.
SG
Aham Brahmasmi!
|
|
|
|
|
I am onto a project of backoffice management of International stock exchanges. I need to manage trades of different stock exchanges there. The date and time I am getting from exchange is according to their time zone. Further I need to calculate some thing using their time. Some of reports I need to generate after converting the time to my time zone that is IST (I am from India).
Now what I have in my mind is to store the time provided by the exchange with the time zone (of the exchange) and also the converted (to IST) time.
I am looking for some idea how to store the time zone and the converted time into database.
Is there any facility in SQL server to time between time zones or I have to keep the time gap between zones?
I have found
SQL 2005 Time Zone Conversion Functions[^]
and
http://msdn.microsoft.com/en-us/library/ms145276%28SQL.90%29.aspx[^]
But, what would be the best practice to do such thing?
|
|
|
|
|
The best method for dealing with data from different time zones is to store all time values as UTC times (i.e. zone 0). Where necessary keep also a note of the time zone offset for the record, or the particular account customer. You can then calculate time differences in absolute terms when trying to sort transactions into time order etc. When producing reports for consumers you should add their personal time zone offset to the time values, so the consumer sees report data in their own time zone.
It's time for a new signature.
|
|
|
|
|
Yes I agree. Actually I was in a bit dilemma because I will get the data from exchange side (they are providing flat files) will be in their time zone. So I need to convert it into UTC first. But in some day end calculations I need to use their time also, so in that time I need to convert it again into their time zone.
However perhaps I will store it in UTC format ultimately.
Thank you Richard
|
|
|
|
|
As a general rule you should never store times in a localtime format, they should always be stored as UTC values. This allows you to manipulate them in any way necessary, time difference, sorting etc. It is only necessary to convert to localtime when you wish to display it for the end user irrespective of what time zone that user is in.
It's time for a new signature.
|
|
|
|
|
|
While saving the time from another time zone, just save value returned by GetDate function. It gives current time in the current timezone. In case you are looking for GMT times, use GetUtcDate function.
|
|
|
|
|
Yes thats right. But I dont want to store the current time. I need to use the time provided by the exchange. Thats why I was thinking what to do
Thank you nish.
|
|
|
|
|
in my table i am entering values like A/101/2010,A/102/2010.......A/1000/2010
after this value when i use MAx() function which return me A/999/2010
now i need the query which should return this value 'A/1000/2010' and on words plz help me out.....
|
|
|
|
|
You should write an user defined function for your issue because the values which you are storing are not number data type. Also you need to sort the records based on year which is last 4 chars in your sample value. So write an UDF.
|
|
|
|
|
Nikhil Bhivgade wrote: A/101/2010
That looks like three values to me. How about splitting them over different columns? That way you could easily SORT the values any way you'd want
I are Troll
|
|
|
|
|
Hi All !
I create a Query Form from a table in MS Access. in this form i Create 2 TextBoxes an a Button for Fliter Data. I want to Filter Data , when a user inpute dates in the TextBoxes .
what's the code of filter in VBA?
thanks
|
|
|
|
|
I hope you did not wait for an answer - a simple search [^]would have given you many answers
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Can anyone with any more DB experience than me, please suggest ANY reason this doesn't work... its driving me mad!
So, the in my UI the user can create an "assembly" by adding "components" to a list. I have an assembly table that links the ID of the assembly with the IDs of its constituent components, and the quantity of each component in the assembly.
Users now want to be able to create a new assembly based on an old one, so I need a copy function. Easy I though, I'll just crib the code from the single-component-add function and loop around it...
HA!
I end up with the new assembly item, but I lose the component list. The code below just creates the requisite number of blank (0, 0, 0) records in the Assembly table, but it all looks right in the debugger. Why?
if (m_pMainGrid->m_bCopyingAssembly)
{
CDaoDatabase* pDB = GetDatabase();
CString Filter;
CAssemRecords* OldAssRS = new CAssemRecords(pDB);
CAssemRecords* NewAssRS = new CAssemRecords(pDB);
try
{
Filter.Format("SELECT * FROM Assemblies WHERE [Assembly Key] = %ld", lOldComponentKey);
OldAssRS->Open(dbOpenDynaset, Filter, 0);
NewAssRS->Open(dbOpenDynaset, "SELECT * FROM Assemblies", 0);
if (!(OldAssRS->IsBOF() || OldAssRS->IsEOF()))
{
OldAssRS->MoveFirst();
do
{
NewAssRS->AddNew();
NewAssRS->Initialise();
NewAssRS->m_Assembly_Key = lNewComponentKey;
NewAssRS->m_Item_Key = OldAssRS->m_Item_Key;
NewAssRS->m_Number_Length = OldAssRS->m_Number_Length;
NewAssRS->Update();
OldAssRS->MoveNext();
} while (!OldAssRS->IsEOF());
}
ASSERT(OldAssRS->IsOpen());
if (OldAssRS->IsOpen())
{
OldAssRS->Close();
}
if (OldAssRS)
{
delete OldAssRS;
}
OldAssRS = NULL;
ASSERT(NewAssRS->IsOpen());
if (NewAssRS->IsOpen())
{
NewAssRS->Close();
}
if (NewAssRS)
{
delete NewAssRS;
}
NewAssRS = NULL;
m_pMainGrid->SetCopyingAssem(FALSE);
}
catch(CDaoException *e)
{
ASSERT(e->ReportError());
e->Delete();
OldAssRS->Close();
NewAssRS->Close();
return;
}
catch(CMemoryException *e)
{
e->Delete();
OldAssRS->Close();
NewAssRS->Close();
return;
}
}
|
|
|
|
|
Not being familiar with CDO and recordset operations I will give you the pseudo code that I would use
copy the assembly record into variables/object
insert the variables/object into a new record
save the record and get the new assembyid
get a list of the old assembly components
loop through component list
copy component details into variables/object
save the component with the new assemblyid
repeat for each assembly
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
As it turns out, in my RecordSet class m_bCheckCacheForDirtyFields was set to FALSE. This turns off automatic double buffering and means you have to manually set fields dirty, otherwise they won't save when you call Update.
Blah. Flip the switch and it works...
|
|
|
|
|
hi guys
is there any way to convert sql2005 database objects to sqlserver 2008 objects?
show me how?
|
|
|
|
|
SQL 2008 comes with a "Copy Database Wizard" you can make use of that to move your database from SQL 2005 to SQL 2008.
|
|
|
|
|
Restore or attach the 2005 database to your sql2008 server and change the compatibility level.
Just what are you expecting to change when you move to 2008?
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
How's this for weird?
One of my co-workers was attempting to develop an update trigger for an application that is developed using power-builder and (as far as I can tell) communicates to the database through a Sybase layer. The application is talking to a SQL Server 2005 server with a database set to SQL Server 2000 compatibility level.
In the trigger, he is inserting into a table variable and running some logic based on that. The entire trigger runs just fine through all test cases in the DB; however it fails when the update is called from the application. With the error: Row changed between retrieve and update. Not having access to the application source, we couldn't debug very much through the app and Google was not our friend.
Through debugging the trigger, we found the insert statement to be the culprit, but only when it insert 0 records into the table variable(we knew the logic below the trigger to be irrelevant as it was commented out).
Being curious about the error message, I went ahead and printed @@error before and after the insert; then tested through Management Studio. I received no errors. Still curious, we ran the update through the app. We encountered no errors here either. Eventually we found that printing anything before the insert resolved the issue. In an attempt to figure out the problem, I even tried PRINT char(13)+'(0 row(s) affected)' . It ran with no problem through the app.
Happy to be rid of the error, my colleague continued his development; but we're still wondering: "WTF?"
What do you guys think? Shall we chalk it up to Sybase oddities or is there a reasonable explanation for this?
modified on Friday, August 27, 2010 9:47 PM
|
|
|
|
|
WTF, who was the evil bastard who architected this abomination. With so many competing and disparate layers you are going to get insane problems like this one! When it come down to the point where the solution is based on a print statement I would want nothing to do with it. run away, run away very fast
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
LOL! I've been saying the same thing for three years. Either I'll convince someone that we need to write our own application to replace this one, or hope the vendor moves away from this model.
|
|
|
|
|
Hello !
i try to use the command
DoCmd.OutputTo acOutputReport, RptName, "SnapshotFormat(*.snp)", _
strPathandFileName
Works just fine. I want this process to be automatic and hidden from the user, but a window pops up with a "Cancel" button. I don't want to allow the user the cancel option, and I'd prefer to have that pop-up window be invisible. Can I do either of these things:
1. Prevent that window from popping up (or make it invisible)
in lieu of that,
2. Change that popup window to have no Cancel button.
Help me !
Thank you in advance.
|
|
|
|
|