Concurrency And Timestamp Or Datetime

Mar 20, 2006

Hi everyone!

I've read a lot of document about optimistic concurrency and different implementations which made me decide to chose the timestamp/datetime approuch to validate if another user has editet the record.

I'm saying timestamp OR datetime because I dont really care which one to use but I can't make any of them work as expected.


Here is my setup:

I'm using a DataSet (autogenerated by Visual Studio 2005) with 4 stored procedures to select, update, delete and insert records.
I'm using a GridView to show these values but when using a timestamp in the database the parameter type in my ObjectDataSource is an Object which ofcause ins't right and I can't change it to Byte[].
If I instead use a Datetime I believe that the date formatting is done somehow (even though i make the field ReadOnly in the GridView) - I can see the date is shown as: "01-01-1900 00:01:07" but the actually SQL that is executed is: 'Jan  1 1900 12:01:07:000AM' why this differense?

So my question is which one should I use and how - the datetime/timestamp dosn't have to be shown - I would actually prefer that the datetime/timestamp was somehow hidden from the presentationlayer and only present in the data access layer but still would be transfered to and from the database when doing updates etc.

Best of all I could use a working example.

Thanks in advance :-)

View 2 Replies


ADVERTISEMENT

Timestamp Concurrency Control With SQLDataSource

Nov 10, 2005

I am trying to use a 'timestamp' type column with SQLDataSource for concurrency control with SQL Server.  I'm getting the following error:
Operand type clash: timestamp is incompatible with sql_variant
It appears that the problem is that the value for the Type property of the Parameter (which was generated by the SqlDataSource wizard) is Object which maps to 'sql_variant' rather than to 'timestamp'.
I know that the older way of doing things with SqlDataAdapter, SqlCommand, SqlParameter can handle timestamps because SqlParameter has a SqlDbType property that can have a value of SqlDbType.Timestamp, but I don't see how to do this with the newer SqlDataSource, Parameter classes because the Parameter.Type property (of type TypeCode) doesn't have a Timestamp value.
Has anyone been able to use a 'timestamp' type field with SqlDataSource?
Here's my sample code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyTestPage.aspx.cs" Inherits="MyTestPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>Untitled Page</title></head><body><form id="form1" runat="server"><div><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"EmptyDataText="There are no data records to display." DataKeyNames="MyID"><Columns><asp:CommandField ShowEditButton="True" /><asp:BoundField DataField="MyID" HeaderText="MyID" InsertVisible="False" ReadOnly="True"SortExpression="MyID" /><asp:BoundField DataField="MyDesc" HeaderText="MyDesc" SortExpression="MyDesc" /></Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"ConnectionString="<%$ ConnectionStrings:CtrlConnectionString1 %>" DeleteCommand="DELETE FROM [MyTest] WHERE [MyID] = @original_MyID AND [MyDesc] = @original_MyDesc AND [timestamp] = @original_timestamp"InsertCommand="INSERT INTO [MyTest] ([MyDesc], [timestamp]) VALUES (@MyDesc, @timestamp)" OldValuesParameterFormatString="original_{0}"ProviderName="<%$ ConnectionStrings:CtrlConnectionString1.ProviderName %>" SelectCommand="SELECT [MyID], [MyDesc], [timestamp] FROM [MyTest]"UpdateCommand="UPDATE [MyTest] SET [MyDesc] = @MyDesc WHERE [MyID] = @original_MyID AND [MyDesc] = @original_MyDesc AND [timestamp] = @original_timestamp"><DeleteParameters><asp:Parameter Name="original_MyID" Type="Int32" /><asp:Parameter Name="original_MyDesc" Type="String" /><asp:Parameter Name="original_timestamp" Type="Object" /></DeleteParameters><UpdateParameters><asp:Parameter Name="MyDesc" Type="String" /><asp:Parameter Name="timestamp" Type="Object" /><asp:Parameter Name="original_MyID" Type="Int32" /><asp:Parameter Name="original_MyDesc" Type="String" /><asp:Parameter Name="original_timestamp" Type="Object" /></UpdateParameters><InsertParameters><asp:Parameter Name="MyDesc" Type="String" /><asp:Parameter Name="timestamp" Type="Object" /></InsertParameters></asp:SqlDataSource></div></form></body></html>

View 3 Replies View Related

Error While Converting Oracle Timestamp To Sql Server Timestamp (datetime) - Invalid Date Format

Jun 19, 2007

I am populating oracle source in Sql Server Destination. after few rows it fails it displays this error:

