Database 使用唯一的数字在datetime字段中存储值

Database 使用唯一的数字在datetime字段中存储值,database,delphi,Database,Delphi,我有以下情况,如果您能为我提供解决此问题的建议,我将不胜感激 我们有一个数据库应用程序,它包含一个日期时间字段。我们过去从未使用过此字段,但现在在安装了100次之后,我们需要使用此字段,但发现它不应该是DateTime字段 我们可以创建脚本来更改数据库,但这将涉及太多的工作 该字段需要存储一个唯一的值,我想知道给定一个字符串是否可以获得一个唯一的数字,然后将其存储在dateTime字段中(这是一个双精度值) 我发现这个方法: function Unc(s: string): UInt64;

我有以下情况,如果您能为我提供解决此问题的建议,我将不胜感激

我们有一个数据库应用程序,它包含一个日期时间字段。我们过去从未使用过此字段,但现在在安装了100次之后,我们需要使用此字段,但发现它不应该是DateTime字段

我们可以创建脚本来更改数据库,但这将涉及太多的工作

该字段需要存储一个唯一的值,我想知道给定一个字符串是否可以获得一个唯一的数字,然后将其存储在dateTime字段中(这是一个双精度值)

我发现这个方法:

   function Unc(s: string): UInt64;
   var
     x: Integer;
   begin
     Result := 0;
     for x := 1 to Length(s) do
       Result := Result + ((Ord(s[x])) shl ((x - 1) * 8));
   end;
返回的值将分配给DateTime字段

这会像我担心的范围检查错误/整数溢出那样起作用吗?或者有更好的方法来做到这一点(而不是使用可能是正确的方法的脚本)


JD

我更愿意用正确的方法创建脚本来更改DB,因为它没有被使用。这应该不是一个大问题(没有数据转换等)

您正在使用哪个数据库引擎?我们的桌面版本使用firebird,服务器版本使用SQL server。我们正在使用Bold for delphi,它允许我们交换数据库,而不必担心数据库层。同意。为什么删除一个未使用的列并添加一个新的列“工作量太大”,而设计一个转换例程并确保它有适当的安全检查却没有太多工作量?!?我们正在使用bold for delphi,我不想生成模型,然后将其存储在我们不断发展的应用程序中,因为这意味着需要更多的测试。我试图找到一个快速的解决方案。看来我必须以正确的方式进行,因为我无法保证获得的值(唯一编号)可以存储在Firebird或SQL server的数据库字段中。感谢您的输入。讽刺的是,使用模型驱动开发架构的人仍然发现很难处理模型修订更改。对JD没有不敬,但我发现这降低了我对所有“模型驱动开发”涅磐理念的信心。我知道,出于支持目的,Bold现在已经过时了,但是对于本机win32 Delphi,已经没有真正的MDD工具/组件集了,是吗?@Warren这取决于您是否想将ORM称为MDD。hcOPF看起来很有希望: