我目前创建了一个类似于Facebook的页面,它从不同的表中提取通知,比如大约8个表.每个表都有不同的结构和不同的列,所以首先要想到的是我将拥有一个全局表,如目录,并在每次新命中时刷新它.我知道插入是资源密集型的,但我希望因为它是一个静态表,我每100个访问者只会添加一条新记录,所以我想"可能"我可以逃脱这个,但我错了.我设法从只有三个人敲打网站的僵局.
所以无论如何,现在我必须使用不同的方法重做它.最初我打算做观点,但我对观点有疑问.所选表格必须包含用户的ID.以下是来自php的select语句的示例:
$get_events = "
SELECT id, " . $userId . ", 'admin_events', 0, event_start_time
FROM admin_events
WHERE CURDATE() < event_start_time AND
NOT EXISTS(SELECT id
FROM admin_event_registrations
WHERE user_id = " . $userId . " AND admin_events.id = event_id) AND
NOT EXISTS(SELECT id
FROM admin_event_declines
WHERE user_id = " . $userId . " AND admin_events.id = event_id) AND
event_capacity > (SELECT COUNT(*) FROM admin_event_registrations WHERE event_id = admin_events.id)
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
对于混乱感到抱歉.无论如何,正如您所看到的,我需要从页面返回用户ID作为表中的选定列.我无法弄清楚如何使用视图进行操作,所以我不认为视图是我将要前进的方式,因为这些类型的查询中有更多.我来自MSSQL背景,我喜欢存储过程,所以如果有MYSQL的存储过程,那将是非常好的.
接下来我开始考虑临时表.该表将在内存中,该表最多可能是150行,并且不存在死锁.在临时表上插入是否仍然非常昂贵?我最终会崩溃服务器吗?现在我们每天可能有100个用户,但是当我们获得更多用户时,我希望能够成为未来的证明.
经过长时间的思考,我认为唯一的方法是用户php并将所有结果作为数组获取.问题是,我会得到类似的东西:
$my_array[0]["date_created"] = <current_date>
Run Code Online (Sandbox Code Playgroud)
上面的问题是我必须按date_created排序,但这是一个多维数组.
无论如何,要从数据库中提取150到200条MAX记录,您会采取哪种方法?临时表,视图还是php?
.vbs中的对象以什么顺序销毁?
也就是说,给定这些全局变量:
Set x = New Xxx
Set y = New Yyy
Run Code Online (Sandbox Code Playgroud)
我对以下任何一个问题的答案感兴趣.
对于.VBS中实现的类的实例,将以什么顺序Class_Terminate调用?粗略的戳戳建议创造的顺序(而不是逆序!),但这有保证吗?
编辑:我知道Class_Terminate将在释放对象的最后一次引用时调用.我的意思是:x和y的发布顺序是什么,是否有保证?为简单起见,假设x和y是对其各自对象的唯一引用.
对象的类型是否重要?例如,如果我在.VBS中实现的类与其他COM对象混合在一起,例如Scripting.FileSystemObject.
编辑:我知道COM库可能会设置自己的内部循环引用,脚本主机引擎一无所知; 我有兴趣探索可能影响第一个问题答案的内容.
WScript.Quit?(在后一种情况下,似乎Class_Terminate在退出之前仍然会调用任何未完成的对象,但这些可能会导致报告错误).我可以凭经验找到其中一些问题的答案,但我对它们中的任何一个是否得到保证 /记录感兴趣.
即使你只知道一些答案 - 或进一步的相关问题,请发帖.
什么是最好,最强大的CSS按钮定义?
理想情况下,我喜欢渐变,圆润的图像,以及优雅的降级到IE8.如果按钮不使用任何图像,并且按钮水平缩放以适合其内容,那也将是很好的.
什么是最好的解决方案?
我想完全重新设置Android中的默认对话框组件.具体来说我想这样做:
将半透明叠加背景从默认黑色更改为半透明白色.
通过删除默认的窗口框架边框来更改"对话"窗口,并将其替换为XML中定义的布局(它只是带有浮动按钮的无边框图形.没有实际框架.)
我看过有关在对话框中创建自定义布局的教程(例如http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application),但我还没有看到任何内容关于改变叠加的颜色和/或完全定制弹出的对话窗口并将其更多地转换为没有"窗口"的叠加.
有没有办法强制WPF设计器重新加载或刷新,而无需重建整个项目或解决方案?
如果出现错误,我会在设计器视图中选择一个选项来刷新设计器.但如果我没有错误,我怎样才能让设计师在我做出改变后刷新?
我们知道我们可以直接在c ++中使用c函数,何时需要呢?extern "C"
来自Windows背景.
GUI Linux应用程序将其数据文件(非用户特定的)存储在硬编码位置(例如/ etc/myapp/stuff)是否可以接受?我找不到任何会返回app数据首选目录的系统调用.那里有什么约定吗?
我通过使用AlarmManager和BroadcastReceiver类(名为AReceiver.java)为我的程序添加了一些基本的报警功能.我的问题是我添加到附加到创建PendingIntent的Intent的包的数据似乎丢失了.我可以在AReceiver类中访问的唯一bundle数据是android.intent.extra.ALARM_COUNT = 1.
以下是创建Intent,PendingIntent和AlarmManager的主要活动类中的基本代码:[主要活动中的代码 - Notepadv3]
Intent intent = new Intent(Notepadv3.this, AReceiver.class);
intent.putExtra("teststring","hello, passed string in Extra");
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, pendingPeriodIntentId, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, timeOfNextPeriod.getTimeInMillis(), alarmIntent);
Run Code Online (Sandbox Code Playgroud)
[BroadcastReceiver中的代码 - AReceiver]
public void onReceive(Context con, Intent arg1) {
Bundle extrasBundle = arg1.getExtras();
Log.d("broadcast","contains teststring = " + extrasBundle.containsKey("teststring"));
Log.d("broadcast","is empty? = " + extrasBundle.isEmpty());
Log.d("broadcast","to string = " + extrasBundle.toString());
}
Run Code Online (Sandbox Code Playgroud)
调试消息说包含teststring为FALSE,为空为FALSE,在输出整个包时,我得到android.intent.extra.ALARM_COUNT = 1值.
任何帮助将不胜感激.
干杯,汤姆
我在VS 2010中使用Windows Installer部署项目来为小型演示项目创建安装程序.该演示需要安装SQL Compact数据库文件(MyData.sdf).该演示无法将数据库安装到用户计算机上的应用程序文件夹中 - 如果我这样做,我会收到"拒绝访问"错误.因此,安装数据库的逻辑位置似乎是用户的c:\ ProgramData文件夹下的子文件夹.
如何在部署项目的文件系统编辑器中指定c:\ ProgramData文件夹?我右键单击目标计算机节点上的文件系统,将鼠标悬停在添加特殊文件夹上以查看特殊文件夹的弹出列表,但我没有看到与c:\ ProgramData文件夹对应的特殊文件夹.
列表中的一个条目是否与文件夹对应?我是否必须将其设置为自定义文件夹?如果我这样做,我将如何设置自定义文件夹?谢谢你的帮助.