问题列表 - 第36902页

避免在数据库中重复标识符

注意:请回答所有的答案,谢谢,但我们已经有一个序列..并且不能使用UNIQUE约束,因为有些项目需要重复...我需要以某种方式使用PLSQL处理这个,所以基于一些标准(使用一个如果声明)我需要确保没有重复的东西..而且只是为了确认,这些标识符是非常自定义的不同类型的字符串..并且对于每组字符串,我们有一个数字仅仅为该字符串计数(STR-STR - ####)我们有数百种这样的STR-STR组合,对于每种组合,我们都有一个####,它们可以计算......除此之外,还允许一些STR-STR组合有重复..所以我们不能使用UNIQUE CONTRAINTS,我们不能使用PRIMARY KEY,因为它不是一个简单的数字,最重要的是我们确实有一个PRIMARY KEY分配给每个项目..这些标识符适用于用户,而不适用于数据库管理.

当用户创建一个项目时,基于某个creteria,我们给项目一定数量..在保存功能中,调用一个函数来准备第一个初始字符串,然后扫描保存数字的表格并且分配该特定字符串的下一个可用4位数字.

现在有一些问题,在获取下一个数字和提交数据库之间有大约1000行代码.问题是当2个人在几秒钟内创建具有相同标准的项目时,有时会发出相同的数字.

我所做的就是在提交之前,我检查数据库中的数字,如果存在,我调用该函数再次获取下一个可用数字...

即使这段代码减少了重复的可能性,如果我同时保存2个项目,我仍然会得到一个重复的数字..

任何人都知道如何避免重复并将重复数字的机会降至0?

EDIT1:我们已经有了一个主键..这个标识符是一个特殊的字符串,并且非常自定义,因此不可能只使用从0开始计数的数字

编辑2:还有一些情况我们需要重复..这是非常小的(可能大约10个不同的项目轨道使用重复)所以在我使用if语句提交之前检查重复项之前,所以如果项目保存dosn' t属于应该有重复的系统之一,我跳过检查...

编辑3:我们在这里使用PL/SQL

编辑4:我猜这个问题是非常具体的,我没有完全传达它.虽然有很多答案,但没有人真的抓住了我的问题..无论如何,我解决了问题并在下面添加了我的答案..

sql oracle plsql duplicates no-duplicates

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

如何使用tsql更新具有增量值的列?

我想用增量值更新一个表的名字和姓氏.例如:-

ID   FirstName  
1    Demo_01    
2.   Demo_02
3.   Demo_03
4.   And so on....
Run Code Online (Sandbox Code Playgroud)

该表有1000个记录.但出于演示目的,我们不想共享真实姓名.那么请帮助如何使用"Demo_ +增量值"更新名字?

t-sql sql-server

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

在ASP.NET中,获取请求的基本URl的最快方法是什么?

是否有一种快速的方法来获取ASP.NET中的方案,主机,端口(仅当不是80)和应用程序路径?

据我所知,我需要组装以下部分:

  • Request.Url.Scheme
  • Request.Url.SchemeDelimiter
  • Request.Url.Authority(虽然它可能总是包括端口,即使它是80)
  • Request.ApplicationPath

那不是一个简单的财产吗?

asp.net url request

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

将数组转换为csv

如何将数组转换为CSV文件?

这是我的阵列:

stdClass Object
(

    [OrderList_RetrieveByContactResult] => stdClass Object
        (
            [OrderDetails] => stdClass Object
                (
                    [entityId] => 1025298
                    [orderId] => 10952
                    [orderName] => testing
                    [statusTypeId] => 4652
                    [countryCode] => AU
                    [orderType] => 1
                    [invoiceNumber] => 0
                    [invoiceDate] => 0001-01-01T00:00:00
                    [userID_AssignedTo] => 11711
                    [shippingAmount] => 8.95
                    [shippingTaxRate] => 0
                    [shippingAttention] => 
                    [shippingInstructions] => 
                    [shippingOptionId] => 50161
                    [discountCodeId] => 0
                    [discountRate] => 0
                    [totalOrderAmount] => 408.45
                    [directDebitTypeId] => 0
                    [directDebitDays] => 0
                    [isRecur] => 
                    [nextInvoiceDate] => 0001-01-01T00:00:00
                    [endRecurDate] => 0001-01-01T00:00:00
                    [cycleTypeID] => …
Run Code Online (Sandbox Code Playgroud)

php csv arrays

38
推荐指数
4
解决办法
13万
查看次数

更改system.io.port datareceived事件输出类型

我正在为modbus和串行连接构建一个类库,我需要返回一个字节数组,但是当使用System.IO.Ports中的DataReceived事件时,由于它的类型为void,我无法返回任何内容.此外,我注意到DataReceived没有触发.以下是我的代码:

        public void ConnectSerialModBus_Loopback(string COM, int baud, int meter_address, int function, int Code_HighByte, int Code_LowByte, int data_high_byte, int data_low_byte)
    {
        SerialPort port = new SerialPort(COM, baud);
        try
        {

            if (!(port.IsOpen))
            {
                byte[] sendPacket = BuildPacket(meter_address, function, Code_HighByte, Code_LowByte, data_high_byte, data_low_byte);
                double dataBytes = 2.0;

                port.Open();
                port.RtsEnable = false;//rts = high
                port.Handshake = Handshake.None;
                //SEND PACKET TO DEVICE
                port.Write(sendPacket, 0, sendPacket.Length);

                #region RECEIVE DATA FROM SERIAL
                //MAKE DELAY TO SEND
                Thread.Sleep(10);

                port.RtsEnable = true;
                //MAKE DELAY TO RECEIVE
                port.DataReceived += new …
Run Code Online (Sandbox Code Playgroud)

.net c# serial-port modbus

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

有没有办法让Bitbucket每次进行远程Mercurial操作时都要求我输入密码?

使用我推送的所有其他Mercurial存储库,我可以在我的hgrc中设置我的用户名和密码(实际上,我使用Windows时为Mercurial.ini)在特定域中进行操作,Mercurial不会提示我进行身份验证信息.但是,即使有这些设置,Bitbucket 总是要求我输入密码.

我的设置如下:

[auth]
bitbucket.prefix = bitbucket.org
bitbucket.username = myusername
bitbucket.password = mypassword
Run Code Online (Sandbox Code Playgroud)

正如我所说,这些设置适用于我推送的所有其他回购.

mercurial bitbucket

39
推荐指数
2
解决办法
9218
查看次数

如何使用iPhone的相机跟踪运动?

我看到有人制作了一个使用相机跟踪你的脚的应用程序,这样你就可以在iPhone屏幕上踢一个虚拟足球.

你怎么能这样做?有没有人知道有关使用iPhone相机检测对象和跟踪它们的任何代码示例或其他信息?

iphone motion-detection motion augmented-reality

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

如何注意Qt中的MySql Server关闭

当我关闭MySql服务器时,我怎么能理解mysql服务器已经远离我的Qt程序?

编辑:

在这里我的试用:

当我关闭MySql时,我得到了这些结果,我无法理解MySql已关闭.

我的代码片段是

QSqlQuery query(db);
query.exec("SELECT * From RequestIds");
qDebug()<<query.lastError();
qDebug()<<db.lastError()<<QTime::currentTime();
qDebug()<<db.isOpen();
qDebug()<<db.isValid();
Run Code Online (Sandbox Code Playgroud)

输出是:

QSqlError(2006, "QMYSQL: Unable to execute query", "MySQL server has gone away") 
QSqlError(-1, "", "") QTime("14:22:58") 
true 
true
Run Code Online (Sandbox Code Playgroud)

我不明白为什么db.isOpen()返回true.

c++ mysql qt database-connection

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

VS 2008 Professional,智能设备.NET C#项目 - 慢速构建

我有VS 2008 Professional和Smart Device .NET C#项目.我总共有~100个cs文件.构建需要很长时间,我必须等待链接器约.每次编译项目时都需要1分钟(60秒).我有Core i3,4GB RAM,7200rpm磁盘.

是什么导致这种情况以及如何优化构建?任何Visual Studio选项?

.net c# compilation windows-mobile visual-studio

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

如何从数组中删除重复值的所有实例

我知道有array_unique功能,但我想删除重复项.是否有内置功能或我必须自己动手.

输入示例:

banna, banna, mango, mango, apple
Run Code Online (Sandbox Code Playgroud)

预期产量:

apple
Run Code Online (Sandbox Code Playgroud)

php arrays

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