(PostreSQL 8.2,在WindowsXP上运行)
我有很多复杂的查询,每个查询运行几秒钟.它们实际上不是"观点",但可以这样对待.
我决定将那些"视图"中的结果记录保存到表中,我将其称为"辅助"(辅助)表.
我可以保证在计算"aux"表后没有数据变化.
我们举一个例子:
我有一个查询"X",所以我坚持它的结果在"Table_X".记录集是这样的:
PERSON* FIELD_A* FIELD_ B FIELD_C
=======================================================
1 10 Value1 Value2
1 20 Value3 Value4
1 30 Value5 Value6
------------------------------------------------------
2 10 Value1 Value2
2 20 Value3 Value4
------------------------------------------------------
3 20 Value3 Value4
3 30 Value5 Value6
------------------------------------------------------
etc..
(*)Primary key is: person, field_a
Run Code Online (Sandbox Code Playgroud)
如您所见,每个"人"在此表中都有他的记录子集.
所以,我可以快速获取他的记录
"select * from table_x where person = <person>".
我将始终只提取<person>,我的所有查询都有相同的"面孔":"PERSON"+ Some_Fields.
重要提示:当我"重新填充"它们时,所有"aux"表都可以被其他事务处理(很明显,在我提交之前使用"旧"数据).但我可以保证他们永远不会被这些交易更新.
我目前的流程是:
- START TRANSACTION;
- DO A LOTS OF OPERATIONS ON DATABASE. INSERT / …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序将由用户从公共网络服务器(在Android市场之外)安装.
所以我在webserver中托管了apk,并指示用户键入url来下载文件,然后"打开"下载的文件进行安装.
但是,几乎100%的用户都难以完成这些简单的任务(他们不熟悉技术......).
所以,我决定制作一个简化任务的网页.该页面包含一个大按钮,该按钮将:
下载文件非常简单,但现在我的问题是从浏览器打开"安装对话框"!
我完全是关于html/javascript的新手,我不知道该怎么做(或者即使这是可能的).
我有一个应用程序,但根据用户的选择,它将在谷歌分析中完全分开监控,因此我需要以编程方式为EasyTracker设置"ga_trackingId".
我试过EasyTracker.getTracker().setAppId(id)没有运气.
鉴于这种情况:
TIME TRANSACTION 1 TRANSACTION 2
1sec BEGIN
2sec INSERT RECORDS INTO T1
3sec (doing other things) BEGIN
4sec (doing other things) (doing other things)
5sec COMMIT (doing other things)
6sec SELECT * FROM T1 <<- GETS ROWS INSERTED BY T1
Run Code Online (Sandbox Code Playgroud)
根据postgres文档:
另请注意,如果其他事务在执行第一个SELECT期间提交更改,则两个连续的SELECT命令可以看到不同的数据,即使它们位于单个事务中
问题是:如何避免SELECT在事务开始和查询开始之间提交行.
转换此字符串:
n1=10;n2=50;n3=60;n4=20
Run Code Online (Sandbox Code Playgroud)
使用这样的东西(在Postgres 9.x中):
select *
from (some_engine_to_convert_this('n1=10;n2=50;n3=60;n4=20')) t
Run Code Online (Sandbox Code Playgroud)
得到这样的结果:
Name Value
v1 10
v2 50
v3 60
v4 20
Run Code Online (Sandbox Code Playgroud)
PS:我无法创建任何功能,所以我只需要使用内置函数的Postgres.
提前致谢.
我有一个表单(form2),我实现了以下PUBLIC方法:
function ShowInterface(i:integer):boolean;
Run Code Online (Sandbox Code Playgroud)
此表单位于动态加载的包中.现在我想实例化这个表单(form2)并执行上面的方法.
重要提示:我无法在form1中引用form2的单元.
我尝试了这段代码,但它从未找到"ShowInterface"指针(返回nil).
procedure TfrmForm1.Button1Click(Sender: TObject);
var
PackageModule: HModule;
AClass: TPersistentClass;
ShowInterface: function (i:integer):boolean;
frm: TCustomForm;
begin
PackageModule := LoadPackage('form2.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass('TfrmForm2');
if AClass <> nil then // <<-- FINE!! IT FINDS OUT 'TfrmForm2' in 'form2.bpl')
begin
frm := TComponentClass(AClass).Create(Self) as TCustomForm;
ShowInterface := frm.MethodAddress('ShowInterface'); // <<-- HERE!! ALLWAYS RETURNS "NIL"
if @ShowInterface <> nil then
ShowInterface(1);
// but if I call frm.Show, it works fine. frm is "loaded"!!!
frm.Free; …Run Code Online (Sandbox Code Playgroud) 通过使用setRequestedOrientationin ,我可以以编程方式完美地管理方向变化onCreate.
一切正常,直到我插上HDMI线.在此之后,平板电脑"希望"处于横向模式.所以,当我打开一个活动,它显示在首"风景",然后将其显示之后在"肖像",(因为我打电话的setRequestedOrientation(variable_with_orientation_desired_by_the_user)地方variable=ActivityInfo.SCREEN_ORIENTATION_PORTRAIT在onCreate你可以"看",我的应用程序保持在每一个活动旋转用户打开;
如果我在清单中设置活动的方向,则此问题已部分消失,因为清单中的方向与用户拾取的方向相同.如果它们不同,则会再次开始相同的行为.
我试过这个,但没有成功:
@Override
public void onCreate(final Bundle saved)
{
setRequestedOrientation(ScreenOrientation);
super.onCreate(icicle);
}
Run Code Online (Sandbox Code Playgroud)
那么,有什么方法可以告诉android它在创建活动之前必须创建什么样的方向?(但它不能显而易见)
android orientation screen-orientation android-orientation android-activity
我过去有过类似的案例,这只是一个例子来说明:
我将在我的Android应用程序中实现一个新功能(但这适用于任何类型的OO项目),此时我需要在每个活动中的每个edittext中的"setVisibility"方法中实现一些"操作"有.
要做到这一点,我必须子类"EditView",并覆盖"setVisibity"方法:
@Override
public void setVisibility(int visibility)
{
super.setVisibility(visibility);
// --> do my stuff here! <--
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好......问题是要改变我所有的活动(超过200个,以及thounsands代码行),然后我想:" 为什么我没有启动项目继承标准的EditText,"我知道某些事情,我需要实现这样的事情 ".
这就是重点:将"标准类"子类化为一个做同样事情的新标准是不是很糟糕,但只是"假设"这样的情况?我的意思是,将所有东西都分类,比如按钮,活动等.
AFAIK,设计模式和OOP不鼓励"推定因素",但我会根据您的编程经验,听听您们"在现实生活中做什么"(或考虑一下).
此外,也许这种类型的问题("你的想法","你的意见")在这里不是一个好的做法,但我找不到任何更好的地方来实现它.
我必须在Firebird中执行一些查询,但是我需要在mon $语句或任何其他登录数据库中隐藏"查询源".
那是因为查询有一些我无法向其他人公开的业务规则.
有什么办法吗?或者我可以使用一些"技巧"?
android ×4
sql ×4
postgresql ×3
apk ×1
browser ×1
concurrency ×1
delphi ×1
firebird ×1
installation ×1
java ×1
oop ×1
orientation ×1
packages ×1
runtime ×1
transactions ×1