我遇到了MySQL或Python的问题,似乎无法隔离问题.INSERTs似乎只持续运行脚本并且不存储在数据库中.
我有这个脚本:
import MySQLdb
db = MySQLdb.connect(host="localhost", user="user", passwd="password", db="example")
dbcursor = db.cursor()
dbcursor.execute("select * from tablename")
temp = dbcursor.fetchall()
print 'before: '+str(temp)
dbcursor.execute('INSERT INTO tablename (data1, data2, data3) VALUES ("1", "a", "b")')
dbcursor.execute("select * from tablename")
temp = dbcursor.fetchall()
print 'after: '+str(temp)
Run Code Online (Sandbox Code Playgroud)
我第一次运行它时得到了预期的输出:
>>>
before: ()
after: ((1L, 'a', 'b'),)
Run Code Online (Sandbox Code Playgroud)
问题是,如果我再次运行它,before当它应该已经有条目并且after不会中断(数据1是主键)时出现空.
>>>
before: ()
after: ((1L, 'a', 'b'),)
>>>
before: ()
after: ((1L, 'a', 'b'),)
>>>
before: ()
after: ((1L, 'a', 'b'),)
Run Code Online (Sandbox Code Playgroud)
如果我尝试在同一个脚本中运行insert命令两次,它将会中断("PRIMARY KEY的重复项")
知道这里可能会发生什么吗?
是否可以在没有插件或第三方工具的情况下本地执行此操作?
我知道有gacutil,但是没有运行的exe,否则我可以从Exec任务调用它.
有没有人做过类似的事情?
它是"更好"(更高效,更快,更安全等)到(A)缓存数据,用于$ _SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它?
我正在使用缓存方法(A),但我担心有数百个用户,内存可能会成为一个问题?它只是简单的数据,如名字,姓氏,生日等.
无论使用哪种方法,仍然会运行查询.思考?
通过C#在Boxing/Unboxing值类型上从CLR中提取...
在Boxing上:如果可空实例不为null,则CLR将该值从可空实例中取出并将其装箱.换句话说,值为5的Nullable <Int32>被装入一个值为5的boxed-Int32.
在取消装箱:取消装箱只是获取对盒装对象的未装箱部分的引用的行为.问题是盒装值类型不能简单地拆箱成该值类型的可空版本,因为盒装值中没有boolean hasValue字段.因此,当将值类型拆箱到可空版本时,CLR必须分配Nullable <T>对象,将hasValue字段初始化为true,并将value字段设置为盒装值类型中的相同值.这会影响您的应用程序性能(拆箱期间的内存分配).
为什么CLR团队为Nullable类型经历了这么多麻烦?为什么不首先将它装入Nullable <Int32>?
我有一个fla(使用ActionScript 3.0)我在Flash中编译.我正在使用URLRequest和URLLoader来访问http web服务.
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http:test.webservice.com");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
Run Code Online (Sandbox Code Playgroud)
这很好 - 但是如果我尝试访问我得到的https地址
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0]
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: https://test.webservice.com"]
Run Code Online (Sandbox Code Playgroud)
如何从https Web服务检索数据?SWF是否必须托管在SSL安全页面上?
我使用SWIG为C++程序生成Perl模块.我在C++代码中有一个函数,它返回一个"char指针".现在我不知道如何在Perl中打印或获取返回的char指针.
示例C代码:
char* result() {
return "i want to get this in perl";
}
Run Code Online (Sandbox Code Playgroud)
我想在Perl中调用此函数"result"并打印字符串.
怎么做?
此致,阿南丹
我想写一个如下所示的SQL语句:
select * from tbl where col like ('ABC%','XYZ%','PQR%');
Run Code Online (Sandbox Code Playgroud)
我知道可以用它来完成OR.但我想知道有没有更好的解决方案.
在64位构建计算机上运行时,我遇到了来自MSBuild社区任务项目的Attrib任务的问题.
我把这个小测试项目放在一起,以显示问题所在:
<Project ToolsVersion="3.5" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<Target Name="PrintProperties">
<Message Text="MSBuildCommunityTasksPath: $(MSBuildCommunityTasksPath)"/>
<Message Text="MSBuildCommunityTasksLib: $(MSBuildCommunityTasksLib)"/>
<Message Text="MSBuildNodeCount: $(MSBuildNodeCount)"/>
<Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
<Message Text="MSBuildExtensionsPath32: $(MSBuildExtensionsPath32)"/>
<Message Text="MSBuildProjectDirectoryNoRoot: $(MSBuildProjectDirectoryNoRoot)"/>
<Message Text="MSBuildToolsPath: $(MSBuildToolsPath)"/>
<Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)"/>
<Message Text="MSBuildBinPath: $(MSBuildBinPath)"/>
<Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
<Message Text="MSBuildProjectDefaultTargets: $(MSBuildProjectDefaultTargets)"/>
<Message Text="MSBuildProjectDirectory: $(MSBuildProjectDirectory)"/>
<Message Text="MSBuildProjectExtension: $(MSBuildProjectExtension)"/>
<Message Text="MSBuildProjectFile: $(MSBuildProjectFile)"/>
<Message Text="MSBuildProjectFullPath: $(MSBuildProjectFullPath)"/>
<Message Text="MSBuildProjectName: $(MSBuildProjectName)"/>
<Message Text="MSBuildStartupDirectory: $(MSBuildStartupDirectory)"/>
</Target>
<Target Name="TestAttrib" DependsOnTargets="PrintProperties">
<Attrib Files="Test.txt" ReadOnly="false" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用TestAttrib作为目标使用MSBuild构建此项目时,我得到以下结果
C:> msbuild"C:_Source Code\Test.vbproj"/ t:TestAttrib Microsoft(R)Build Engine …
我有一个问题,关于如何在两个不同的问候中彼此加入时建立两个模型之间的关系.
我将举例说明我遇到的问题:
Users (id, name)
Messages (id, message, from_user_id, to_user_id)
Run Code Online (Sandbox Code Playgroud)
(在我的情况下,它不是用户也不是消息,但希望以更简单的方式说明问题)
用户可以相互发送消息,每封消息都有一个发送消息的用户和一个将接收消息的用户.我试图找出模型关系:
class User extends AppModel {
var $hasMany = array("Message");
}
class Message extends AppModel {
var $belongsTo = array("User");
}
Run Code Online (Sandbox Code Playgroud)
我也不确定如何在数据库中命名字段,因此CakePHP将正确地获取关系.
使用C++ STL容器时,必须在什么条件下访问引用值?例如,在对容器的下一个函数调用之后,是否有任何引用无效?
{
std::vector<int> vector;
vector.push_back (1);
vector.push_back (2);
vector.push_back (3);
vector[0] = 10; //modifies 0'th element
int& ref = vector[0];
ref = 10; //modifies 0'th element
vector.push_back (4);
ref = 20; //modifies 0'th element???
vector.clear ();
ref = 30; //clearly obsurd
}
Run Code Online (Sandbox Code Playgroud)
据我所知,在stl的大多数实现中,这都可行,但我对标准声明的要求感兴趣.
--edit:我感兴趣因为我想尝试用于c ++ 的STXXL(http://stxxl.sourceforge.net/)库,但我意识到容器返回的引用并不是多次读取的持久性,因此不是兼容,而不对我现有的stl代码进行更改(无论多么肤浅).一个例子:
{
std::vector<int> vector;
vector.push_back (1);
vector.push_back (2);
int& refA = vector[0];
int& refB = vector[1]; //refA is not gaurenteed to be valid anymore
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道这是否意味着STXXL容器不是100%兼容,或者确实如果我一直在以不安全/实现依赖的方式使用STL容器.