我可能会负责将vb6应用程序移植到c#.此应用程序是一个与访问数据库交互的Windows应用程序.数据访问封装在基本业务对象中.基本上一个表的一个类.现有的vb6业务对象通过DAO读写DB.我以前写了几次DAL和ORM,但它们都只针对SQL Server.这个将需要目标访问和SQL服务器.在以前的项目中,我会将SQL字符串放在业务对象的私有部分中,并可能将冗余的sql代码(如连接,创建命令)移动到公共基类中以减少代码.
这一次,我正在考虑将SQL字符串写入.settings文件或其他键/值类型文本文件.然后我会编写一个sql实用程序来编辑这个文件,并允许我运行并测试参数化查询.这些查询将在业务对象中按名称引用,而不是将sql嵌入到代码中.
我知道一种标准方法是为每个目标数据库创建一个DAL,并具有要使用的DAL配置状态.我真的不想为每个数据库创建两个DAL类.如果我只是通过keyname引用了正确的查询并且具有正确的连接类型,那么似乎代码会更少.
那么,你们这样做吗?你怎么会或者你有没有解决这个问题?什么最适合你?
谢谢!
我的大部分应用程序都是用PHP编写的(前端和后端).有一部分工作太慢,我需要重写它,可能不是用PHP.什么会给我以下内容:
1.速度最快
2.最快的发展
3.易于维护.
我在脑海中将CPP中的这段代码重写为PHP扩展,但可能是我被锁定在这个解决方案上而错过了一些更简单/更好的解决方案?
每次运行时,算法都是几个MB数据上的PorterStemmerAlgorithm.
我的android应用程序需要在第一个活动中输入密码.我希望能够在应用程序空闲一段固定时间后自动将应用程序发送回密码输入屏幕.
该应用程序有多个活动,但我希望超时对所有活动都是全局的.因此,在一个onPause()方法中创建一个计时器线程是不够的Activity.
我不确定应用程序空闲的最佳定义是什么,但没有活动的活动就足够了.
到目前为止,我发现我可以用两种(多种?)方式将传入的BSTR转换为ANSI,我很想知道在速度/效率等方面是否比另一种"更好".
我一直使用的方式是使用USES_CONVERSION和W2A宏,例如
BSTR __stdcall F(BSTR p1, BSTR p2 ) {
USES_CONVERSION;
LPSTR sNum1 = W2A( p1 );
LPSTR sNum2 = W2A( p2 );
Run Code Online (Sandbox Code Playgroud)
然而,最近我遇到了另一种技术:
BSTR __stdcall F(BSTR p1, BSTR p2 ) {
long amt = wcstombs( NULL, p1, 1 );
sNum1 = (char *) malloc( amt );
wcstombs( sNum1, p1, amt );
*(sNum1 + amt) = '\0';
amt = wcstombs( NULL, p2, 1 );
sNum2 = (char *) malloc( amt );
wcstombs( sNum2, p2, amt ); …Run Code Online (Sandbox Code Playgroud) 我使用Visual Studio 2008与.NET Framework(v3.5).我似乎无法使用System.Windows.Shapes,或除了Forms之外的任何System.Windows.*.
以下是类描述的链接:
System.Windows.Shapes(MSDN Library)
我需要做一些特殊的事情来使用它吗?
我检查了所有框架文件夹,我对System.Windows唯一的dll/xml文件是System.Windows.Forms.
我需要做些什么才能让它发挥作用?
我试图在Ruby上使用STDIN和TCP套接字上的select,但由于某种原因,select返回的值似乎永远不会匹配其中一个选项; 它看起来像是被返回的套接字,但它使用==(或等于?)不匹配.任何人都可以告诉我为什么从select返回的结果与我传入的对象不匹配,以及我在这里应该采取哪些不同的做法?
server = TCPSocket::new("irc.freenode.net", 7000)
server.puts "NICK MyBot"
server.puts "USER #{ENV['USER']} 0 * :My Bot"
# <snip definitions>
while (!$done)
results = select([server, STDIN], nil, nil)
if results[0] == STDIN
puts "Reading from STDIN"
execute_command
elsif results[0] == server
puts "Reading from server"
receive_data
else
puts "Something's wrong... results[0]: #{results[0]}, server: #{server}"
puts "IDs: results[0]: #{results[0].__id__}, server: #{server.__id__}"
exit 1
end
end
Run Code Online (Sandbox Code Playgroud)
这是我运行时得到的:
Something's wrong... results[0]: #<TCPSocket:0x33c390>, server: #<TCPSocket:0x33c390> IDs: results[0]: 1695840, server: 1695990
我在Mac OS X上运行Ruby版本1.8.6.
$ …
多年来,我已经涉及到一些简单的JavaScript,但还没有使用任何JavaScript/AJAX库.对于我正在研究的一些新东西,我想使用js库进行客户端表单验证,并想知道哪个最适合.最好的,我的标准是:快速和易学,占地面积小,与所有流行的浏览器兼容.
编辑:感谢ASP的建议,但它们与我无关.对不起,我最初没有提到它,但服务器是运行Apache和PHP的Linux机器.据我所知,我计划对输入进行服务器端验证,但希望客户端验证能够改善用户体验,并尽可能避免让服务器拒绝无效输入.
编辑2:对不起我好几个月都没有回复!其他优先事项出现了,并转移了我.我最终做了我自己的验证程序 - 除了在一些答案中提出的好处之外,我正在验证的一些项目很少在其他应用程序中使用,我找不到包含这种验证的库.
我在PyGame开发一款简单的游戏......一架飞来飞去的火箭飞船.
问题:为什么pygame会在同时按下键时停止发出键盘事件?
关于密钥处理:该程序有许多变量,如KEYSTATE_FIRE, KEYSTATE_TURNLEFT等...
KEYDOWN事件被处理时,它设置对应的KEYSTATE_*变量为True.KEYUP事件被处理,它设置相同的变量设置为false.问题:
如果UP-ARROW和LEFT-ARROW同时按下,pygame KEYDOWN在SPACE按下时不会发出事件.此行为因密钥而异.当按下字母时,似乎在pygame停止发出KEYDOWN附加键的事件之前,我可以容纳其中的大约5个.
验证:在我的主循环中,我只是打印收到的每个事件以验证上述行为.
代码:作为参考,这里是处理关键事件的(粗略)方式:
while GAME_RUNNING:
FRAME_NUMBER += 1
CLOCK.tick(FRAME_PER_SECOND)
#----------------------------------------------------------------------
# Check for events
for event in pygame.event.get():
print event
if event.type == pygame.QUIT:
raise SystemExit()
elif event.type == pygame.KEYDOWN and event.dict['key'] == pygame.K_UP:
KEYSTATE_FORWARD = True
elif event.type == pygame.KEYUP and event.dict['key'] == pygame.K_UP:
KEYSTATE_FORWARD = False
elif …Run Code Online (Sandbox Code Playgroud) 我从一个链接中提取数据,http://safalra.com/web-design/javascript/parsing-query-strings/.它在Firefox中运行良好,但Google Chrome不支持此功能.是否有更好的方法或替代程序来提取查询字符串内容?
<script type="text/javascript">
var _url = window.location
alert(_url);
var queryData = parseQueryString(_url.toString());
var p = queryData['http://localhost/new_logic/test.php?a'];
alert(queryData);
var q = queryData['b'];
</script>
Run Code Online (Sandbox Code Playgroud) 我已经有这个问题多年了,这太烦人了.
假设我想运行mysqldump.exe ...这是我的进程:开始 - >运行,输入"cmd"... dir进入目录后的目录,直到我最终到达c:/ program files/mysql/bin /然后我可以最后调用"mysqldump.exe"
我不介意使用Windows资源管理器来访问c:/ program files/mysql/bin,但是我不能在shell中打开任何.exe文件,而且我无法打开shell目录是那个.
我怎样才能做到这一点?