问题列表 - 第2005页

如何让MySQL作为不同的用户编写outfiles?

我正在使用写入outfile的MySQL查询.我每天或每两天运行一次这样的查询,所以我希望能够删除outfile而不必诉诸su或sudo.我能想到实现这一目标的唯一方法是将outfile编写为由mysql用户以外的其他人所拥有.这可能吗?

编辑:我没有将输出重定向到文件,我使用选择查询的INTO OUTFILE部分输出到文件.

如果它有帮助:

mysql --version
mysql  Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (x86_64) using readline 5.2

mysql sql into-outfile

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

C++声明中的两种或多种数据类型

g++在以下代码中从3.3中得到一个奇怪的错误:

#include <bitset>
#include <string>

using namespace std;

template <int N, int M>
bitset<N> slice_bitset(const bitset<M> &original, size_t start) {
    string str = original.to_string<char, char_traits<char>, allocator<char> >();
    string newstr = str.substr(start, N);
    return bitset<N>(newstr);
}

int main() {
    bitset<128> test;
    bitset<12> result = slice_bitset<12, 128>(test, 0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误如下:

In function `std::bitset slice_bitset(const std::bitset&, unsigned int)':
syntax error before `,' token
`char_traits' specified as declarator-id
two or more data types in declaration of `char_traits'
`allocator' specified as …

c++ templates g++

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

强制窗口刷新磁盘FAT

我的磁盘上有一个单独的分区,格式化为FAT32.当我休眠窗口时,我希望能够加载另一个操作系统,创建/修改该分区上的文件,然后使Windows退出休眠状态,并能够看到我所做的更改.

我知道你要打字的是什么,"好吧,你不应该这样做!" 然后把我链接到一些关于我正在尝试做什么是错误/不可能/打破一切的规范.但是,我确信有一些方法可以解决这个问题.:)

我不需要在Windows中使用FAT32分区,除了读取那里写的文件,然后我就完成了 - 所以不管解决方案是什么,磁盘在一段时间内完全无法访问是可以接受的.不幸的是,我无法使整个物理磁盘脱机,因为它只是安装Windows的同一物理设备的分区 - 只是分区.

这些是我到目前为止尝试过的东西......

  1. 谷歌一下.我得到了至少一个"这永远不会发生"的答案.不能的!:)
  2. 在休眠之前卸载磁盘.从冬眠中出来后装载.这似乎没有效果.Windows仍然认为FAT与以前一样,所以我写入磁盘的任何数据都会丢失,而且我调整大小的文件都已损坏.如果任何文件被缓存,那就更糟了.
  3. 使用DeviceIoControl来调用IOCTL_DISK_UPDATE_PROPERTIES来尝试刷新磁盘(但是分区表没有改变,所以这并没有真正做任何事情).

有没有办法使磁盘/卷读取缓存无效以强制窗口返回磁盘?

我想通过使用libfat直接打开分区和读/写并绕过缓存或者某些东西是矫枉过正的.

windows winapi

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

复杂模型绑定到列表

我一直在试用MVCContrib的NameValueDeserializer,它将IList作为控制器的参数并将表单及其元素绑定到它,但我只是想知道MVC Beta是否有任何方法可以做到这一点?

我知道你可以绑定一个强类型的对象,但我想绑定一些这些对象的List来进行批量编辑.

例如.

public void Save(IList<Item> items)
{
    foreach (Item i in items)
    {
        //Save item
    }
}
Run Code Online (Sandbox Code Playgroud)

这在MVC Beta中是否可行?提前致谢.

c# asp.net-mvc binding

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

std :: map operator []中的违规读取位置

我在运行传给我的一些旧代码时遇到了一个问题.它可以在99%的时间内工作,但偶尔会发现它会抛出"违规读取位置"异常.我有可变数量的线程可能在整个过程的生命周期中执行此代码.低出现频率可能表示竞争条件,但我不知道为什么在这种情况下会导致异常.这是有问题的代码:

MyClass::Dostuff()
{
    static map<char, int> mappedChars;
    if (mappedChars.empty())
    {
       for (char c = '0'; c <= '9'; ++c)
       {
          mappedChars[c] = c - '0';
       }
    }
    // More code here, but mappedChars in not changed.
}
Run Code Online (Sandbox Code Playgroud)

在第一次调用operator []时,在map的operator []实现中抛出异常(使用STL的VS2005实现.)


mapped_type& operator[](const key_type& _Keyval)
{
    iterator _Where = this->lower_bound(_Keyval); //exception thrown on the first line
    // More code here
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试在operator []中冻结线程并尝试让它们同时运行它,但是我无法使用该方法重现异常.

你能想出为什么会抛出这种情况,而且只有部分时间?

(是的,我知道STL不是线程安全的,我需要在这里进行更改.我很好奇为什么我看到上面描述的行为.)

根据要求,这里有一些关于异常的更多细节:
app15-51-02-0944_2008-10-23.mdmp中0x00639a1c(app.exe)的未处理异常:0xC0000005:访问冲突读取位置0x00000004.

感谢大家提出多线程问题的解决方案,但这不是这个问题要解决的问题.是的,我理解所呈现的代码没有得到正确的保护,并且在它试图完成的内容方面有些过分.我已经有了实现它的修复程序.我只是想更好地理解为什么要抛出这个异常.

c++ multithreading stl exception

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

对于没有触发的BackgroundWorker事件感到困惑

这可能看起来像一个有点人为的例子,但我只是在挠头.

好的,我有一个控制台应用程序,它实例化一个WindowsForm并在窗体上调用一个名为DoSomeWork()的方法.

class Program
  { 
    static void Main(string[] args)
    {
      Form1 form = new Form1();         
      form.DoSomeWork();   
    }
  }
Run Code Online (Sandbox Code Playgroud)

Form1看起来像这样......

public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    public void DoSomeWork()
    {
      OuterClass outerClass = new OuterClass();
      outerClass.DoSomeWork();
    }    
  }
Run Code Online (Sandbox Code Playgroud)

反过来,外类看起来像......

public class OuterClass
  {
    public void DoSomeWork()
    {
      InnerClass innerClass = new InnerClass();
      innerClass.DoSomeWork();
    }
  }
Run Code Online (Sandbox Code Playgroud)

最后,InnerClass看起来像这样......

public class InnerClass
  {
    private BackgroundWorker _backgroundWorker = new BackgroundWorker();

    public InnerClass()
    {
      _backgroundWorker.WorkerReportsProgress = true;
      _backgroundWorker.DoWork += new …
Run Code Online (Sandbox Code Playgroud)

.net c# backgroundworker winforms

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

ASP.Net MVC是否运行在ASP.NET 2.0之上?

ASP.Net 2.0和Visual Studio 2005是否有可能与MVC合作,或者我必须转向VS2008和asp.net 3.5?

asp.net-mvc

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

什么是"收益率突破"; 做C#?

我在MSDN中看到过这种语法:yield break但我不知道它是做什么的.有人知道吗?

.net c# yield

470
推荐指数
8
解决办法
13万
查看次数

在应用程序中登录多少以及多少?

只是想知道有多少人登录他们的应用程序???

我看到了这个:

"我通常喜欢使用ERROR日志级别来记录应用程序捕获的任何异常.我将使用INFO日志级别作为"第一级"调试方案,以便在我进入或退出方法时显示.从那里我使用DEBUG日志级别用于跟踪详细信息.FATAL日志级别用于我在基于Web的应用程序中未能捕获的任何异常."

其中包含此代码示例:

Public Class LogSample

   Private Shared ReadOnly Log As log4net.ILog = log4net.LogManager.GetLogger(GetType(LogSample))

   Public Function AddNumbers(ByVal Number1 As Integer, ByVal Number2 As Integer) As Integer

      Dim intResults As Integer

      Log.Info("Starting AddNumbers Method...")
      Log.Debug("Number1 Specified: " & Number1)
      Log.Debug("Number2 Specified: " & Number2)

      intResults = Number1 + Number2

      Try

         intResults = Number1 + Number2

      Catch ex As Exception

         Log.Error("Error Adding Nubmers.", ex)

      End Try

      Log.Info("AddNumbers Method Complete.")

      Return intResults

   End Function

End Class 
Run Code Online (Sandbox Code Playgroud)

但这似乎增加了很多方法.例如,通常可能是7行代码的类突然变成12行代码.该方法也失去了一些清晰度和简单性.

但是说,实施伐木的好处可能是好的.例如,在生产系统中进行性能监控,追逐生产中的异常错误(并不是说你会一直打开所有这些日志记录.

因此我想知道人们在做什么?干杯安东尼

.net complexity-theory logging log4net

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

sigaction和signal之间有什么区别?

我正要为我们这里的应用程序添加一个额外的信号处理程序,我注意到作者已经习惯sigaction()了设置其他信号处理程序.我打算用signal().按照惯例我应该使用,sigaction()但如果我是从头开始写,我应该选择哪个?

c posix signals

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