我们的一个团队将开发一个应用程序来存储SQL2008数据库中的记录,并且每个记录都有一个相关的PDF文件.目前有大约340GB的文件,大多数(70%)大约是100K,但有些是几兆字节.数据主要是插入和读取,但文件有时会更新.我们正在讨论以下选项:
将文件存储为数据库中的BLOB.
将文件存储在数据库之外,并将路径存储在数据库中.
使用SQL2008的文件流功能来存储文件.
我们已经阅读了有关文件流数据的Micrsoft最佳实践,但由于文件大小不同,我们不确定选择哪条路径.我们倾向于选项3(文件流),但有一些问题:
考虑到上面提到的数据量和文件大小,您会选择哪种架构?
数据访问将使用SQL身份验证完成,而不是Windows身份验证,并且Web服务器可能无法使用Windows API访问这些文件.这会使filstream的表现比其他两个选项差吗?
由于SQL备份包含文件流数据,因此会导致非常大的数据库备份.其他人如何使用大量文件流数据处理备份数据库?
我试图让PHP脚本工作.该脚本的目的是调用Web服务.我已经将脚本简化为最简单的组件,但它仍然失败了.这里是:
<?php
print "Hello";
$request = new HttpRequest('http://www.pivotaltracker.com/services/v3/source_commits', HttpRequest::METH_POST);
print "Done";
?>
Run Code Online (Sandbox Code Playgroud)
输出是:
D:\svn\svndb\hooks>"c:\Program Files\PHP\php.exe" -f test.php
Hello
D:\svn\svndb\hooks>
Run Code Online (Sandbox Code Playgroud)
如您所见,在尝试实例化HttpRequest实例时,脚本失败.但是,不会抛出任何异常.
我不是一个PHP程序...我只是想让这个功能正常工作.我怀疑我没有加载我需要的扩展库...但我无法弄清楚哪一个是,如果确实是那个问题.任何帮助,将不胜感激.
我在Windows 2003上运行.我正在运行php 5.3.3.
我确实运行了phpinfo(),但由于它太大而犹豫是否要将结果发布在这里.是否有一段phpinfo()输出有助于提供?
提前致谢.
短发
我有一个DataGrid,第一列为文本列,第二列为CheckBox列.我想要的是,如果我单击复选框.它应该被检查.
但是,它需要两次单击才能被选中,首次单击该单元格将被选中,第二次单击该复选框将被选中.如何通过单击来选中/取消选中复选框.
我正在使用WPF 4.0.DataGrid中的列是AutoGenerated.
我希望有类似的东西MOTIVE { GET_PLAYER, GET_FLAG }.
在我的对象中,我想要类似的东西
this.motive = MOTIVE.GET_PLAYER
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
SQL Server 2008中是否可以创建这样的约束,以限制两列同时具有NULL值?以便
Column1 Column2
NULL NULL -- not allowed
1 NULL -- allowed
NULL 2 -- allowed
2 3 -- allowed
Run Code Online (Sandbox Code Playgroud) 我添加了以下行,.gitignore但是当我键入git status它时,它将文件显示为未停止的文件.有什么问题?所有其他模式运作良好.
.gitignore 文件内容:
sites/default/settings.php
Run Code Online (Sandbox Code Playgroud) 我已经看到了套接字的几种用法,程序员通过TCP/IP套接字发送命令或一些信息,并期望在接收端的一次调用中接收它.
例如,传输
mySocket.Send("SomeSpecificCommand")
Run Code Online (Sandbox Code Playgroud)
他们假设接收方将在一次通话中接收所有数据.例如:
Dim data(255) As Byte
Dim nReceived As Long = s.Receive(data, 0, data.Count, SocketFlags.None)
Dim str As String = Encoding.ASCII.GetString(data, 0, n)
If str = "SomeSpecificCommand" Then
DoStuff()
...
Run Code Online (Sandbox Code Playgroud)
上面的示例不使用任何终结符,因此程序员依赖于不允许套接字实现的事实,例如,在第一次调用Receive()时返回"SomeSpecif",并在稍后返回"cCommand"致电Receive().(注意 - 在示例中,缓冲区的大小应大于预期的字符串).
我从来没有考虑过这么多想法,只是假设这种类型的编码是不安全的,并且总是使用分隔符.我是否在浪费时间(和处理器周期)?
我有一个C程序,在程序的某一点上有这个:
system("rm -rf foo");
其中foo是一个目录.我决定,而不是调用系统,最好在代码中执行递归删除.我假设一段代码很容易找到.傻我.无论如何,我最后写了这个:
#include <stdio.h>
#include <sys/stat.h>
#include <dirent.h>
#include <libgen.h>
int recursiveDelete(char* dirname) {
DIR *dp;
struct dirent *ep;
char abs_filename[FILENAME_MAX];
dp = opendir (dirname);
if (dp != NULL)
{
while (ep = readdir (dp)) {
struct stat stFileInfo;
snprintf(abs_filename, FILENAME_MAX, "%s/%s", dirname, ep->d_name);
if (lstat(abs_filename, &stFileInfo) < 0)
perror ( abs_filename );
if(S_ISDIR(stFileInfo.st_mode)) {
if(strcmp(ep->d_name, ".") &&
strcmp(ep->d_name, "..")) {
printf("%s directory\n",abs_filename);
recursiveDelete(abs_filename);
}
} else {
printf("%s file\n",abs_filename);
remove(abs_filename);
}
}
(void) closedir (dp);
} …Run Code Online (Sandbox Code Playgroud) java ×2
sql-server ×2
.net ×1
blob ×1
c ×1
constraints ×1
datagrid ×1
datetime ×1
filestream ×1
git ×1
linux ×1
php ×1
sockets ×1
sql ×1
t-sql ×1
unix ×1
war ×1
wpf ×1
wpfdatagrid ×1