[OLE DB Destination [16]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005 Description:
"Invalid date format".



I used this script component using the following code in between the adapters, However after 9,500 rows it failed again giving the same above error:








To convert Oracle timestamp to Sql Server timestamp

If Row.CALCULATEDETADATECUST_IsNull = False Then

If IsDate(DateSerial(Row.CALCULATEDETADATECUST.Year, Row.CALCULATEDETADATECUST.Month, Row.CALCULATEDETADATECUST.Day)) Then

dt = Row.CALCULATEDETADATECUST

Row.CALCULATEDETADATECUSTD = dt

End If

End If



I don't know if my code is right . Please inform, how i can achieve this.

View 6 Replies View Related

Datetime With Timestamp

Oct 10, 2007



Hi friends,

how we can take datetime with timestamp ex: 09/10/2007 11:20 in parameter. Is any other way to select time with date in parameters.

thanks

View 1 Replies View Related

Anyone Know How To Extract Datetime From Timestamp?

May 8, 2007

Anyone know how to convert a timestamp value to datetime that I can read?

When I run this:


Code:


select * from trans
where convert(datetime , time_stamp) >= getdate()-1
--'time_stamp' is the name of the column



I get:


Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type datetime.

(0 row(s) affected)

View 1 Replies View Related

Datetime With Timestamp In Parameters

Oct 10, 2007



Hi friends,

I want a parameter with datetime along timestamp. For example end user sholud select datetime and timestamp i.e. 11/02/2007 11:10. Is datetime type is sufficient. or is any other way to solve this problem.

View 1 Replies View Related

Convert A Timestamp To A Datetime

Apr 25, 2008

Is it possible to convert a timestamp value to its associated datetime?

I know that the timestamp is not directly convertable to a datetime but does the database know at what time that timestamp was assigned?

Jacob

View 8 Replies View Related

SQL Query Error - Datetime Timestamp??

Oct 3, 2007

So, what's wrong with this datetime syntax to the sql query? I'm getting error here..


Code:


insert into tbl_database_profile
(latest_date, version)
values
(datetime, '1')



The datatype for the field "latest_date" is datetime....

Thanks...

View 3 Replies View Related

Convert Db2 Timestamp To Sql Server Datetime

May 9, 2006

can someone please supply some information to help with this??

I am moving data from db2 8.1 for windows. the dates in db2 are defined as timestamp. i want to convert these to sql server datetime format in sql server 2000 using dts and sql.

does anyone have examples or something??

any help would be greatly appreciated.

View 1 Replies View Related

Unix Timestamp To DATETIME Datatype

Jan 16, 2004

Hi all,

I have moved a mysql table to SQL Server and the table had an int datatype storing the value of the Unix timestamp. I want to convert this datatype into a DATETIME type in SQL Server.

Any ideas how I could do it?

Thanks in advance.

View 8 Replies View Related

Timestamp To Datetime Conversion In Primary Key

Jul 10, 2006

Hi,
I'm trying to persist a field of type java.sql.Timestamp to a column of type datetime in sql server 2005. I get an exception :
java.lang.UnsupportedOperationException: cannot perform lookups on timestamps. The field i'm trying to persist is a part of a composite primary key. The detailed exception is as follows:


12:13:55,110 WARN [RequestProcessor] Unhandled Exception thrown: class java.lang.UnsupportedOperationException
12:13:55,110 WARN [RequestProcessor] Unhandled Exception thrown: class java.lang.UnsupportedOperationException
12:13:55,120 ERROR [[action]] Servlet.service() for servlet action threw exception
java.lang.UnsupportedOperationException: cannot perform lookups on timestamps
at org.hibernate.type.TimestampType.getHashCode(TimestampType.java:98)
at org.hibernate.type.AbstractType.getHashCode(AbstractType.java:113)
at org.hibernate.type.ComponentType.getHashCode(ComponentType.java:199)
at org.hibernate.engine.EntityKey.getHashCode(EntityKey.java:65)
at org.hibernate.engine.EntityKey.(EntityKey.java:38)
at org.hibernate.event.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:135)
at org.hibernate.event.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:106)
at org.hibernate.event.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:180)
at org.hibernate.event.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:31)
at org.hibernate.event.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:169)
at org.hibernate.event.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:25)
at org.hibernate.event.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:65)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:479)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:474)


I have tried these with my other tables and never got an exception. but this is the first time i'm trying timestamp to datetime conversion with a primary key.

Can anyone suggest what could be the reason?

Thanks, Nithya.

View 2 Replies View Related

Transact SQL :: Round Off Timestamp In DateTime To 11:00 Or 23:00

Oct 5, 2015

