问题列表 - 第1604页

保持客户帐户余额的最佳方式

在数据库中有一个存储客户帐户余额的字段或使用视图和查询来生成信息是否更好?

database vb.net currency

6
推荐指数
2
解决办法
3033
查看次数

Oracle - 事务,回滚段和undo_retention参数如何工作?

我不是DBA,而且我在理解Oracle的事务管理流程时遇到了一些困难.

通过阅读互联网上一些看起来很可靠的页面(最值得注意的是这个AskTom注释 - 但不要轻视这些注释)我理解了这一点,当提交一个事务时,新数据还没有在实际数据块上报告,但保持登录回滚段.当有人对数据发出SELECT时,或者当UNDO_RETENTION秒已经过去时 - 无论这两个事件中的哪一个先发生 - 那么新数据就会(然后才会)写在数据块上.

但据我所知,我们公司的某个人最近告诉我相反的情况:根据他的说法,当提交事务时,新数据立即写入数据块,并且回滚段/撤消表空间保留旧数据UNDO_RETENTION秒的持续时间.在此期间,此旧数据可用于在事务之前在SCN上启动的查询进行访问.

那么,Oracle内部究竟发生了什么,您是否可以提供备份回复的参考?

我们使用的是Oracle 9.2.0.8.

提前致谢.

oracle transactions ora-01555

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

创建自己的Tinyurl风格的uid

我正在写一篇关于Guids/UID的人类可读替代品的小文章,例如在TinyURL上用于url哈希的那些(通常在杂志中打印,因此需要简短).

我生成的简单uid是 - 6个字符:小写字母(az)或0-9.

"根据我的计算队长",这是6个相互排斥的事件,虽然计算冲突的概率比P(A或B)= P(A)+ P(B)稍微硬一点,显然它包括数字和来自下面的代码,您可以看到它是否使用50/50的数字或字母.

我对冲突率很感兴趣,如果下面的代码是对生成哈希值的预期冲突率的真实模拟.平均而言,我每百万得到40-50次冲突,但是考虑到uid不会一次产生一百万次,但可能只有每分钟大约10-1000次.

每次冲突的可能性是多少,谁能建议更好的方式呢?

static Random _random = new Random();

