标签: hana

如何有条件地包含一个Hibernate注释?

我在Play for Scala中有以下代码来访问带有Hibernate的SAP Hana表.我需要用MySql实现相同的代码,但问题是MySql不支持序列(它适用于AUTO_INCREMENT列)和代码中断,因为我必须@SequenceGenerator为Hana 指定.有没有办法编译这个代码,条件是排除@SequenceGenerator注释,所以它同时适用于MySql和Hana?

@Entity
@Table(name = "clients")
class ClientJpa {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")
    @SequenceGenerator(name="generator", sequenceName = "cliSeq", allocationSize = 1)    
    var surrogateKey: Int = _
    var code: String = _
    var name: String = _
}
Run Code Online (Sandbox Code Playgroud)

mysql hibernate scala playframework hana

13
推荐指数
1
解决办法
694
查看次数

如何返回HANA存储过程中受影响的行数?

如何在SAP HANA存储过程中返回插入或更新语句中受影响的行数?

在oracle中,我会使用sql%rowcount,但我在他们的文档中找不到HANA的等价物?

例如:

CREATE PROCEDURE procedure_name (p_input)
LANGUAGE SQLSCRIPT AS
BEGIN
   define c integer;
   insert into some_table values (somevalues);
   c := sql%rowcount;
END
Run Code Online (Sandbox Code Playgroud)

更新:

我终于在SAP线程上找到了答案.您可以在插入或更新后运行此语句以获取rowcount:

SELECT ::ROWCOUNT into L_C FROM DUMMY;
Run Code Online (Sandbox Code Playgroud)

sql hana

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

如何使用 OAUTH/JWT 与 HANA 建立 Python 连接

我们目前在连接到 SAP HANA 的 Python 连接器中使用基本身份验证。在我们当前的连接字符串中,我们使用 SQLAlchemy,它看起来像这样:

def get_engine(host_name):
    return create_engine('hana://{user}:{password}@{host_name}:{port}/HUP'.format(
        user=request.json['username'],
        password=base64.b64decode(bytes(request.json['password'], encoding='utf-8')).decode('utf-8'),
        host_name=host_name,
        port=current_app.config['HANA_PORT']
    )
    )
Run Code Online (Sandbox Code Playgroud)

我们现在需要过渡到使用 HANA Oauth,因此不再需要在连接字符串中输入用户名和密码。理想情况下,应该有一种方法可以将 JWT 输入到连接详细信息中。我在网上找不到太多资源来真正说明如何使用 Oauth 的 HANA 创建基于 Python 的连接器。这里的任何帮助将不胜感激。

python sap sqlalchemy oauth-2.0 hana

10
推荐指数
1
解决办法
217
查看次数

从Delphi XE2高效地访问各种DBMS

我的需求

我使用Delphi/C++ Builder XE2.

我至少需要访问这些DBMS:

  • 火鸟
  • DB2/400
  • SQL Server
  • SAP HANA(新的内存数据库,可用接口:JDBC,ODBC,ODBO,SQLDBC)

我需要在数据感知的可视控件中显示和编辑数据.数据可以驻留在任何这些DBMS上,我将在外部文本文件上配置连接属性和SQL语句.

所以我正在寻找一组支持这种DBMS的数据库访问组件,并且具有良好的性能,类似于旧的Paradox表.

我的猜测

  1. 使用ODBC性能将比使用本机驱动程序更差.如果是真的,我该如何克服这个问题?
  2. 即使通过ODBC,HANA内存数据库的性能也会很好(我现在无法测试).