I have a datetime stamp and I want to round off the the time to 11:00 if the timestamp is between 5AM and 5PM. If it is beyond then round off to 23:00. I don't use date I only use timestamp in my query so I just want to round off the timestamp. Is there is function to do that.

View 3 Replies View Related

Convert SQL Datetime To DB2/iseries Timestamp

Apr 25, 2007

I am using SSIS to move data from SQL Server 2000 to DB2 on the Iseries. I am using DB2OLEDB provider to connect to the DB2 database. The problem I am running into is the DB2 Timestamp format is 'yyyy-mm-dd-hh.mi.ss' and I am unable to get my Date format correct.



Inside SSIS I have created a custom script to and parse the SQL date to this format using a string but I can cast the string back to date format.



Any help would be Great.



Alan

View 2 Replies View Related

How To Convert A Timestamp Into DateTime In SQLServer 2000

Jun 12, 2006

Hi Everyone,
 
We have a table in SqlServer 2000 with a column type TimeStamp and contain value such as 0x00000000656AC51F. Are there any way for me to convert that value back to DateTime? I tried to use cast function like:
Select cast (MyTimeStampCol as DateTime) myDate from MyTableand I encountered error below.
 
Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type datetime.
 
Regards,
JDang

 

View 11 Replies View Related

Import DT_DBDATE Into A SQL TAble With Datatype Of Datetime But Without The Timestamp

Jul 16, 2007

I created a SSIS package and creating a derived column named: Date...set datatype as DT_DBDATE....I do not want the timestamp on date...then I want to load this Date into a SQL server database table, with datatype of datetime, but it will load here with the timestamp which I do not want. Any ideas? I did change datatype of the SQL Server Destination datatype to DT_DBDATE but it will change it back to DT_DBTimestamp. thx

View 1 Replies View Related

How To Convert SQL Server Datetime To Oracle Timestamp (or Other Type With Similar Precision)?

Jul 10, 2007

In SQL Server I've created a linked server to an Oracle database. I am trying to insert (within the context of an sql server table trigger) an SQL Server datetime to an Oracle column with similar precision. Oracle timestamps are not compatible with sql server datetimes and I don't know how to convert the data (or if I should use a different type of column to store the data in Oracle). I have full control over the structure of the Oracle table so I can use a different type if timestamp is not best, but I need the destination column to have at least the same precision as the sql server datetime value. What is the easiest way to do this?

View 22 Replies View Related

Transact SQL :: Query To Display Avg Values For Each Timestamp And Count Of Timestamp

Jun 23, 2015

date        time         s-sitename TimeTaken(Seconds)
6/8/2015 10:56:26 TestSite 100
6/8/2015 10:56:26 TestSite 500
6/8/2015 10:56:26 TestSite 800
6/9/2015 11:56:26 TestSite 700
6/9/2015 11:56:26 TestSite 200
6/12/2015 12:56:26 TestSite 700

I have a table with above values, I am looking for a sql query to find AvgTimeTaken at different time stamps and total count of each time stamp

Output
date        time         s-sitename TimeTaken(Seconds) Count_of_Request
6/8/2015 10:56:26 TestSite 1400                  3
6/9/2015 11:56:26 TestSite 900                   2
6/12/2015 12:56:26 TestSite 700                   1

View 5 Replies View Related

Get Row Timestamp With No Timestamp Column

Jul 10, 2007

For starters, please feel free to move this if it is in the wrong forum.



The issue I have is this. I have been asked to delete all information from a table that was inserted before May 12 this year. The issue is that when the DB was created, whoever designedd it neglected to add a timestamp column for the user data table (the one I need to purge). Does SQL, by default, happen to store insert times? Would it be something that might hide ina log file somewhere?

View 4 Replies View Related

Concurrency In Asp.net

Oct 25, 2006

Hi everybody,I need to understand how concurrency excatly
work in asp.net. For example, I'm confused what happens if two users at
the same time try to access the same record in a table or even the same
variable. Do ASP.NET handle this , I mean by locking one user and
letting the other to have access  OR it's up to the programmer to write
some code to lock shared resources such as database , objects and
variables?If it's up to the programmer to do this task, I appreciate if you can show me an example that clarifies that.Thank you

View 2 Replies View Related

Concurrency, Have I Got This More Or Less Right?

Jul 23, 2005

Following on from a thread I started about "concurrency" (real-time-ishsystem), I thought I would play about to see if I could easily adapt my datamodel to take account of potential multi-user write conflicts. So, I wouldappreciate you checking my logic/reasoning to see if this kind of thingwill work. Below I have a stored procedure that will simply delete a givenrecord from a given table. I have appended a "_Written" counter to thecolumns of the table. Every time the record is written, the counter isincremented. Clients store the current _Written count in their objects andpass this in to any write procedure executed.The procedure explicitly checks the _Written count within the transaction tosee if it agress with the written count passed in by the client. If it doesnot, the client throws an error. Note I am explicitly checking the_Written count precisely so I can determine exactly why this operation mightfail, rather than checking @@ROWCOUNT after an update.Thanks.RobinCREATE PROCEDURE dbo.proc_DS_Remove_DataSet@_In_ID INTEGER,@_In_Written INTEGERASDECLARE @Error INTEGERDECLARE @WRITTEN INTEGERBEGIN TRANSACTIONSET @Error = @@ERRORIF @Error = 0BEGINSELECT @WRITTEN = _Written FROM MyTable WHERE ID = @_In_IDSET @Error = @@ERRORIF @WRITTEN <> @_In_WrittenBEGINRAISERROR ('10', 16, 1)SET @Error = @@ERRORENDENDIF @Error = 0BEGINDELETE FROM MyTable WHERE ID = @_In_IDSET @Error = @@ERRORENDIF @Error = 0COMMIT TRANSACTIONELSEROLLBACK TRANSACTIONRETURN @Error

View 5 Replies View Related

Concurrency

May 27, 2007

Do single commands (or stored procedures) execute concurrently, or they are executed one by one. How do you perform a lock during the execution of a command (or stored procedure).

View 3 Replies View Related

Object Concurrency

Jun 20, 2006

I have a user object that is stored in the session for each user but what if an administrator updates a certain user and I want to reflect the update to the user if they are logged in?One possible way of solving this is:Each time the user goes to a page, check the user table and compare the timestamp. That would mean if 30 users refresh the page..the db would hit 30 times lol. I don't think that would scale very well.Any ideas on how to solve this?

View 5 Replies View Related

UPDATE Concurrency?

Aug 4, 2006

I have a table where I count how many emails of a given type are sent out each day. This incrementing is wrapped in a sproc that either inserts a new row, or updates the existing row. The column that counts the value is named Count of type INT.
Below is the sproc, seems like a straightforward thing. However, I'm seeing email counts higher than they should be when there's a high number of concurrent executions of the sproc. I'm pretty sure it's not a problem in the calling code, so I'm wondering about the UPDATE statement, since it updates a column based on the value of the column. I would think this should work since it's wrapped in a SERIALIZABLE transaction, anybody have further insight?
SQL Server 2005 by the way.
Sean
CREATE PROCEDURE [dbo].[IncrementEmailCounter](    @siteId SMALLINT,    @messageType VARCHAR(20),    @day SMALLDATETIME) ASBEGIN    SET NOCOUNT ON;
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE    BEGIN TRANSACTION
    IF (SELECT COUNT(*) FROM EmailCount WHERE SiteId = @siteId AND MessageType = @messageType AND [Day] = @day) = 0        INSERT INTO EmailCount (SiteId, MessageType, [Day], [Count]) VALUES (@siteId, @messageType, @day, 1)    ELSE        UPDATE EmailCount SET [Count] = [Count] + 1 WHERE SiteId = @siteId AND MessageType = @messageType AND [Day] = @day
    COMMIT TRANSACTION    SET TRANSACTION ISOLATION LEVEL READ COMMITTEDEND

View 3 Replies View Related

Database Concurrency

Feb 17, 2007

I'm wondering whether the following code would work if users are RAPIDLY registering (assumption) WITH the same username.public bool UsernamExists(string username)
{
string sql = "SELECT true FROM [users] WEHRE username = @username;";
return Convert.ToBoolean(comm.ExecuteScalar());
}

public bool Signup(User user)
{
bool usernameExists = UsernameExists(user.Username);
if( usernameExists ) return false;

//update or insert sql for user etc blah blah
} If two users try to signup AT THE VERY SAME TIME (DOWN TO THE NANOSECOND), would this technique work? Do I have to wrap it in a transaction, stored procedure??  Thanks. 

View 8 Replies View Related

Optimistic Concurrency Help

Jun 1, 2007