public static void main()
{
    // Size of the key, 6
    HashSet<string> set = new HashSet<string>();
    int clashes = 0;
    for (int n=0;n < 1000000;n++)
    {
        StringBuilder builder = new StringBuilder();

        for (int i =0;i < 7;i++)
        {
            if (_random.NextDouble() > 0.5)
            {
                builder.Append((char)_random.Next(97,123));
            }
            else
            {
                builder.Append(_random.Next(0,9).ToString());
            }
        }

        if (set.Contains(builder.ToString()))
        {
            clashes++;
            Console.WriteLine("clash: (" +n+ ")" +builder.ToString());
        }

        set.Add(builder.ToString());
        _random.Next();
        //Console.Write(builder.ToString());
    }

    Console.WriteLine("Clashes: …
Run Code Online (Sandbox Code Playgroud)

c# algorithm probability

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

MySQL:选择N行,但在一列中只有唯一值

鉴于此数据集:

ID  Name            City            Birthyear
1   Egon Spengler   New York        1957
2   Mac Taylor      New York        1955
3   Sarah Connor    Los Angeles     1959
4   Jean-Luc Picard La Barre        2305
5   Ellen Ripley    Nostromo        2092
6   James T. Kirk   Riverside       2233
7   Henry Jones     Chicago         1899
Run Code Online (Sandbox Code Playgroud)

我需要找到3个最老的人,但每个城市只有一个.

如果它只是三个最古老的,它将是......

  • 亨利琼斯/芝加哥
  • 麦克泰勒/纽约
  • Egon Spengler /纽约

然而,由于Egon Spengler和Mac Taylor都位于纽约,Egon Spengler将退出,而下一个(Sarah Connor /洛杉矶)将会进入.

优雅的解决方案?

更新:

目前PConroy的变体是最好/最快的解决方案:

SELECT P.*, COUNT(*) AS ct
   FROM people P
   JOIN (SELECT MIN(Birthyear) AS Birthyear
              FROM people 
              GROUP by City) P2 …
Run Code Online (Sandbox Code Playgroud)

mysql sql unique aggregate-functions min

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

堆栈内存读取

使用以下代码:

typedef struct
{
    char    fileName[ 1024];
    time_t  deleteTime; 
} file_item_t;

....
....

setEntry(char *fileName)
{
    file_item_t     file;

    memset( &file, 0x00, sizeof( file_item_t ));

    memcpy( file.fileName, 
         fileName, 
         sizeof( file.fileName ) - 1 );
...
...
Run Code Online (Sandbox Code Playgroud)

当调用该函数时,它在SPARC机器上运行正常,但运行Solaris 10的i386上的段错误 fileName是一个以字符为终止的字符串,大概有30个字符.看来,试图超越的读取范围内fileName使用memcpy()触发器分割故障在某些系统上.

它是遗留代码,易于纠正.但我想知道的是可能导致这种失败与否的潜在特征.它与堆栈上的读取违规有关吗?有些过境?它与内存分段有关,它只是偶然的一种情况(取决于内存管理和操作系统如何完成内存分段/分页),它可能会失败.

c stack

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

将ruby hash .default设置为列表

我以为我理解默认方法对哈希的作用...

如果密钥不存在,请为其提供默认值:

irb(main):001:0> a = {}
=> {}
irb(main):002:0> a.default = 4
=> 4
irb(main):003:0> a[8]
=> 4
irb(main):004:0> a[9] += 1
=> 5
irb(main):005:0> a
=> {9=>5}
Run Code Online (Sandbox Code Playgroud)

都好.

但是,如果我设置的默认是一个空列表,或空哈希,我不知道这是在行为 ....

irb(main):001:0> a = {}
=> {}
irb(main):002:0> a.default = []
=> []
irb(main):003:0> a[8] << 9
=> [9]                          # great!
irb(main):004:0> a
=> {}                           # ?! would have expected {8=>[9]}
irb(main):005:0> a[8]
=> [9]                          # awesome!
irb(main):006:0> a[9]
=> [9]                          # unawesome! shouldn't this be [] ??
Run Code Online (Sandbox Code Playgroud)

我希望/期待相同的行为,好像我使用了|| …

ruby hashmap

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

为什么我不能在while循环的测试部分中放置变量声明?

显然,您可以在for循环中放置变量声明:

for (int i = 0; ...
Run Code Online (Sandbox Code Playgroud)

而且我注意到你可以在if和switch语句中做同样的事情:

if ((int i = f()) != 0) ...

switch (int ch = stream.get()) ...
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在while循环中执行相同的操作时:

while ((int ch = stream.get()) != -1) ...
Run Code Online (Sandbox Code Playgroud)

编译器(VC++ 9.0)根本不喜欢它.

这是合规行为吗?有原因吗?

编辑:我发现我可以这样做:

while (int ch = stream.get() != -1) ...
Run Code Online (Sandbox Code Playgroud)

但由于优先规则,这被解释为:

while (int ch = (stream.get() != -1)) ...
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.

c++

18
推荐指数
3
解决办法
2万
查看次数

WPF UserControl的初始化事件未触发

我有一个非常简单的WPF UserControl,如下所示:

namespace MyUserControl
{
  /// <summary>
  /// Interaction logic for UserControl1.xaml
  /// </summary>
  public partial class UserControl1 : UserControl
  {
    public UserControl1()
    {
      InitializeComponent();
    }

    protected override void OnRender(DrawingContext drawingContext)
    {
      Rect rect = new Rect(RenderSize);
      drawingContext.DrawRectangle(Brushes.AliceBlue, new Pen(Brushes.Red, 1), rect);
      base.OnRender(drawingContext);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我在标准WPF窗口的XAML中使用它,如下所示:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="clr-namespace:MyUserControl;assembly=MyUserControl"
    Title="Window1" Height="351" Width="496">
    <Grid>
    <mc:UserControl1 Margin="0,0,0,0" Name="uControl1" Initialized="uControl1_Initialized"/>
  </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

使用上面的WPF窗口后面的代码如下所示:

private void uControl1_Initialized(object sender, EventArgs e)
{
  MessageBox.Show("Hello!");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Initialized事件永远不会被触发.谁能告诉我为什么?

非常感谢!

.net wpf .net-3.5

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

记录Perl代码的最佳方法是什么?

有什么建议我如何记录我的Perl代码?您使用了什么以及可以使用哪些工具来帮助我?

您使用哪个模块将pod转换为html?

documentation perl pod

27
推荐指数
5
解决办法
2万
查看次数

PHP可以检测它是从cron作业还是从命令行运行的?

我正在寻找PHP的方法来检测脚本是从shell上的手动调用(我登录并运行它)运行,还是从crontab条目运行.

我有各种用PHP编写的维护类型脚本,我已设置在我的crontab中运行.偶尔,我需要提前手动运行它们,或者如果出现故障/损坏,我需要运行它们几次.

这个问题是我也有一些外部通知设置到任务(发布到Twitter,发送电子邮件等),我不想每次手动运行脚本时发生.

我正在使用php5(如果它很重要),它是一个相当标准的Linux服务器环境.

有任何想法吗?

php cron

52
推荐指数
10
解决办法
4万
查看次数