问题列表 - 第23731页

Serializable的事务隔离级别对我不起作用

我有一个网站,供商店的所有分支使用,它的作用是将客户购买记录到名为myTransactions.myTransactions表的表中,该表有一个名为SerialNumber的列.对于每次购买,我在事务表中创建一个记录并为其分配一个序列.执行此操作的存储过程在插入记录之前调用UDF函数以获取新的serialNumber.如下所示:


Create Procedure mytransaction_Insert
as begin
insert into myTransactions(column1,column2,column3,...SerialNumber) 
values( Value1 ,Value2,Value3,...., getTransactionNSerialNumber())  
end
Run Code Online (Sandbox Code Playgroud)
Create function getTransactionNSerialNumber
as
begin
RETURN isnull(SELECT TOP (1) SerialNumber FROM myTransactions READUNCOMMITTED
ORDER BY SerialNumber DESC),0) + 1
end
Run Code Online (Sandbox Code Playgroud)

该网站正在被不同商店中的许多用户同时使用,并且它创建了许多重复的serialNumbers(相同的SerialNumbers).所以我在事务中添加了一个具有ReadCommitted级别的Sql事务,我仍然有重复的事务编号.我将其更改为SERIALIZABLE以锁定资源,我不仅获得了重复的事务编号(!! HOW !!),而且我在同一存储过程调用之间也有零星的死锁.这就是我试过的:(省略了try catch块和回滚)

Create Procedure mytransaction_Insert
as begin
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRASNACTION ins
insert into myTransactions(column1,column2,column3,...SerialNumber) 
values( Value1 ,Value2 , Value3, ...., getTransactionNSerialNumber())  
COMMIT TRANSACTION ins
SET TRANSACTION ISOLATION READCOMMITTED
end
Run Code Online (Sandbox Code Playgroud)

我甚至将获取序列号的函数直接复制到存储过程而不是UDF函数调用中,并且仍然有重复的serialNumbers.So,存储过程行如何创建类似c#lock(){}块的东西.顺便说一句,我必须使用相同的模式实现事务序列号,我不能将serialNumber更改为任何其他标识字段或任何其他.由于某些原因我需要在数据库中生成serialNumber而我不能将SerialNumber生成移动到应用程序级别.


对不起,但我已经在函数中没有READUNCOMMITTED尝试了这个,但我仍然得到重复的SerialNumbers.

至于IDENTITY列,我应该说这个应用程序将被需要不同SerialNumbers的其他公司使用,我们不能简单地将其更改为标识.

sql-server transactions

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

有关实验人工神经网络的有趣想法是什么?

我正在寻找可以进行实验的可能的神经网络实现列表.可能需要一个小时到一周的时间才能写出来.

还有哪些其他可能性?

到目前为止这是列表:

一些链接到更多:

pattern-recognition neural-network

6
推荐指数
1
解决办法
1114
查看次数

jQuery - 什么是jQuery插件

谁能告诉我什么是jQuery插件?我已经使用jQuery库来构建一些小的UI增强功能,但我不知道如何实现插件.有关如何入门的任何建议?

TIA

jquery jquery-plugins

4
推荐指数
1
解决办法
330
查看次数

如何打开相对于主目录的文件

Errno::ENOENT: No such file or directory即使文件存在,以下内容也会失败:

open('~/some_file')
Run Code Online (Sandbox Code Playgroud)

但是,我可以这样做:

open(File.expand_path('~/some_file'))
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 为什么不open将波形符处理为指向主目录?
  2. 有比这更光滑的方式File.expand_path吗?

ruby

88
推荐指数
3
解决办法
4万
查看次数

在Jquery中,我如何上升父节点?

我只想上一个父节点,所以我可以在父节点内部执行.find.

从某种意义上说,我想找一个姐姐.

jquery jquery-traversing

2
推荐指数
1
解决办法
159
查看次数

PHP - 查找数组的父键

我试图找到一种方法来返回数组的父键的值.

