Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何在每次数据库转换后更新所有客户端_Sql Server 2005_Client Server - Fatal编程技术网

Sql server 2005 如何在每次数据库转换后更新所有客户端

Sql server 2005 如何在每次数据库转换后更新所有客户端,sql-server-2005,client-server,Sql Server 2005,Client Server,我正在使用WPF、SQL Server和WCF开发一个基于客户机-服务器的应用程序。这基本上是一种POS应用程序,不使用任何POS库,但功能几乎相同。服务器端编码几乎完成了。现在我转到客户端编码。我对WCF和客户机-服务器体系结构的WCF first应用程序是新手,所以在开始编码之前,我有一些疑问。据我的客户人员说,他应该能够从客户计算机和服务器上打印商品销售账单备忘录。每个备忘都应该有一个交易的备忘号,该备忘号应该自动递增,销售人员应该能够看到他将要使用的备忘号。为此,我在应用程序销售窗口中添

我正在使用WPF、SQL Server和WCF开发一个基于客户机-服务器的应用程序。这基本上是一种POS应用程序,不使用任何POS库,但功能几乎相同。服务器端编码几乎完成了。现在我转到客户端编码。我对WCF和客户机-服务器体系结构的WCF first应用程序是新手,所以在开始编码之前,我有一些疑问。据我的客户人员说,他应该能够从客户计算机和服务器上打印商品销售账单备忘录。每个备忘都应该有一个交易的备忘号,该备忘号应该自动递增,销售人员应该能够看到他将要使用的备忘号。为此,我在应用程序销售窗口中添加了一个Memo No字段,该字段将显示数据库中的Memo No Last Memo No+1

问题来了,假设有3个销售柜台,当销售人员打开各自的销售窗口进行计费时,他们所有人都会看到最后一个备注No+1。如果其中3个同时开票,则将为3个不同的交易存储相同的备忘编号

我必须告诉你们,我在数据库中有两个表来存储销售额。表1存储折扣、总计、销售人员id和备忘号,表2存储备忘号、项目代码、数量、账单日期等。因此,它的备忘号绑定了两个表,如果对其进行操作,则您知道它会在月度报告中造成什么混乱


这种情况在我脑中泛滥,来到这里寻求解决办法。我能做些什么来克服这个问题。任何建议、链接、代码都是非常有用的。

< P>你可以考虑修改你的设计,以便在客户开始销售时分配一个备忘录号码。 实现这一点的一种方法是使用另一个表来存储备忘录编号的顺序:

CREATE TABLE MemoSequence
(MemoId int identity(1,1),
 DateAssigned datetime
)
每次在客户机上打开销售窗口时,应将当前日期/时间插入MemoSequence.DateAssigned,并使用输出子句或SCOPE_标识将相应的MemoId值作为MemoId返回给客户机

这样,每个客户都将从交易开始时获得一个唯一的备忘录编号


注意-如果要求备忘录编号序列中没有间隔,则这可能不是一个合适的解决方案。

客户端是否始终连接到数据库?我无法找到您。但为了澄清,我托管了一个WCF windows服务,它使用数据访问层与数据库通信,客户端连接到服务,通过函数调用将数据发送到此WCF服务。这就是逻辑。