相关疑难解决方法(0)

Sybase中神秘的'timestamp'数据类型是什么?

我最近在Sybase数据库中发现了一个使用"timestamp"类型列的表.如果我使用这个神秘的时间戳数据类型创建一个表

create table dropme (
    foo timestamp,  
    roo int null
)
insert into dropme (roo) values(123)
insert into dropme (roo) values(122)
insert into dropme (roo) values(121)
select * from dropme
go
Run Code Online (Sandbox Code Playgroud)

我从'select*from dropme'获得以下内容:

 foo                  roo
 -------------------- -----------
   0x000100000e1ce4ea         123
   0x000100000e1ce4ed         122
   0x000100000e1ce509         121
Run Code Online (Sandbox Code Playgroud)

0x000100000e1ce4ea对我来说看起来不是很时间.另外,我从'sp_help timestamp'看到了这个输出:

 Type_name Storage_type Length Prec Scale Nulls Default_name Rule_name Access_Rule_name Identity
 --------- ------------ ------ ---- ----- ----- ------------ --------- ---------------- ----------
 timestamp varbinary         8 NULL  NULL     1 NULL         NULL      NULL                   NULL
Run Code Online (Sandbox Code Playgroud)

我的问题如下

  1. 什么是时间戳?
  2. 它与时间或日期有任何关系吗?
  3. 我可以将其转换为日期时间吗?
  4. 如果不是时间或日期,你用它做什么?

sql sybase

16
推荐指数
2
解决办法
4万
查看次数

监视用户会话以防止编辑冲突

我正在研究类似于pastebin的东西(是的,它通用的),但允许多个用户编辑.显而易见的问题是多个用户试图编辑同一个文件.我正在考虑当一个用户正在处理文件时锁定文件(这不是最好的解决方案,但我不需要太复杂的东西),但为了防止/警告用户我显然需要一个用于监控每个用户的编辑会话的系统.使用数据库和ajax,我正在考虑两个解决方案.

第一种方法是让编辑页面以任意间隔(例如一分钟)ping服务器,它将更新数据库中的编辑会话条目.然后,下一次脚本请求编辑时,它会检查最近的ping,如果最近一次是另一个任意时间,比如五分钟,那么我们假设前一个用户已退出,并且可以再次编辑该文件.当然,这种方法的问题在于前一个用户退出的假设只是一个假设.他可能有一个片状的Wi-Fi连接,只是在窗户仍然打开的情况下辍学十分钟.

当然,为了解决这个问题,我们必须让服务器响应来自先前关闭的会话的新请求并发出错误,告诉客户端指出用户他的会话已经结束,然后处理它比方说,将其保存为服务器上的另一个文件并要求用户手动合并等等.不言而喻,这对最终用户来说相当可怕.

所以我想到了另一个解决方案.unload当用户的会话结束时,也可能会触发事件,但我无法确定这是否可靠.

有没有人对这个问题有任何其他更优雅的解决方案?

javascript ajax session conflict

5
推荐指数
1
解决办法
2231
查看次数

标签 统计

ajax ×1

conflict ×1

javascript ×1

session ×1

sql ×1

sybase ×1