到目前为止我发现了什么

  • BDE(Borland数据库引擎)(TDatabase,TTable...)

    已过时.

  • DBX(Embarcadero dbExpress)(TSQLConnection,TSQLTable...)

    替代BDE,单向数据集(光标变为只领先;在内存不缓冲数据,这样的数据集不能在一个DBGrid显示;使用dbExpress构建用户界面,你会需要使用两个部分:TDataSetProviderTClientDataSet)

    使用本机驱动程序(HANA没有)或ODBC.

  • FireDAC(Embarcadero Fire数据访问组件)(TADConnection,TADTable...)

    它是AnyDAC的延续; 使用本机驱动程序(HANA没有)或ODBC或dbExpress.

  • UniDAC(Devart通用数据访问组件)

    不自由; 使用本机驱动程序(HANA没有)或ODBC或"DB Client".

  • DA(Delphi的RemObjects 数据摘要)

    不是免费的.

  • ZDBC(Zeos数据库连接接口)(TZConnection,TZQuery...)

    开源; 从作为Object Pascal的JDBC端口开始; 不提供与数据感知视觉控件的绑定.

  • dbGo(Embarcadero dbGo)( …

database delphi performance c++builder hana

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

在SAP HANA + Hibernate中选择抛出错误:`不支持com.sap.db.jdbc.CallableStatementSapDBFinalize的方法解包

我有下表:

CREATE column TABLE banks (
  sk tinyint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  code varchar(10) DEFAULT NULL,
  name varchar(100) DEFAULT NULL,
  version smallint DEFAULT NULL,
  PRIMARY KEY (sk)
);
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码选择表的行(在Scala中):

import scala.collection.JavaConverters._

object Test extends App {

    val session = HibernateUtil.sessionFactory.openSession        
    val q = session.createQuery("from BankHib ") 
    val list2 = q.list   // <-- code breaks here

    session.close
 }
Run Code Online (Sandbox Code Playgroud)

使用以下实体定义:

@Entity
@Table(name = "banks")
class BankHib {

    @Id
    var sk: Int = _

    var code: String = _
    var …
Run Code Online (Sandbox Code Playgroud)

hibernate scala hana

8
推荐指数
1
解决办法
215
查看次数

想要更新日期列中的日期,以及昨天日期的过去日期

这听起来很奇怪的用例,但我想用一些数据更新日期列.请在下表中找到.我正在处理JSON格式的数据.

CityName | data1 | data2 | date

Mumbai   | 1.234 | 2.3456| Sat Jan 20 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 6.234 | 2.3456| Sat Jan 20 2018 18:00:00 GMT+0000 (UTC) 
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 12:00:00 GMT+0000 (UTC) 
Mumbai   | 2.234 | 2.3456| Sun Jan 21 2018 18:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 24:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 00:00:00 GMT+0000 (UTC) …
Run Code Online (Sandbox Code Playgroud)

javascript sql hana

8
推荐指数
1
解决办法
236
查看次数

使用数字作为过滤器访问OData时出错

我正在尝试访问OData源提供程序,特别是SAP HANA通过Odata服务公开的分析视图.我在odata上应用了一个包含数字的过滤器,但是我收到的错误是因为支持使用该号码

  "Operator 'eq' incompatible with operand types 'Edm.Decimal' and 'Edm.String'
Run Code Online (Sandbox Code Playgroud)

这是我访问资源的方式:

 analyticView.xsodata/analyticView?$select=AMOUNT_SOLD,FAMILY_NAME&$filter=SALE_PRICE%20eq%20'323.7'&$format=json
Run Code Online (Sandbox Code Playgroud)

我还试图从号码中删除引号

analyticView.xsodata/analyticView?$select=AMOUNT_SOLD,FAMILY_NAME&$filter=SALE_PRICE%20eq%20323.7&$format=json
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

"Operator 'eq' incompatible with operand types 'Edm.Decimal' and 'Edm.Double'."
Run Code Online (Sandbox Code Playgroud)

您能否查看问题是什么以及解决方法.

odata hana sapui5

7
推荐指数
1
解决办法
4270
查看次数

适用于 SAP HANA 的 .Net 连接器和 .Net Core

我们正在为我们的组织创建一个 web api。API 从 HANA 视图连接和检索数据。我指的是以下链接中提供的示例来建立连接

https://blogs.sap.com/2015/04/15/creating-ac-application-using-sap-hana-and-adonet/

由于 .Net Core 不允许直接引用 DLL,我们正在创建一个本地 nuget 包并引用它(https://docs.nuget.org/ndocs/create-packages/creating-a-package

初始化 HanaConection 时出现以下错误:

{"版本不匹配:C:\Windows\assembly\GAC_MSIL\Sap.Data.Hana.v3.5\1.0.120.0__0326b8ea63db4bc4\Sap.Data.Hana.v3.5.dll (1.0.120.0), C:\Program Files\sap\hdbclient\libSQLDBCHDB.dll (1.00.112.00.1457615240).":"C:\Program Files\sap\hdbclient\libSQLDBCHDB.dll"}

.net sap connector hana sap-dotnet-connector

7
推荐指数
1
解决办法
5561
查看次数

SAP HANA CDS-Views vs Calculation Views vs Table Functions

在 SAP HANA 中,我习惯于创建计算视图。

之前我了解到计算视图(编译后是列视图)比数据库 SQL 视图更受欢迎。现在有了 CDS-Views,我不确定是否仍然如此。尤其是在性能方面。

现在表函数(取代脚本计算视图)和 CDS 视图之间的区别是什么?

view hana cds

7
推荐指数
1
解决办法
6369
查看次数

云连接器无法在设备上加载JSON数据

我们的客户已将其系统更改为SAP,并希望应用程序通过SAP界面显示数据.我们决定使用SAPUI5框架+ WebIDE来开发应用程序,因为它提供了非常好的控件种类,具有可靠的MVC设计以及用于SAP界面的易于使用的云连接器.

我们已经配置了这样的连接器:

新app.json

{
  "welcomeFile": "/webapp/index.html",
  "routes": [
    {
      "path": "/resources",
      "target": {
        "type": "service",
        "name": "sapui5",
        "entryPath": "/resources"
      },
      "description": "SAPUI5 Resources"
    },
    {
      "path": "/test-resources",
      "target": {
        "type": "service",
        "name": "sapui5",
        "entryPath": "/test-resources"
      },
      "description": "SAPUI5 Test Resources"
    },
    {
      "path": "/mynews",
      "target": {
        "type": "destination",
        "name": "MyNews_CMS",
        "preferLocal": true
      }
    }
  ],
  "sendWelcomeFileRedirect": true
}
Run Code Online (Sandbox Code Playgroud)

这是我们在component.js中的测试调用:

try {                                                                               
  $.get("/mynews/?json=2", function(data, status) {                                                                                 
    alert("success: " + JSON.stringify(data));                                                                              
  }).fail(function(arg1) {                                                                                 
    alert("error: " + JSON.stringify(arg1));                                                                               
  });                                                                           
} …
Run Code Online (Sandbox Code Playgroud)

cordova hana sapui5

6
推荐指数
1
解决办法
279
查看次数