例如,从下面的数组我想找出父元素的键,其中$ array ['id'] =="0002".父键是显而易见的,因为它在这里定义(它将是'产品'),但通常它是动态的,因此问题.但是'id'的'id'和值是已知的.

    [0] => Array
        (
            [data] => 
            [id] => 0000
            [name] => Swirl
            [categories] => Array
                (
                    [0] => Array
                        (
                            [id] => 0001
                            [name] => Whirl
                            [products] => Array 
                               (
                                    [0] => Array
                                        (
                                            [id] => 0002
                                            [filename] => 1.jpg
                                         )
                                    [1] => Array
                                        (
                                            [id] => 0003
                                            [filename] => 2.jpg
                                         )
                                )
                         )
                 )
          )
Run Code Online (Sandbox Code Playgroud)

php arrays traversal key parent

7
推荐指数
1
解决办法
2万
查看次数

scala为yield设置一个值

我想创建一个列表GridBagPanel.Constraints.我在scala编程书中看到它有一个很酷的for-yield结构,但我可能还没有理解它正常工作的方式,因为我的代码没有编译.这里是:

        val d = for {
            i <- 0 until 4
            j <- 0 until 4
        } yield {
            c = new Constraints
            c.gridx = j
            c.gridy = i
        }
Run Code Online (Sandbox Code Playgroud)

我想生成一个List[Constraints]并为每个约束设置不同的x,y值以便稍后,当我稍后添加组件时,它们将在网格中.

swing scala yield-keyword

3
推荐指数
1
解决办法
1236
查看次数

从C读取串行数据(OSX/dev/tty)

我正在尝试使用C从蓝牙条码扫描器(KDC300)读取数据.这是我到目前为止的代码,程序成功建立了与扫描仪的蓝牙连接,但是当扫描条形码时,没有输入显示屏幕(最终将完成更多的数据,但我们必须先让它工作,对吧).

这是程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <sys/ioctl.h>

int main (int argc, const char * argv[]) {

    // define vars
    int STOP = 0;
    //char buf[255];

    if(argv[1])
    {
        int fd = open("/dev/tty.KDC1", O_RDONLY);
        if(fd == -1)
        {
            printf("%s", strcat("Unable to open /dev/tty.", argv[1]));
        }

        int res;
        while(STOP == 0)
        {
            while((res = read(fd,buf,255)) == 0);
            {
                if(res > 0)
                {
                    buf[res]=0;
                    printf("%s:%d\n", buf, res);
                    if(buf[sizeof(buf)]=='\n') break;   
                }
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c serial-port screen bluetooth

0
推荐指数
1
解决办法
8238
查看次数

学习HTML和学习编程语言有什么区别?

大约8个月前我学习了HTML和CSS,最近,大约2个月前我开始学习Python和Ruby.我发现理解并且能够将Python和Ruby付诸实践比使用HTML或CSS更加困难/耗时.

如何学习/理解HTML和CSS,以及能够使用它们不同于学习Python或Ruby等编程语言,并能够将它们付诸实践.

html css

4
推荐指数
1
解决办法
524
查看次数

如何使用contentResolver更新专辑封面路径?

我想在MediaStore中为相册更新/插入新图像,但我无法让它工作..

这是我的代码:

public void updateAlbumImage(String path, int albumID) {

  ContentValues values = new ContentValues();
  values.put(MediaStore.Audio.Albums.ALBUM_ART, path);

  int n = contentResolver.update(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, values, MediaStore.Audio.Albums.ALBUM_ID + "=" + albumID, null);
  Log.e(TAG, "updateAlbumImage(" + path + ", " + albumID + "): " + n);
 }
Run Code Online (Sandbox Code Playgroud)

错误是:

03-24 03:09:46.323: ERROR/AndroidRuntime(5319): java.lang.UnsupportedOperationException: Unknown or unsupported URL: content://media/external/audio/albums
03-24 03:09:46.323: ERROR/AndroidRuntime(5319):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:131)
03-24 03:09:46.323: ERROR/AndroidRuntime(5319):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:111)
03-24 03:09:46.323: ERROR/AndroidRuntime(5319):     at android.content.ContentProviderProxy.update(ContentProviderNative.java:405)
03-24 03:09:46.323: ERROR/AndroidRuntime(5319):     at android.content.ContentResolver.update(ContentResolver.java:554)
03-24 03:09:46.323: ERROR/AndroidRuntime(5319):     at com.liviu.app.smpp.managers.AudioManager.updateAlbumImage(AudioManager.java:563)
03-24 03:09:46.323: ERROR/AndroidRuntime(5319): …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
1
解决办法
5845
查看次数