作为CRUD开发人员,需要做出的权衡之一是决定在服务器上的SQL中应该完成多少工作,以及在代码中应该在客户端完成多少工作.
你如何决定支点在哪里?您的决定有哪些因素?你犯了什么样的错误?什么效果很好?
[编辑]我对这个问题的回答率很低,我感到很惊讶.我认为这是所有CRUD编程的基本问题.设置余额的是性能和可维护性之间的权衡.
我没有真正考虑的另一个问题是域名变化不大,答案可能需要在每个域的部分表达.这就是我在答案中尝试做的事情.
我有一个像这样的头文件中定义的模板类.这里我也定义了一个静态变量:
#ifndef TEST1_H_
#define TEST1_H_
void f1();
static int count;
template <class T>
class MyClass
{
public:
void f()
{
++count;
}
};
#endif
Run Code Online (Sandbox Code Playgroud)
我已经在不同的cpp文件中定义了main()函数,如下所示:
int main(int argc, char* argv[])
{
MyClass<int> a;
a.f();
f1();
cout<<"Main:" << count << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在不同的cpp文件中实现了函数f1(),如下所示:
void f1()
{
MyClass<int> a;
a.f();
cout<<"F1: " <<count <<"\n";
}
Run Code Online (Sandbox Code Playgroud)
当我用VC6编译它时,输出为"F1:0 Main:2".这怎么可能?另外,一般情况下,如果我想将静态变量与模板一起使用,我应该如何处理?
int x;
printf("hello %n World\n", &x);
printf("%d\n", x);
Run Code Online (Sandbox Code Playgroud) 在我的工作场所,我们倾向于使用 iostream,字符串,向量,地图和奇数算法或两个.我们实际上并没有发现很多情况,模板技术是问题的最佳解决方案.
我在这里寻找的是想法,以及可选的示例代码,它们展示了您如何使用模板技术为您在现实生活中遇到的问题创建新的解决方案.
作为贿赂,期待对你的答案进行投票.
出现了一种情况,我需要在SQL语句的上下文中执行基本36到10的转换.Oracle 9或Oracle 10中似乎没有内置任何东西来解决这类问题.我的Google-Fu和AskTom建议创建一个pl/sql函数来处理这个任务.在这一点上,这不是我的选择. 我正在寻找有关可能有助于我解决此问题的方法的建议.
把它变成视觉形式......
WITH
Base36Values AS
(
SELECT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL
),
TestValues AS
(
SELECT '01Z' BASE36_VALUE,
71 BASE10_VALUE FROM DUAL
)
SELECT *
FROM Base36Values,
TestValues
Run Code Online (Sandbox Code Playgroud)
我正在寻找根据输入01Z计算值71的东西. 编辑 - 即向后......给定01Z将其翻译为71.
作为贿赂,每个有用的答案获得免费的投票.
谢谢
邪恶.
我有一棵不是二叉树的树,每个节点都有2个以上的孩子,我正在寻找一个遍历树的算法,我是学习数据结构的新手,我知道如何遍历二叉树但是我迷路了当涉及遍历非二叉树时.任何人都能给我一个暗示吗?
我已经读过,不应该分析临时表,因为它会破坏其他人的表统计信息.索引怎么样?如果我在程序的持续时间内在表上放置一个索引,那么使用该表的其他程序是否会受到该索引的影响?
索引是否会影响我的进程以及使用该表的所有其他进程?或者它是否会影响我的过程?
没有一个回复是权威的,所以我提供贿赂.
我有一个同事正在寻找这个,我不记得曾经遇到过这样的事情.
是否有合理的技术可以让你模拟它?
SELECT PRODUCT(X)
FROM
(
SELECT 3 X FROM DUAL
UNION ALL
SELECT 5 X FROM DUAL
UNION ALL
SELECT 2 X FROM DUAL
)
Run Code Online (Sandbox Code Playgroud)
会产生30
今天早上我们发现了一大堆代码导致库调用崩溃.
struct fred
{
int a;
int b;
int c;
};
fred fred[MAX_SIZE+1];
memset( fred, 0, sizeof(fred) * MAX_SIZE+1 );
Run Code Online (Sandbox Code Playgroud)
看起来sizeof(fred)可能是完整的数组大小,而不是结构大小,因为它覆盖了大量的内存.
它在几个不同的系统上没有警告地编译的事实似乎很奇怪.
对于这种情况,类型和变量名称是否发生冲突,是否存在正确的语义?或者这是某种未定义的行为?或只是一个缺陷?
我认为将它们声明为静态是最佳实践,因为它使它们在模块外部不可见.
你对此有何看法?