Hi,I'm trying to implement Optimistic Concurrency in asp 2 but so far it has caused me nothing but problems.First, when doing an UPDATE I tried to use the primary key & a timestamp field which I had in SQL Express.. VS 2005 generated the stored procedures fine however when it came to the actual updating I think there was a problem with the conversion of the timestamp field when it was being stored in a text box (in a FormView control). So.. as a result that failed. And also I checked sooo many places online and haven't been able to find any examples of code where a timestamp was used with success in asp2.Next, I got ride of the timestamp type (in SQL Express database) and used a datetime and then.. I just implemented Optimistic Concurrency by passing in ALL the values (ie all the original values) like is proposed http://www.asp.net/learn/dataaccess/tutorial21vb.aspx?tabid=63 . This... works however I really do not want to have to pass in ALL these values (ie original and new).Ideally I would like to be able to use the primary key & the datetime field to handle the Optimistic Concurrency checks where only the original values of both those fields are passed back into the stored procedure. Now.. I tried this as well, but I kept getting an error that suggests that (for some reason) the FormView or DataSource is passing ALL the values (original & new) into the dataset as opposed to only the original primary key & datetime fields & the new set of values.Can ANYONE offer any help? I really would like not to have to pass in all these values.Thanks in advance! 

View 6 Replies View Related

Concurrency Control

Apr 6, 2005

Hi! I'm building a web application with ASP.NET, and using MS SQL 2000 for my database server.
How should I do to guarantee the integrity of the data in spite of the concurrent access? Meaning... how can I make sure that more than 1 user can update 1 table at the same time, while no error will occur? Do I need to add some codes at my aspx file? Or do I need to do something to my database? Or do I not have to worry about it?
Thank you.

View 1 Replies View Related

Concurrency Issue

Sep 27, 1999

Can anyone help with concurrency issues. Small network and only one person at a time can log into the database.
It was originally written in MS Access and converted to SQL 7.0 with a VB front end.

Thanks,

Rick

View 1 Replies View Related

SQL Server 6.5 SMP Concurrency

Feb 2, 1999

We have two processors on which sql server was installed.

SMP Concurrency opion is -1. and process priority is 0.

The computer is dedicated to Sql server.

with the same setup, has any body faces any problem....?

some times suddenly system hangs... sql sever takes 99% cpu usage ...

Shall I run the SQL Executive, SQL Performance Monitor with this setup...?

will it afect the system...?

[ this kind of setup - those you experienced.. ]

please reply immediately....

thanks

Wincy

View 1 Replies View Related

SMP Concurrency Configuration

Mar 31, 1999

Hello,
SQL Server6.5 is installed on a dual processor computer. So can I make use of dual processors by setting SMP concurrency to -1 or 2.

I tried setting these values but failed to do so. Server is running at setting 1 always, irrespective of configured value.

Any suggestion???

Srini

View 3 Replies View Related

Concurrency Issues

Sep 6, 2004

Is there any way to get the sample below working so that both "threads" are guaranteed to get unique and incrementing values?

I'm suspecting the answer is no. You can use transactions on completely database oriented operations that read/write to a database and complete. But there aren't complete synchronization controls for operations like below that try to return a value to an outside process.


IF OBJECT_ID('SimpleTable') IS NOT NULL
DROP TABLE SimpleTable

CREATE TABLE SimpleTable (
A INTEGER
)
INSERT INTO SimpleTable (A) VALUES (1)

-- Run in one window
DECLARE @value INTEGER

BEGIN TRANSACTION
SELECT TOP 1 @value = A FROM SimpleTable
WAITFOR DELAY '00:00:05'
UPDATE SimpleTable SET A = @value + 1
COMMIT TRANSACTION

SELECT @value
SELECT A FROM SimpleTable

-- Run in a second window
DECLARE @value INTEGER

BEGIN TRANSACTION
SELECT TOP 1 @value = A FROM SimpleTable
UPDATE SimpleTable SET A = @value + 1
COMMIT TRANSACTION

SELECT @value
SELECT A FROM SimpleTable

View 7 Replies View Related

Concurrency Question

Oct 5, 2006

Suppose process A is updating record #1 in table T.

By default, can other processes read record #1 while the updating is in progress ??

If the answer is Yes, then which value can they see - the old one or the new one ?

Thank you in advance.

View 1 Replies View Related

Question About Concurrency

Aug 16, 2006

Did I understand correctly the Pesimistic access:
When we choose pessimistic access
-we lock all the rows of the table. right.
-other users still can access the table if they specify read only mode meaning if their intention is to only read the data and not modify it. am I right

Thanks for your help.

View 1 Replies View Related

Cursors And Concurrency

Sep 21, 2006

In a previous post, the theme of cursors and concurrency was touched as a secondary subject. I have a specific question about it as the primary one:

if we have
--------
create proc myProc
as
declare cursor for
select * from mytable
go
----------
if two or more clients(webpages for example)
execute myProc concurrently will the cursor be safe ? or would I have to make special arrangements, there are a couple of procs (that use cursors)that somebody else did and would not like to modify but we want to make the procs web available,

thank you

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved