问题列表 - 第20124页

ABAP的直升机视图

我不知道关于ABAP的事情,除了它有一个OO方面,我想在我开始仔细研究之前对它有一些直升机视图.我知道我可以在研究它时找到所有这些,但就像我说的初学者一样,我想知道我在处理什么.

  • 是(总是)编译?
  • Typestem:它是强类型的吗?它是否使用类型推断?
  • 继承:single/muliple,类似接口的结构?
  • 集合:除了数组之外还有它的集合吗?它是通用收藏品吗?它是否使用List理解?
  • 数组,返回类型,参数类型,重写方式(con/contra/in)方差怎么样?
  • 任何例外处理?
  • 是否通过合同支持进行设计?
  • 选择其他众所周知的语言有什么值得注意的吗?
  • ...

任何关于特征的一般信息基本上都是受欢迎的

sap abap

48
推荐指数
2
解决办法
6211
查看次数

CSS - 根据文本宽度设置填充/边距?

CSS中是否有一个测量单元(已计划或已经存在),用于根据所用字体的宽度设置填充和边距?

我知道这em应该是浏览器使用的字体大写M的高度,这对于添加干净的双倍间距非常方便.但我有时希望内联列表的边距是普通不间断空格的宽度,或者是大写字母A的宽度.对于某些字体,使用em会变得不可靠.

css

8
推荐指数
2
解决办法
2394
查看次数

Java JDBC clearBatch()和堆内存

我注意到以下行为.

我有一个大约3MB的文件,包含几千行.在我拆分的行中并创建预备语句(大约250 000条语句).

我所做的是:

preparedStatement
addBatch
do for every 200 rows {
 executeBatch
 clearBatch().
}
Run Code Online (Sandbox Code Playgroud)

在末尾

commit()
Run Code Online (Sandbox Code Playgroud)

没有内存不足错误,内存使用量将增加到70mb左右.是否有可能降低内存使用率?并且具有事务行为(如果一个失败则全部失败.).我能够通过使用executeBatch和提交来降低内存clearBatch...但这会导致整个集合的部分插入.

java memory oracle jdbc batch-processing

5
推荐指数
1
解决办法
5307
查看次数

C#接口和实现在同一个文件中 - 好主意?

我最近看到一些C#代码,其中的接口声明和实现位于同一个文件中,就像这样

namespace MyNameSpace.Foo
{
    public interface IFoo{
        void DoThis();
    }
    public class Foo : IFoo {
        public void DoThis();
    }
}
Run Code Online (Sandbox Code Playgroud)

乍一看,在同一个文件中声明和实现似乎都是错误的,但是有实际的好处.例如,当您在Visual Studio中转到定义时,接口和实现位于同一文件中.此方法不会禁止您使用其他接口实现,例如单元测试可能需要.对于只有一个实现的接口,我认为这可能是一种实用的方法.

好主意还是坏主意?

扩展问题:
当您有接口引用时,人们如何使用Visual Studio导航到实现IFoo myFoo = FooFactory.getFoo(MY_FOO);如果我右键单击IFoo并选择Go To Definition我可以获得接口声明.有没有办法让我获得IFoo的实现列表,因为这是我真正感兴趣的内容.

c#

30
推荐指数
4
解决办法
1万
查看次数

如何在Java中建模社交图

非常简单的场景

N个用户,每个用户可以有0 ... N - 1个朋友(也是用户)

我如何在Java中为AppEngine数据存储建模

需要考虑的场景

  • 用户x和用户y成为朋友(因此两者都需要在事务中更新自己的状态

java google-app-engine modeling

4
推荐指数
1
解决办法
1541
查看次数

有关触发器(ORA-39083,ORA-00942)的Oracle IMPDP REMAP_SCHEMA问题是否有一个很好的解决方法?

可以使用Oracle数据泵导入工具(IMPDP.EXE)使用REMAP_SCHEMA选项将一个模式导入另一个模式.但是,存在一个问题,即触发器未正确重新映射.这导致触发器根本没有创建错误,如下所示:

ORA-39083: Object type TRIGGER failed to create with error: ORA-00942: table or view does not exist Failing sql is: CREATE TRIGGER "**NEW_SCHEMA**"."METER_ALARMS_BI"   BEFORE INSERT ON
**OLD_SCHEMA**.METER_ALARMS ...
Run Code Online (Sandbox Code Playgroud)

原因是因为create SQL仍然引用OLD_SCHEMA.它确实在Oracle文档中说:

映射可能不是100%完成,因为某些模式引用导入无法查找.例如,Import将找不到嵌入在类型,视图,过程和包的定义主体中的模式引用.

恕我直言,这是甲骨文的一个警察,但这是另一个讨论!

根据Oracle Metalink说明750783.1,解决方法是:

  1. 创建一个SQLFILE以包含相关的DDL命令:
      impdp system/****** directory=test_dp
      DUMPFILE=export_schemas.dmp
     remap_schema=u1:u2 sqlfile=script.sql
Run Code Online (Sandbox Code Playgroud)
  1. 从写入的SQLFILE中提取受影响的DDL并更正模式引用.然后手动执行该命令.

这不是一个好方法,特别是如果你有许多失败的对象,并希望自动化组合多个模式的过程,以便在数据库的字段升级.

有没有人找到更好的方法来做到这一点?如果要在现场使用,我需要一个必须100%可靠的解决方案.我可以解析生成的SQL文件,但可以100%正确吗?是否有一些方法可以拦截IMPDP执行的CREATE SQL语句并在导入时动态更正?可以直接修补DMP文件吗?

oracle schema ora-00942 remap impdp

9
推荐指数
1
解决办法
2万
查看次数

C#中的"<<"代表什么?

<<在这段代码中做了什么?

[Serializable]
[Flags]
public enum SiteRoles
{
    User = 1 << 0,
    Admin = 1 << 1,
    Helpdesk = 1 << 2
}
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
3
解决办法
628
查看次数

Reactive Framework,PLINQ,TPL和Parallel Extensions如何相互关联?

至少从.NET 4.0发布以来,微软似乎已经付出了很多努力来支持并行和异步编程,而且似乎已经出现了很多API和库.特别是最近随处可见的以下花哨的名字:

  • 反应性框架,
  • PLINQ(并行LINQ),
  • TPL(任务并行库)和
  • 并行扩展.

现在它们似乎都是微软的产品,它们似乎都针对.NET的异步或并行编程场景.但目前尚不清楚它们实际上是什么以及它们如何相互关联.实际上有些可能是同一件事.

简而言之,任何人都可以直接记录什么是什么?

parallel-extensions plinq task-parallel-library system.reactive

66
推荐指数
2
解决办法
8003
查看次数

Oracle触发器 - 变异表的问题

我的桌子:

TableA (id number, state number)
TableB (id number, tableAId number, state number)
TableC (id number, tableBId number, state number)
Run Code Online (Sandbox Code Playgroud)

因此TableC中的项是TableB的子项,TableB中的项是TableA的子项.反之亦然 - TableA中的项是TableB的父项,TableB中的项是TableC的父项.

我想控制父项的状态......比方说,我们有这些数据:

TableA (id, state): 
1, 40

TableB (id, tableAId, state): 
1, 1, 40
2, 1, 60

TableC (id, tableBId, state): 
1, 1, 40
2, 1, 50
3, 2, 60
4, 2, 70
Run Code Online (Sandbox Code Playgroud)

父母国家应该始终保持他孩子最小的状态.所以如果我们现在像这样更新TableC:

update TableC set state = 50 where Id = 1;
Run Code Online (Sandbox Code Playgroud)

我的触发器应该自动更新TableB(设置状态= 50,其中id = 1),然后更新TableA(设置状态= 50,其中id = 1)

我想用触发器(在表A,表B,表C上进行更新,插入,删除之后)执行此操作,以便在执行每个操作后执行以下步骤:

  1. 得到父ID
  2. 从当前父母的所有孩子中找到最小的状态
  3. 如果所有子项的最小状态大于父项的状态,则更新父项

如何避免"改变表错误"?在此示例中是否可以节省使用自治事务?我看到一些意见,变异表错误表明应用程序的逻辑存在缺陷 - 这是真的吗?如何更改我的逻辑以防止此错误? …

oracle triggers ora-04091 mutating-table

6
推荐指数
2
解决办法
5129
查看次数

Haskell使用abort对多个项目进行错误检查的方法

Haskell函数检查多种不同条件并在失败时返回错误消息的好方法是什么?

在Python或类似的语言中,它将是直截了当的:

if failure_1:
    return "test1 failed"
if failure_2:
    return "test2 failed"
...
if failure_n:
    return "testn failed"
do_computation
Run Code Online (Sandbox Code Playgroud)

如果没有Haskell中任意嵌套的case/if语句,你怎么做?

编辑:某些测试条件可能需要IO,这会将任何测试结果放入IO monad中.我相信这会给许多解决方案带来麻烦.

haskell

6
推荐指数
2
解决办法
1253
查看次数