扫描数据库中的新记录

本文关键字:新记录 数据库 扫描 | 更新日期: 2023-09-27 18:10:34

我在c#中有一个程序,它与数据库是这样工作的:

while(record found)
{
   SPEAKS RECORD OUT TO SPEAKER
   DELETES RECORD
}

在记录用完之前可以正常工作。

我想要的是继续扫描,即使没有在数据库中找到记录。当出现一条记录时,它应该执行逻辑。我如何刷新数据库,以便它扫描新记录?

任何想法?

扫描数据库中的新记录

您可能需要等待一段时间才能检查新记录。所以永远迭代并检查新记录。如果你有,就像往常一样。如果没有记录,请等待(例如2秒)然后再试一次

while(true){
    if(record found){
        // SPEAKS RECORD OUT TO SPEAKER
        // DELETES RECORD
    }else{
        System.Threading.Thread.Sleep(2000); // sleep two seconds
    }
}

如果你不等待请求之间,那么你会遇到问题,不断地请求新的记录。

另一个问题是"永远迭代"部分。通常,您要做的不是永远迭代,而是限制读取新记录的连续尝试次数:

int attempts = 0;
while(attempts < 3){
    attempt++;
    if(record found){
        // SPEAKS RECORD OUT TO SPEAKER
        // DELETES RECORD
        attempts=0; // reset attempts counter
    }else{
        System.Threading.Thread.Sleep(2000); // sleep two seconds
    }
}

所以你的程序不会永远尝试

从您的伪代码来看,您好像运行了一个执行SELECT的ADO命令。您将按照命令运行时的状态迭代这些结果。它不是一个易失性的数据结构。

因此,您将再次运行SELECT命令,以查看自上次运行SELECT以来是否出现了任何新记录。