1. Daniel Vivier
  2. PowerBuilder
  3. Friday, 14 December 2018 15:51 PM UTC

A user is getting this error when doing a Retrieve() on a DataWindow. We are not explicitly using sqlda. The database software is Firebird SQL. The same Retrieve() works on the 3 computers in our office. (The user is the first one to test that code other than us.)

Any ideas what could cause that message? Thanks.

Daniel Vivier Accepted Answer Pending Moderation
  1. Wednesday, 20 February 2019 20:16 PM UTC
  2. PowerBuilder
  3. # 1

Actually we found another case where we could reproduce this error message. It only happened when we were using the Firebird SQL 2.5 server version (not the embedded version) and only when we were not using DisableBind=1 in the DBParm.

The case was when the WHERE clause of a SQL Select in a DW included something like:

and :vbl is null

From a Firebird support site we saw that others were reporting the same error message with that type of code, when it ends up being parameterized (changed to "and ? is null"), which PB will certainly do if not using DisableBind. The solution was to change it to:

and coalesce(:vbl, '') = ''

Comment
There are no comments made yet.
Daniel Vivier Accepted Answer Pending Moderation
  1. Friday, 21 December 2018 17:11 PM UTC
  2. PowerBuilder
  3. # 2

This problem was for a user running PB on a Mac, in Windows under Parallels, which we didn't initially know, and it seemed to go away after he rebooted! I've seen other problems where reboots when running on Macs like that fix problems after installs.

Comment
There are no comments made yet.
Daniel Vivier Accepted Answer Pending Moderation
  1. Friday, 14 December 2018 16:10 PM UTC
  2. PowerBuilder
  3. # 3

P.S. The SELECT for the DW has one retrieval argument, a number.

Comment
  1. Daniel Vivier
  2. Friday, 14 December 2018 18:51 PM UTC
Sorry, it's what's in the subject line of this thread: "Sqlda variable has zero length". It appears this may actually be coming directly from ODBC, so I don't know that it is talking about the same sqlda variable that is in PB.



The full relevant part of the error message (after it quotes the SQL SELECT statement being retrieved) is:



Select Error: SQLSTATE=HY000

[ODBC Firebird Driver]Sqlda variable has zero length
  1. Helpful
  1. Chris Pollach @Appeon
  2. Friday, 14 December 2018 19:23 PM UTC


FYI: The DW object will be performing "dynamic DB Cursor DML" on your behalf in order to process the Select request. You can see this low-level interaction by activating a PB SQL trace ...

SQLCA.DBMS = "TRACE ODB"
  1. Helpful
  1. Daniel Vivier
  2. Friday, 14 December 2018 19:42 PM UTC
Thanks Chris, I will try that if some suggestions I've made to the user (to make sure they have the latest Firebird files) don't solve the problem, and especially if we can replicate the problem with his data.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.