3 weeks ago
Hi,
following code:
sql = <<-END_SQL
select count("ItemCode") from "TEST2024"."OITM" where "ItemCode" = ?
END_SQL
p item_code
# this won't work, allways returns [0,0]!
stmt = @@api.hanaclient_prepare @@connection, sql
_, param = @@api.hanaclient_describe_bind_param(stmt, 0)
param.set_value(item_code)
@@api.hanaclient_bind_param(stmt, 0, param)
_rc = @@api.hanaclient_execute(stmt)
@@api.hanaclient_fetch_next( stmt )
puts "R1: " + @@api.hanaclient_get_column(stmt, 0).to_s
@@api.hanaclient_free_stmt(stmt)
#This works -> correct results returned:
sql = ActiveRecord::Base.sanitize_sql([sql, item_code])
stmt = @@api.hanaclient_execute_direct(@@connection, sql)
@@api.hanaclient_fetch_next( stmt )
puts "R2: " + @@api.hanaclient_get_column(stmt, 0).to_s
whatever I try I allways get a return of array [0,0] in case of my prepared statement compared to the direct executed one that returns the correct and expected data.
Result:
11:38:27 web.1 | "CODE-1"
11:38:27 web.1 | R1: [1, 0]
11:38:27 web.1 | R2: [1, 1]
11:38:27 web.1 | nil
11:38:27 web.1 | "CODE-2"
11:38:27 web.1 | R1: [1, 0]
11:38:27 web.1 | R2: [1, 1]
11:38:27 web.1 | nil
11:38:27 web.1 | "NOTEXISITNG"
11:38:27 web.1 | R1: [1, 0]
11:38:27 web.1 | R2: [1, 0]
11:38:27 web.1 | nil
Im using the latest driver 20.20.20. Any idea what I made wrong in my prepared statement?
@jeff_albionThanks for the update!
I hardly can go on to ruby 2.7 as I'm doing a current new rails project and ruby 3.1.0 is the new baseline for upcoming rails 7.2, me using ruby 3.3.1.
Beside ruby 2.7 is EOL since 2023-03-31. Since I only need this on some rare occasions (when the SAP B1 ServiceLayer is too slow or can't deliver the complexity of a query well enough) I can go forward with using this with the direct SQL way of using ActiveRecord's base
sql = ActiveRecord::Base.sanitize_sql([sql, item_code])
for the time. Yet, it would also be nice if you could do a bug report that an access to a non existing row or column dont lead to a SegFault like in my last post as this is quite annoying in development 🙂
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
67 | |
8 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.